BMP58010 min čtení· pro začátečníky

První zapojení Voltino BMP580

Od vybalení k prvnímu měření tlaku, teploty a výšky na Arduinu Uno. Celé to zabere pár minut — stačí Arduino IDE, USB kabel a čtyři propojovací vodiče.

Obsah návodu6 kapitol
  1. 1Co budete potřebovat
  2. 2Zapojení senzoru
  3. 3Instalace knihovny
  4. 4Testovací kód
  5. 5Nahrání a test
  6. 6Řešení problémů

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í modulu
GNDGNDspolečná zem
SCLA5I²C hodiny
SDAA4I²C data
Voltino BMP580 zapojený k Raspberry Pi Pico, pohled z boku
Voltino BMP580 zapojený k Raspberry Pi Pico přes I²C.

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.

  1. 1Otevřete github.com/VoltinoLabs/Voltino-TriSense-Library a klikněte na Code → Download ZIP.
  2. 2V Arduino IDE zvolte Sketch → Include Library → Add .ZIP Library a vyberte stažený soubor.
  3. 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.

BMP580_basic.inoposuňte doprava →
/*
  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_x1BMP580_OSR_x128). Dál lze nastavit setIIRFilter(), setODR() a setPowerMode().
  • Adresa na sběrnici: knihovna zkouší nejdřív 0x46 a v kódu výše pak 0x47. Když si nejste jistí, na jaké adrese modul odpovídá, projeďte sběrnici libovolným I²C scannerem.

5Nahrání a test

  1. 1Připojte Arduino k počítači přes USB.
  2. 2Tools → Board → Arduino Uno.
  3. 3Tools → Port a vyberte správný COM port.
  4. 4Klikněte na Upload.
  5. 5Otevřete Tools → Serial Monitor a nastavte rychlost na 115200 baud.
Serial Monitor · 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 m

6Ř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.