Gwałtowny rozwój Internetu Rzeczy jest spowodowany w dużej mierze przez szybki rozwój scalonych czujników różnych parametrów fizycznych: temperatury, ciśnienia, wilgotności, oświetlenia, koloru, ruchu, stężenia gazów i pyłów w powietrzu oraz wielu innych. Szczególnie szybki rozwój nastąpił w dziedzinie pomiarów jakości powietrza w pomieszczeniach. Różne rodzaje czujników gazów oraz stosowane technologie pomiaru zostały opisane w artykule „Cyfrowe czujniki gazu” [1].
CO2 jest kluczowym wskaźnikiem jakości powietrza w pomieszczeniach (IAQ), ponieważ wysokie jego stężenie wpływa negatywnie na sprawność poznawczą i samopoczucie człowieka. Czujniki CO2 na bazie techniki niedyfrakcyjnej podczerwieni NDIR oferują wysoką czułość i dokładność pomiaru stężenia gazu (np. SCD30 firmy Sensirion), jednak do ich wad należą dość spore rozmiary i wysoka cena. Na rynku pojawiają się także czujniki wykonane z użyciem nowych technologii, jak STC31-C firmy Sensirion (działający na zasadzie pomiaru przewodnictwa cieplnego, co zapewnia doskonałą powtarzalność i długoterminową stabilność).
Czujnik CO2 typu SCD41 marki Sensirion
W połowie roku 2020 firma Sensirion wprowadziła na rynek SCD40 – pierwszy zminiaturyzowany czujnik CO2 na bazie technologii PAS (Photoacoustic Spectroscopy), opisanej szerzej w [1].
Cechy czujnika SCD41 [6]:
- zakres pomiarowy CO2: 400...5000 ppm,
- dokładność (400…2000 ppm): ±50 ppm,
- powtarzalność: ±10 ppm,
- czas odpowiedzi (skok 400...2000 ppm): 60 s,
- zakres pomiaru wilgotności: 0…100%,
- zakres pomiaru temperatury: –10…60°C,
- zasilanie: 2,4…5,5 V (typ. 3,3 V lub 5 V),
- pobór prądu: pik (typ./maks.) – 175/205 mA, średni @ 3,3 V – (pomiar co 5 s/30 s/5 min): 15/3,2/0,45 mA, w trybie bezczynności – 200 μA,
- czas rozruchu (> 2,25 V): 30 ms (maks.),
- czas pojedynczego pomiaru (maks.): CO2 + RHT: 5000 ms, RHT: 50 ms,
- komunikacja: I²C (400 kHz maks.), adres 0x62.
Napięcie zasilania czujnika powinno być pozbawione tętnień lub spadków napięcia przekraczających 30 mV. SCD4x komunikuje się z użyciem protokołu opartego na specyfikacji magistrali I²C firmy NXP. Szyny SDA i SCL wymagają dołączenia rezystorów podciągających. Dane wysyłane do czujnika i odbierane z niego składają się z sekwencji 16-bitowych poleceń i/lub 16-bitowych słów (każde z nich należy interpretować jako liczbę całkowitą bez znaku, przy czym najbardziej znaczący bajt jest przesyłany jako pierwszy). Każde słowo danych jest od razu uzupełniane 8-bitową sumą kontrolną CRC. W kierunku zapisu obowiązkowe jest przesłanie sumy kontrolnej. SCD41 oferuje cztery różne typy sekwencji poleceń I²C: odczyt sekwencji, zapis sekwencji, wysyłanie polecenia oraz sekwencje wysłania polecenia i pobrania wyniku.
Po starcie zasilania układ przechodzi w stan bezczynności. SCD41 oferuje trzy tryby pomiaru: okresowy, okresowy o niskim poborze mocy oraz pojedynczy.
Typowa sekwencja komunikacji w trybie pomiaru okresowego wygląda następująco:
- Czujnik jest włączany do stanu bezczynności.
- Urządzenie nadrzędne (master) I²C wysyła polecenie start_periodic_measurement. Automatycznie wykonywane są pomiary. Interwał aktualizacji sygnału wynosi 5 s.
- Master I²C okresowo odczytuje dane za pomocą polecenia read_measurement.
- Gdy czujnik ma przestać okresowo wykonywać pomiary, master wysyła polecenie stop_periodic_measurement, aby przywrócić czujnik do trybu bezczynności (500 ms).
SCD41 oferuje tryb okresowego pomiaru o niskim poborze mocy z interwałem aktualizacji wyniku wynoszącym około 30 sekund. Opisywany tryb jest inicjowany za pomocą polecenia start_low_power_periodic_measurement i odczytywany w podobny sposób, jak pomiar okresowy przy użyciu polecenia read_measurement.
Czujnik oferuje dodatkowo tryb pomiaru pojedynczego (na żądanie):
- Układ jest włączany poleceniem wake_up, jeśli wcześniej został wyłączony poleceniem power_down.
- Master I²C wysyła polecenie measure_single_shot i czeka na wskazany maksymalny czas trwania polecenia (5000/50 ms).
- Master odczytuje dane poleceniem read_measurement.
- Kroki 2 i 3 są powtarzane zgodnie z wymaganiami aplikacji.
- W razie potrzeby wyłączenie czujnika jest możliwe przy użyciu polecenia power_down.
Najkrótszy możliwy interwał próbkowania w trybie pomiarów pojedynczych wynosi 5 sekund. Aby jeszcze bardziej zmniejszyć zużycie energii, można zastosować kluczowanie zasilania czujnika pomiędzy pomiarami albo użyć poleceń power_down/wake_up.
SCD41 udostępnia dwie funkcje kalibracji terenowej: wymuszoną ponowną kalibrację (FRC) i autokalibrację (ASC).
Należy pamiętać, że białej membrany zabezpieczającej przed kurzem i wodą, znajdującej się na górze nasadki czujnika, nie wolno zdejmować.
Moduł SEK-SCD41
Moduł SEK-SCD41 firmy Sensirion zawiera tylko czujnik SCD41, gniazdko JST PH 2,0 mm oraz dwa rzędy padów do wlutowania listew goldpin udostępniających zasilanie i sygnały szyny I²C (na płytce brakuje natomiast rezystorów podciągających linie interfejsu). W zestawie dostarczane są dwa kable: jeden zakończony wtykami goldpin, a drugi – wtykiem RJ45, umożliwiającym dołączenie modułu do mostka SEK-SensorBridge, umożliwiającego – wraz z oprogramowaniem ControlCenter – natychmiastową pracę z czujnikami firmy Sensirion. Główną funkcjonalnością ControlCenter jest wykonywanie i wizualizacja pomiarów na żywo z różnych czujników. Dokładniejszy opis pracy z tym zestawem znajduje się w artykule „Moduł czujników środowiska SEN5x firmy Sensirion” [3].
Moduł BME688 Breakout Board firmy pi3g
Czujnik BME688 firmy Bosch został dokładnie opisany w artykule pt. „Czujnik gazu Bosch BME688 ze Sztuczną Inteligencją” [2]. Moduł BME688 Breakout Board firmy pi3g zawiera układ BME688 fabrycznie skonfigurowany do pracy z szyną I²C [8].
Płytka Enviro Weather (PIM628)
Widok płytki Enviro Weather (PIM628) pokazano na fotografii tytułowej. Na dolnej stronie płytki jest bezpośrednio wlutowana płytka Raspberry Pi Pico W, udostępniająca gniazdko microUSB oraz przycisk BOOTSEL. Zestaw był już wielokrotnie opisywany w artykułach publikowanych w poprzednich wydaniach „Elektroniki Praktycznej”, dlatego też zainteresowanych Czytelników zachęcamy do zapoznania się z poprzednimi odcinkami niniejszego cyklu.