BME688 – czujnik gazu, wilgotności, temperatury i ciśnienia z wbudowaną sztuczną inteligencją
Firma Bosch Sensortec jest znana z produkcji wysokiej klasy czujników środowiskowych. Popularnymi produktami firmy są wielofunkcyjne czujniki BME280 oraz BME680. Oba zawierają sensor temperatury, wilgotności oraz ciśnienia. BME680 ma też dodatkową funkcję, a jest nią możliwość wykrywania stężenia gazów w powietrzu. Sensor reaguje na tzw. lotne związki organiczne, takie jak aceton czy formaldehyd, obecne w farbach, lakierach, klejach itd.
Dzięki tak bogatej funkcjonalności czujniki te są powszechnie stosowane m.in. w stacjach pogodowych. Dodatkowy czujnik lotnych związków organicznych w BME680 może się przydać podczas pomiaru jakości powietrza oraz poziomu zanieczyszczeń.
Czujnik BME688
Najnowszym czujnikiem z tej grupy w ofercie Bosch Sensortec jest BME688. Podobnie jak wyżej wymienione układy łączy w sobie czujniki wilgotności, temperatury oraz ciśnienia atmosferycznego. Jednak czwarty element, czujnik gazu jest już o wiele bardziej zaawansowany niż w BME680. Jest bowiem w stanie wykrywać nie tylko lotne związki organiczne, ale także lotne związki siarki (VSC) oraz inne gazy takie jak tlenek węgla czy wodór w zakresie cząstek na miliard (ppb).
W kwestii czujników temperatury, wilgotności oraz ciśnienia czujnik BME688 oferuje bardzo podobne parametry co BME280 oraz BME680. Pomiar temperatury ma zakres od -40°C do +85°C i dokładność ±1,0°C. Ciśnienie można mierzyć w zakresie od 300 do 1100 hPa z dokładnością w typowych warunkach ±0,6 hPa. Natomiast czujnik wilgotności ma zakres od 0% do 100% i dokładność ±3%.
Dodatkową funkcją czujnika BME688 jest tzw. skaner gazów. Dzięki szerokiemu zakresowi wykrywanych gazów moduł jest w stanie wykryć obecność specyficznych związków chemicznych w powietrzu oraz wyciągnąć z tego faktu wnioski. Przykładowo obecność związków siarki może służyć jako wskaźnik rozwoju bakterii. Pracę czujnika gazów można dostosować do potrzeb aplikacji i ustalić selektywność, czułość, częstotliwość pomiarów, a także pobór mocy.
Czujnik jest dostępny w obudowie LGA o wymiarach 3,0 x 3,0 x 0,93 mm z metalową pokrywą. Układ można zasilać napięciem od 1,71 V do 3,6 V. Udostępnia komunikację I2C do 3,4 MHz oraz SPI, 3- lub 4-przewodową, do 10 MHz. Dopuszczalne napięcie logiczne interfejsów zawiera się od 1,2 V do 3,6 V.
Oprogramowanie Bosch AI-Studio
Bosch Sensortec umożliwia także wykorzystanie możliwości sztucznej inteligencji do wykrywania substancji za pomocą wydzielanych przez nią związków lotnych. W prostszych słowach – może działać jak nos i identyfikować substancję po „zapachu”. Do tego celu producent udostępnia oprogramowanie Bosch AI-Studio.
Oprogramowanie jest w stanie zebrać dane z czujnika, na ich podstawie wytrenować model i zaimplementować algorytm , który umożliwi czujnikowi wykrycie zaprogramowanego zapachu. Program umożliwia odpowiedni dobór profilu grzania sensora MOX, co z kolei pozwala na dostosowanie parametrów do potrzeb aplikacji. Mało tego, oprogramowanie umożliwia testowanie różnych profili grzania i samodzielne sprawdzenie jak zachowuje się czujnik przy różnych ustawieniach.
Rys. 2. Oprogramowanie Bosch AI-Studio – ustawianie profilu grzania
Kolejną opcją jest możliwość ustawienia sekwencji okresów pomiarów oraz okresów oczekiwania. Dobór odpowiedniej kolejności umożliwia oszczędność energii oraz ustalenie długości sekwencji pomiarów.
Aktualnie, oprogramowanie AI-Studio współpracuje jedynie z płytką rozwojową BME Board x8 z ośmioma czujnikami BME688 oraz płytką główną Adafruit Huzzah32 z układem ESP32. Tym niemniej producent zapowiada, że już w najbliższej przyszłości wprowadzona zostanie obsługa również innych modułów z sensorem.
Biblioteka BSEC
Do obsługi czujnika producent udostępnia bibliotekę BSEC (Bosch Sensortec Environmental Cluster). Biblioteka umożliwia przetwarzanie danych uzyskiwanych z sensora oraz łatwą integrację z resztą oprogramowania. Pobiera skompensowane wartości danych z czujnika za pomocą API sensora. Jest też w stanie dzięki innym sensorom dokonać dodatkowej kompensacji danych.
Biblioteka BSEC pozwala dokonać precyzyjnych obliczeń poza sensorem, np. współczynnika IAQ dotyczącego jakości powietrza. Pracuje na platformach 8-, 16- i 32-bitowych, w tym AVR, ESP32, ARM, a także Raspberry Pi.
Więcej informacji na stronie https://www.bosch-sensortec.com/software-tools/software/bsec/
Moduł BME688 Breakout Board firmy pi3g
Aby przetestować możliwości czujnika możesz zaopatrzyć się w moduł BME688 Breakout Board produkowany przez niemiecką firmę pi3g. Moduł umożliwia stworzenie prototypu aplikacji wykorzystującej sensor.
Rys. 4. Moduł z czujnikiem BME688
Moduł zaprojektowano do współpracy z minikomputerami Raspberry Pi w taki sposób, aby czujnik znajdował się jak najdalej od elementów emitujących ciepło, co eliminuje w znacznym stopniu zakłócenia pomiaru temperatury. Zawiera specjalne złącze umożliwiające nałożenie na złącze Raspberry Pi i komunikację przez interfejs I2C.
Rys. 5. Moduł BME688 nałożony na Raspberry Pi
Na płytce zainstalowano także przelotowe złącze Grove. Pozwala to na dołączenie czujnika do systemów wyposażonych w złącza Grove I2C firmy Seesd Studio. Natomiast nakładki ze złączami, takie jak Base Shield V2, pozwalają na połączenie modułu z płytkami rozwojowymi Arduino, STM32 Nucleo i innymi ze złączami w standardzie Arduino.
Moduł zawiera także standardowe złącze szpilkowe pozwalające na połączenie z modułami lub płytką stykową za pomocą standardowych przewodów. Dodatkową zaletą tego złącza jest kompatybilność z płytką Raspberry Pi Pico, co oznacza, że czujnik można łatwo dołączyć bezpośrednio przez płytkę stykową w sposób zaprezentowany poniżej.
Rys. 6. Moduł pi3g z czujnikiem BME688 dołączony do Raspberry Pi Pico
Moduł udostępnia magistralę I2C. Domyślny adres sensora to 0x77. Adres można zmienić na 0x76 lutując zworkę w miejscu J1, lub zwierając wyprowadzenie ADDR (obecne na złączu szpilkowym) do masy.
Złącze szpilkowe na płytce jest asymetryczne – otwory na płytce nie są ułożone równo w linii, ale są delikatnie przesunięte względem siebie. Po włożeniu w te otwory złącza szpilkowego trzyma się ono dość mocno nawet bez lutowania. Daje to możliwość wypróbowania różnych złącz i proste testowanie modułu.
Rys. 7. Otwory na złącze szpilkowe na module BME688
Podsumowanie
Sensor BME688 to wielofunkcyjny moduł MEMS ze zintegrowanym czujnikiem gazów, ciśnienia, temperatury i wilgotności umieszczony w jednej obudowie. Opracowano go specjalnie z myślą o aplikacjach mobilnych i urządzeniach wearables, gdzie rozmiar i niskie zużycie energii są kluczowymi wymaganiami. Czujnik gazu może wykrywać szeroki zakres gazów do pomiaru jakości powietrza, w tym lotne związki organiczne (VOC) z farb (takich jak formaldehyd), lakiery, produkty do usuwania farby, środki czyszczące, meble, sprzęt biurowy, kleje, alkohol. Moduł ma też możliwości pracy w systemach wykorzystujących algorytmy sztucznej inteligencji np. do wykrywania zapachów. W tym celu producent przygotował oprogramowanie Bosch AI-Studio.
Moduł pi3g BME688 Breakout Board umożliwia łatwe skorzystanie z możliwości czujnika. Pozwala on na podłączenie do dowolnej platformy, przetestowanie możliwości oraz zaprojektowanie prototypu aplikacji.