Na meranie atmosférického tlaku Arduinom je vhodný senzor BME280 alebo BMP280 od firmy Bosch. Senzor ideálny do domácej meteostanici. V nasledujúcom článku popíšem rozdiely, zapojenie a ukážkový program z knižnice.
Po vyskúšaní merania teplôt a vlhkosti so senzormi DHT a DS18B20, to chcelo tentokrát vyskúšať merať aj atmosférický tlak. Našiel som na to vhodný senzor BME280 a BMP280. Vyrába ich firma Bosh. Sú to nástupcovia predchádzajúcej modelovej rady BMP180 a BMP085. Ako prvé ma zaujímali parametre, rozdiel medzi nimi a zapojenie.
Parametre
- BMP280 meranie atmosférického tlaku a teploty (dva senzory v jednom)
- BME280 meranie atmosférického tlaku, teploty a vlhkosti (tri senzory v jednom)
- podporujú SPI a I2C (0x77) zbernicu
- napájanie obvodu (čipu) 1.71~3.6V
- rozsah merania tlaku 300~1100 hPa ±1hPa pri 0~65 °C (tolerancia ±0.12hPa v rozsahu 700~900hPa pri 25~40 °C ±1.0m, rozlíšenie 0,18Pa)
- rozsah merania teplot -40~85°C (±1°C pri 0~65°C, rozlíšenie 0,01°C)
- rozsah merania vlhkosti 0~100% (tolerancia ±3% v rozsahu 20~80% pri 25°C, rozlíšenie 0,008%, min.interval merania 1s)
Zapojenie BME280 a BMP280
Zapojenie senzora je podľa typu prevedenia PCB dosky. Potrebujeme určite dva vodiče na napájanie a ďalšie dva vodiče pre I2C zbernicu alebo štyri vodiče pre SPI zbernicu. Dohľadal som tieto dve základné zapojenia.
Zapojenie 3,3V
Prvé zapojenie je na 3,3V a podporuje obe zbernice (SPI aj I2C). To znamená, že sa pripája len na Arduino dosky s 3,3V TTL logikou (Arduino Pro Mini 3.3V, Arduino DUE, ESP8266, STM…) alebo pri 5V doskách treba použiť Logic Level Shifter.
Schéma zapojenia 3.3V verzie
Modul senzora BME280 a BMP280 (horný a spodný pohľad)
Zapojenie v režime I2C
- Vcc pripojíme k 3.3V
- GND pripojíme na zem
- SCL pripojíme k Arduinu na pin A5
- SDA pripojíme k Arduinu na pin A4
- CSB pripojíme k Vcc (režim I2C)
- SDO pripojíme k Vcc = adresa 0x77 (pripojením na zem bude adresa 0x76)
Zapojenie v režime SPI
- Vcc pripojíme k 3.3V
- GND pripojíme na zem
- SCL pripojíme k Arduinu na pin 13 (SCK)
- SDA pripojíme k Arduinu na pin 11 (MOSI)
- CSB pripojíme k Arduinu na pin 10 (CS)
- SDO pripojíme k Arduinu na pin 12 (MISO)
Zapojenie 5V
Druhé zapojenie je na 5V a podporuje len I2C zbernicu, no obsahuje spomínaný Logic Level Shifter a stabilizátor na 3,3V.
Zapojenie 5V verzie
Modul senzora BME280/BMP280 (horný a spodný pohľad)
Zapojenie v režime I2C
- Vin pripojíme k 5V
- GND pripojíme na zem
- SCL pripojíme k Arduinu na pin A5
- SDA pripojíme k Arduinu na pin A4
- prepojkou S1 SW SPDT sa dá zmeniť I2C adresa, ak by sme mali dva rovnaké senzory na zbernici
Knižnica a program
Na naprogramovanie kódu pre Arduino je vyžadované použitie nasledujúcich knižníc, ktoré si treba vyhľadať v správcovi knižníc. V Arduino IDE klikneme v menu na “Projekt - Zahrnúť knižnice - Spravovať knižnice” a do vyhľadávania napíšeme BME280 alebo BMP280 podľa typu pripojeného senzora a potom následne aj pomocnú knižnicu “Adafruit Unified Sensor“.
Teraz už len stačí si vybrať program z príkladu z nainštalovanej knižnice bme280test.ino alebo bmp280test.ino a vyskúšať.
Svoju nadmorskú výšku z mapy pre prípad potreby nájdeš tu.
Modul pre meranie teploty, vlhkosti a atmosférického tlaku so senzorom BME280 je jednoducho použiteľným nástrojom pre meranie spomínaných troch veličín. Vďaka jeho univerzálnosti ho teda môžeme využiť napríklad v domácich meracích systémoch alebo pri stavbe vlastnej meteostanice. Používam ho od jesene 2016 a namerané hodnoty zobrazujem v tomto grafe.