A Bosch BME280-as érzékelővel már egy korábbi, 2018-as cikkünkben foglalkoztunk. Akkor Arduinoval építettünk egy meteorológiai állomást az Adafruit 2652-es áramkörével, amely ezt a hőmérsékletet, barometrikus nyomást és páratartalmat is mérő szenzort használja. Azóta az Adafruit a korábbi kis kék panelt tovább fejlesztette. Az új, szürke színű változatokat már ellátta STEMMA QT csatlakozókkal a forrasztás nélküli szerelés szerelmeseinek nagy örömére. Ez az eszköz kiválóan alkalmas különböző beltéri környezeti jellemzők érzékelésre, ráadásul egy I2C, illetve egy SPI kommunikációt biztosító modulja is van.
Felhasználási területe
A Bosch precíziós érzékelője kiváló, és egyben olcsó érzékelési megoldás a páratartalom ±3%-os pontossággal, a barometrikus nyomás ±1 hPa abszolút pontossággal és a hőmérséklet ±1,0°C pontossággal történő mérésére. Mivel a légköri nyomás arányos a tengerszint feletti magassággal, az említett pontosság lehetővé teszi, hogy a szenzorral akár ±1 méteres pontossággal mérhessük azt is!
A BME280 a Bosch korábbi BMP085/BMP180/BMP183 szenzorcsaládjának a továbbfejlesztéséből született, kisebb zajú, de hasonlóan gyors konverziós idővel rendelkezik. Az egyszerű, könnyű kábelezés érdekében (mindössze négy vezeték szükséges) választhatjuk az I2C kommunikációt. Ha több érzékelőt szeretnénk csatlakoztatni anélkül, hogy az I2C busz esetleges címütközései miatt kelljen aggódnunk, válasszuk az SPI buszos összeköttetést.
A nyáklapra szerelt érzékelőt 3,3 V-os feszültség szabályzóval és logikai szinteltoló áramkörrel egészítették ki, így gond nélkül használható 3 V-os vagy 5 V-os logikai szinttel működő mikrokontrollerrel. A panel STEMMA QT formátumú csatlakozókat kapott, így összekötésük egy mikrokontrollerrel nagyban leegyszerűsödött. Az áramköri lapka mindkét oldalán megtalálható csatlakozók kompatibilisek a SparkFun Qwiic I2C csatlakozóival. Ez lehetővé teszi, hogy forrasztás nélkül csatlakoztassuk a szenzort fejlesztőeszközünkhöz, valamint egy sor további I2C szabványú érzékelőhöz. Ehhez készült a STEMMA QT csatlakozóval ellátott jumper kábel. További érzékelők hozzáadása a STEMMA QT toldó kábellel lehetséges.
Azoknak, akik forrasztás nélküli próbapanelen (breadboard) szeretnek dolgozni, illetve több más alkatrészt bonyolultabb kábelezéssel kombinálnának, továbbra is van lehetőségük a panelre egy tüskesort forrasztaniuk (a gyártó mellékeli) és ezzel használni azt, egy breadboardon.
Raspberry Pi és BME280 együttes használata
A BME280-ban rejlő lehetőségek kihasználásához, a mért értékek tárolása és elemzése révén statisztikák, látványos diagramok, sőt, akár rövidtávú meteorológiai előrejelzések készítéséhez kézenfekvő, hogy egy számítógéppel kössük össze a szenzort. Erre a célra a Raspberry Pi és a BME280 együttes használata a legkézenfekvőbb megoldás. Ennek további előnye lehet a távoli hozzáférés lehetősége is. Az érzékelő használatához először a Python futtató környezetet kell beállítanunk. A támogatott GNU/Linux rendszereken, például a Raspberry Pi-n, az illesztőprogramot helyileg telepíthetjük a PyPI-ből. Telepítés az aktuális felhasználó számára:
pip3 install adafruit-circuitpython-bme280
A rendszer egészére kiterjedő telepítés (ez bizonyos esetekben szükséges lehet):
sudo pip3 install adafruit-circuitpython-bme280
Telepítés virtuális környezetben az aktuális projektben:
mkdir project-name && cd project-name python3 -m venv .venv source .venv/bin/activate pip3 install adafruit-circuitpython-bme280
A telepítés után a szenzor az alábbi mintaprogrammal tesztelhető:
import board import time from adafruit_bme280 import basic as adafruit_bme280 # Create sensor object, using the board's default I2C bus. i2c = board.I2C() # uses board.SCL and board.SDA bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c) # change this to match the location's pressure (hPa) at sea level bme280.sea_level_pressure = 1013.25 while True: print("\nTemperature: %0.1f C" % bme280.temperature) print("Humidity: %0.1f %%" % bme280.relative_humidity) print("Pressure: %0.1f hPa" % bme280.pressure) print("Altitude = %0.2f meters" % bme280.altitude) time.sleep(2)
A szenzor bekötése
- Pi 3V3 szenzor VIN láb
- Pi GND szenzor GND láb
- Pi SCL szenzor SCK láb
- Pi SDA szenzor SDI láb
A cikkben Raspberry Pi alatt a gyártó számítógépeit, azaz a Zero, 1, 2, 3, 4 és 400-as generációjú számítógépeket értjük. Természetesen a BME 280, mint több más szenzor, csatlakoztatható a Raspberry Pi Pico mikrovezérlőhöz is. Erre a későbbiekben mutatunk példát.