Obsah návodu6 kapitol
1Co budete potřebovat
Voltino BMP580 je kompaktní barometrický senzor pro měření atmosférického tlaku a teploty s vysokou přesností. Pro první testování ho zapojíme k Arduinu Uno přes I²C. Budeme používat knihovnu Voltino-TriSense-Library, která komunikaci zjednodušuje na několik volání.
- Modul Voltino BMP580
- Arduino Uno nebo kompatibilní deska
- 4 propojovací vodiče (samec–samice)
- Počítač s Arduino IDE 1.8 nebo novějším
2Zapojení senzoru
Modul má čtyři piny: VIN (napájení), GND (zem), SCL (I²C hodiny) a SDA (I²C data). Arduino Uno má vlastní 3,3V výstup, který použijeme pro napájení.
VIN3.3Vnapájení moduluGNDGNDspolečná zemSCLA5I²C hodinySDAA4I²C data
3Instalace knihovny
Knihovna Voltino TriSense obsahuje i samostatnou třídu BMP580 — umí nastavit oversampling (OSR), IIR filtr i spočítat výšku z tlaku. Všechno se zpřístupní jedním hlavičkovým souborem TriSense.h.
- 1Otevřete github.com/VoltinoLabs/Voltino-TriSense-Library a klikněte na Code → Download ZIP.
- 2V Arduino IDE zvolte Sketch → Include Library → Add .ZIP Library a vyberte stažený soubor.
- 3Restartujte Arduino IDE. Knihovna se objeví v File → Examples jako Voltino TriSense.
4Testovací kód
Vytvořte nový sketch a vložte tento kód. Inicializuje senzor a ve smyčce vypisuje teplotu, tlak a dopočítanou výšku.
/*
Voltino BMP580 — prvni mereni
Knihovna: Voltino TriSense (trida BMP580)
Vypisuje teplotu, tlak a dopocitanou vysku.
V retezcich zamerne nejsou diakriticka znamenka — Serial Monitor
je casto zobrazi jako nesmysly.
*/
#include <TriSense.h>
BMP580 bmp;
void setup() {
Serial.begin(115200);
while (!Serial) delay(10);
Wire.begin();
// Vychozi adresa je 0x46 (BMP580_PRIMARY_I2C_ADDR). Nektere kusy
// odpovidaji na 0x47, proto je tu druhy pokus.
if (!bmp.begin(BMP580_PRIMARY_I2C_ADDR) && !bmp.begin(BMP580_SECONDARY_I2C_ADDR)) {
Serial.println("Chyba: BMP580 nenalezen na sbernici I2C.");
while (1) delay(100);
}
// Vyssi oversampling = tissi data za cenu pomalejsiho mereni.
// Poradi argumentu: nejprve tlak, potom teplota.
bmp.setOversampling(BMP580_OSR_x8, BMP580_OSR_x2);
Serial.println("BMP580 pripraven.");
}
void loop() {
float temperature = bmp.readTemperature(); // C
float pressure = bmp.readPressure(); // Pa
float altitude = bmp.readAltitude(101325.0f); // m; reference v PASCALECH
Serial.print("Teplota: ");
Serial.print(temperature, 2);
Serial.print(" C | Tlak: ");
Serial.print(pressure / 100.0f, 2); // prevod Pa -> hPa
Serial.print(" hPa | Vyska: ");
Serial.print(altitude, 2);
Serial.println(" m");
delay(200);
}- Výpočet výšky: funkce
readAltitude()používá standardní barometrický vzorec a referenční tlak se jí předává v pascalech, ne v hektopascalech. Hodnotu 101325 Pa nahraďte aktuálním tlakem z předpovědi (hPa × 100), jinak bude výška posunutá o desítky metrů. - Pokročilé nastavení:
setOversampling()bere nejdřív oversampling tlaku a pak teploty (BMP580_OSR_x1ažBMP580_OSR_x128). Dál lze nastavitsetIIRFilter(),setODR()asetPowerMode(). - Adresa na sběrnici: knihovna zkouší nejdřív
0x46a v kódu výše pak0x47. Když si nejste jistí, na jaké adrese modul odpovídá, projeďte sběrnici libovolným I²C scannerem.
5Nahrání a test
- 1Připojte Arduino k počítači přes USB.
- 2Tools → Board → Arduino Uno.
- 3Tools → Port a vyberte správný COM port.
- 4Klikněte na Upload.
- 5Otevřete Tools → Serial Monitor a nastavte rychlost na 115200 baud.
BMP580 pripraven.
Teplota: 25.67 C | Tlak: 1013.45 hPa | Vyska: 150.23 m
Teplota: 25.68 C | Tlak: 1013.44 hPa | Vyska: 150.31 m6Řešení problémů
- Senzor nenalezen: zkontrolujte zapojení — nemáte prohozené SDA a SCL? Sedí napájení na 3,3 V?
- Kolísavé hodnoty: zkraťte vodiče (u I²C ideálně do 20 cm) a zkontrolujte spoje. Při vyšším šumu zvyšte oversampling.
- Knihovna se nenačte: ověřte, že se po instalaci objevila v File → Examples, případně ji nainstalujte znovu.
- Modul se zahřívá nebo nereaguje: okamžitě odpojte napájení a zkontrolujte, zda na VIN není 5 V.
Když si nebudete vědět rady, napište na podpora@voltinolabs.cz a přiložte fotku zapojení — většinu potíží vyřešíme e-mailem.
Máte data a chcete pokračovat?
Zkuste zvýšit oversampling pro tišší data, nebo se podívejte na TriSense Pro, který k tlaku přidá i gyroskop a magnetometr.