BME280 to ulepszona wersja BMP280, która oprócz ciśnienia i temperatury jest też w stanie mierzyć wilgotność. OBK pozwala łatwo dodać czujniki BME/BMP do dowolnego urządzenia smart, z których pomiary można potem wysyłać do Home Assistant bądź też do naszego serwera HTTP przez przykładowo zapytania GET bądź POST. Wszystko w pełni skryptowalne. Tutaj pokażę jak można dodać właśnie wspomniany BME280 do urządzenia z dwoma wolnymi GPIO, takiego jak kontroler paska LED, czujnik ruchu PIR, kontroler bramy garażowej, czy tam najzwyklejszy "inteligentny" przekaźnik.
Moduł z BMP280 można kupić u nas w kraju już za 5 zł, natomiast BME280 jest nieco droższy - około 20 zł.
Krok 1: Wgranie OBK
OBK zaczęło od platform BK7231N i BK7231T, ale teraz już działa również nawet na W800, W600, BL602, XR809, LN882H a nawet na ESP32. A więc najpierw wgrywamy OBK wedle instrukcji z:
https://github.com/openshwprojects/OpenBK7231T_App
bądź z:
https://openbekeniot.github.io/webapp/devicesList.html
w zależności od tego jaką mamy platformę.
Jeśli wgrany plik binarny nie zawiera sterownika BMP280, co można sprawdzić komendą "startDriver BMP280", jak poniżej:
To możemy poszukać wersji z włączonym BMP280 w Pull Requests na Github i pobrać z nich pliki binarne, ew. samodzielnie włączyć w obk_config.h dla naszej platformy ENABLE_DRIVER_BMP280 , utworzyć PR i pobrać z niego skompilowane online pliki binarne. Szczegóły:
System online builds OpenBeken - kompilacja firmware dla wszystkich platform na Github
Krok 2: Podłączenie BME280
Sterownik BMP280 wspiera też BME280. Podłączamy czujnik na wolne piny, pamiętamy też o zasilaniu. Potem, w autoexec.bat:
Wpisujemy:
//startDriver BMP280 [CLK] [DATA] [ChannelForTemp] [ChannelForPressure] [ChannelForHumidity] [Adr8bit]
startDriver BMP280 7 8 3 4 5 0x76
Znaczenie argumentów tak jak w komentarzu. Ustalamy piny CLK i DATA dla magistrali I2C. Numer 7 w przykładowym fragmencie kodu oznacza P7 na platformie Beken, w przypadku innych platform warto spojrzeć na zakładke Pins i tam jest rozpiska numeracji. Potem podajemy indeksy kanałów dla temperatury, ciśnienia i wilgotności.
Sterownik nazwany BMP280 wspiera też BME280 i automatycznie wykrywa, jaki rodzaj czujnika jest podłączony.
Krok 3: Typy kanałów i Home Assistant Discovery
Teraz należy ustawić wybranym kanałom odpowiedni role (Temperature, Pressure, Humidity, itd). Wykonuje się to w Web App:
Dalej można wykonać Home Assistant Discovery, by całość pojawiła się w HA.
Home Assistant Discovery bazuje na typach kanałów, dlatego ich ustawienie jest niezbędne.
W autoexec.bat można jeszcze nadać kanałom nazwy przez setChannelLabel, więcej informacji:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md
Tak wygląda sparowane urządzenie w wersji czujnik PIR + BME280:
W ten sposób w Home Assistant można uzyskać wykresy zebranych pomiarów:
Przykład modyfikacji: czujnik PIR + BME280
W opisany tu sposób zmodyfikowaliśmy czujnik PIR, który już wcześniej opisywałem:
[CBU/BK7231N] Tuya czujnik ruchu PIR Krasław 120°, głęboki sen, zasilanie bateryjne
Zmodyfikowaliśmy go tak, by był zasilany z USB, co zwalnia nas z problemu oszczędzania energii. Do kanałów Temperatury, Wilgotności, Ciśnienia został dopisany kanał Obecności - Presence, a odpowiedniemu pinowi nadaliśmy rolę dInput, czyli cyfrowego wejścia - 1 lub 0. Rezultat:
Urządzenie poprawnie spełnia wiele funkcji i co więcej można je albo oskryptować dodatkowo w OpenBeken (np. w momencie przekroczenia danej temperatury załączać przekaźnik lub wysyłać pakiet GET do innego urządzenia), albo w Home Assistant (tak jak każde inne urządzenie w HA).
Podsumowanie
To właśnie był jeden z argumentów przemawiających za zmianą firmware urządzeń smart. Po takiej zmianie można łatwo dodać do nich nowe funkcje, których nie przewidział producent. Taki BMP280 można kupić już za kilka złotych, a potem wystarczy go przylutować i skonfigurować by otrzymać dodatkowe pomiary w Home Assistant i tak można zrobić dla każdego pomieszczenia w domu, nie trzeba kupować osobnego urządzenia IoT dla takich pomiarów.
Po takiej zmianie można by też w samym OBK wyświetlić wykresy w oparciu o nowy sterownik Charts:
Wykresy w OpenBeken - konfigurowalna historia pomiarów hostowana na urządzeniu IoT
Możliwości są duże. Czy ktoś z Was też już wykonywał tego typu modyfikacje?
PS: BMP280 uruchamiałem już wcześniej z PIC w temacie o budowie zegara
Fajne? Ranking DIY Pomogłem? Kup mi kawę.