Internet Rzeczy w pomiarach środowiskowych (11). Dołączanie czujnika CO oraz pyłów do modułu Enviro Weather

Internet Rzeczy w pomiarach środowiskowych (11). Dołączanie czujnika CO oraz pyłów do modułu Enviro Weather

Płytka Enviro Weather udostępnia czujniki do pomiaru parametrów środowiska: ciśnienia, temperatury i wilgotności (BME280) oraz poziomu oświetlenia (LTR-559). Czujnik SEN55 firmy Sensirion dostarcza szczegółowych i wiarygodnych danych na temat kluczowych parametrów środowiskowych, takich jak wilgotność, temperatura, cząstki stałe (PM1,0, PM2,5, PM10), lotne związki organiczne (VOC) i tlenki azotu (NOx). Można go łatwo dołączyć – razem z czujnikiem tlenku węgla (CO) – do płytki Enviro Weather. Po uzupełnieniu modułu o wyświetlacz e-paper, całość tworzy atrakcyjny zestaw pomiarowy z możliwością zasilania bateryjnego.

Autor składa podziękowania Panu Maciejowi Michnie z Centrum Badań i Rozwoju Nordic Semiconductor w Krakowie za udostępnienie zestawów sprzętowych Power Profiler Kit II (PPK2).

Tlenek węgla (CO) powstaje między innymi podczas niecałkowitego spalania substancji węglowych. Głównymi źródłami tlenku węgla w pomieszczeniach zamkniętych są nieszczelne piece, palenie wyrobów tytoniowych, a także inne procesy spalania. Symptomy łagodnego zatrucia obejmują bóle i zawroty głowy oraz objawy grypopodobne. Wyższe dawki mają bardzo toksyczny wpływ na centralny układ nerwowy i serce, a w skrajnych przypadkach stanowią śmiertelne zagrożenie dla przebywających w pomieszczeniach osób i zwierząt.

VOC (lotne związki organiczne) to zbiorcze określenie substancji zawierających węgiel, które odparowują w temperaturze pokojowej lub wyższej. VOC mogą być emitowane przez istoty żywe, źródła naturalne, chemikalia lub procesy spalania. Krótkotrwałe narażenie może powodować podrażnienie oczu, nosa i gardła, bóle i zawroty głowy lub nasilenie astmy. Długotrwała ekspozycja prowadzi do raka płuc, uszkodzenia wątroby, nerek lub centralnego układu nerwowego. Lotne związki organiczne są najczęstszymi substancjami w fazie gazowej, które powodują zanieczyszczanie powietrza w pomieszczeniach zamkniętych.

Tlenki azotu (NOx) powstają w wyniku spalania paliw kopalnych i przyczyniają się do powstawania zanieczyszczeń cząstkami stałymi. Gotowanie na kuchenkach gazowych lub zanieczyszczone powietrze zewnętrzne, dostające się do wnętrza z ruchliwych dróg, wpływa na jakość powietrza w pomieszczeniach. Jednakże tlenki azotu powstają również w wyniku naturalnych procesów atmosferycznych. Substancje z grupy NOx – zwłaszcza dwutlenek azotu – podrażniają i uszkadzają układ oddechowy.

Cząstki stałe, w skrócie PM (Particulate Matter), nazywane też pyłem zawieszonym, obejmują drobiny o wielkości od 0,1 do 10 μm. Wartości PM są mierzone w μg/m³ jako „stężenie masowe”. Pył zawieszony to głównie mieszanina kurzu, roztoczy, pleśni lub pyłków, które mogą prowadzić do reakcji alergicznych i chorób układu oddechowego.

Moduł ULPSM z analogowym czujnikiem CO

Firma SPEC Sensors udostępnia analogowy moduł pomiarowy ULPSM (Ultra-Low Power Sensor Module), umożliwiający dołączenie dowolnego firmowego czujnika gazu w obudowie z wyprowadzeniami goldpin 2,54 mm. ULPSM przekształca liniowy sygnał prądowy z czujnika tlenku węgla na liniowy sygnał napięciowy, utrzymując przy tym sensor w optymalnych warunkach pracy. Moduł ULPSM z analogowym czujnikiem CO o bardzo małej mocy [8] pracuje z zasilaniem nominalnym (V+) równym 3 V (2,7…3,3 V) i dostarcza napięcie wyjściowe 0…3 V. Dokładny opis czujnika i modułu pomiarowego został zamieszczony w artykule „Moduł ULPSM-CO z czujnikiem tlenku węgla firmy SPEC Sensors” [4].

Wyprowadzenia V+, Vgas, Vref oraz Vtemp modułu zostały dołączone do wejścia przetwornika ADS1115 o impedancji wejściowej 6 MΩ (w zakresie 2…4 V). Poszczególne kanały są pojedynczo dołączane do wejść ADC. Warto dodać, że podpięcie ADC do wyprowadzenia Vref powodowało skok napięcia na wyjściu Vgas o amplitudzie pełnego zasilania. Dlatego pomiędzy V+, Vref oraz GND został dołączony zewnętrzny dzielnik 2×10 kΩ z rezystorami 0,1%, co zlikwidowało zakłócenia dynamiczne.

Pozostał natomiast dosyć wysoki poziom zakłóceń Vgas spowodowanych sygnałem sieci energetycznej 50 Hz. Próby prowizorycznego ekranowania płytki modułu nie poprawiły sytuacji. Dlatego został zastosowany najdłuższy okres próbkowania przetwornika ADC (8 Sps) oraz uśrednianie 10 kolejnych odczytów.

Czujnik SEN5x

Czujnik SEN55 mierzy stężenie cząstek stałych, VOC, wilgotności, temperatury oraz NOx. Został on dokładnie opisany w artykule „Moduł czujników środowiska SEN5x firmy Sensirion” [1]. Układ dostarcza w pełni skalibrowane dane za pośrednictwem interfejsu cyfrowego. Sygnały i zasilanie są dostępne na dosyć nietypowym złączu komunikacyjnym (6-pinowym z rozstawem 1,25 mm). Razem z modułem SEN5x w zestawie dostarczany jest kabel z wtyczką do gniazdka złącza komunikacyjnego, zakończony z drugiej strony wtyczkami typu goldpin.

Napięcie zasilania czujnika SEN55 wynosi 5 V (4,5...5,5 V). Przy zasilaniu bateryjnym modułu Enviro Weather dostępne napięcie zasilania z akumulatora wynosi od ok. 3,7 V do 4,2 V, czyli plasuje się poniżej wymaganego zakresu pracy SEN55. Dodatkowo wymagane jest zasilanie o niskim poziomie zakłóceń.

Dlatego została zastosowana płytka EVL3424A-G-00A z przetwornicą podwyższająca MP3424A firmy Monolithic Power Systems. Układ może pracować z napięciem wejściowym 2,0...5,5 V i daje napięcie wyjściowe 3,0…5,5 V (@ 3,1 A).Wartości rezystorów płytki zostały tak zmodyfikowane, aby ustawić napięcie wyjściowe 5,5 V. Układ pracował bardzo stabilnie, lecz na wyjściu występowały zakłócenia w postaci szpilek. Dlatego do wyjścia została dołączona płytka SCP-LT3045-1-EVALZ z układem LT3045 firmy Analog Devices. Jest to układ LDO o bardzo niskim poziomie szumów (0,8 μV RMS) oraz bardzo wysokim PSRR: 76 dB dla 1 MHz. Wyjściowe napięcie 5 V całego toru zasilania jest dzięki temu pozbawione zakłóceń w bardzo szerokim pasmie.

Czujnik SEN55 udostępnia wyniki pomiaru VOC w postaci indeksu VOC w zakresie od 1 do 500. Powietrze w każdym pomieszczeniu zamkniętym zawiera określone tło VOC pochodzące ze źródeł stale wydzielających się gazów. Na skali indeksu VOC to przesunięcie jest odwzorowywane na wartość 100. Indeks VOC powyżej 100 oznacza, że jest więcej VOC w porównaniu ze średnią (np. w wyniku gotowania, sprzątania, oddychania itp.), natomiast wskaźnik VOC poniżej 100 oznacza, że jest mniej VOC w porównaniu do średniej (np. co może być spowodowane świeżym powietrzem z otwartego okna, użyciem oczyszczacza powietrza itp.).

Analogicznie do pomiaru VOC moduł SEN55 udostępnia wyniki pomiaru NOx w postaci indeksu NOx w zakresie od 1 do 500. Indeks NOx powyżej 1 oznacza, że istnieje więcej związków NOx w porównaniu do średniej (np. powstałych podczas gotowania na gazie). Wskaźnik NOx bliski 1 oznacza, że nie ma (prawie) żadnych gazów NOx, co ma miejsce w większości przypadków. Gdy indeks NOx przekracza 20, należy otworzyć okno lub uruchomić oczyszczacz powietrza.

Zmodyfikowany moduł DFRobot I²C ADS1115

Moduł DFR0553 firmy DFRobot [6] zawiera układ przetwornika analogowo-cyfrowego typu ADS1115 z interfejsem I²C, zasilanego za pomocą stabilizatora LDO typu LP5907MFX-3.3. Oryginalny moduł został trochę zmodyfikowany, a jego dokładny opis został zamieszczony w artykule „Czujnik UV z fotodiodą GUVA-S12SD” [5]. Do pracy z układem ADS115 została zastosowana biblioteka języka MicroPython [7] opracowana przez Wolfganga (Wolle) Ewalda w języku Python na ESP32.

Dołączanie czujników do modułu Enviro Weather

Sposób połączenia Raspberry Pi Pico W, modułu Enviro Weather [2], wyświetlacza Pico Inky Pack Pack (PIM634) firmy Pimoroni oraz ekspandera i pozostałych czujników środowiskowych opisano szczegółowo we wcześniejszych odcinkach niniejszego cyklu. Moduł ULPSM został dołączony do zmodyfikowanego modułu DFRobot I²C ADS1115 [5]. Napięcie 3,3 V do zasilania modułu jest pobierane z płytki przetwornika.

Na płytce Enviro Weather zostały praktycznie zrealizowane zalecenia dotyczące ograniczania poboru mocy procesora RP2040.

Płytka została zaprojektowana tak, aby działała dobrze przy zasilaniu bateryjnym. Na płytce Enviro Weather został zastosowany scalony układ zegara czasu rzeczywistego (RTC) o bardzo niskim poborze mocy, dzięki czemu można okresowo budzić mikrokontroler, odczytywać dane z czujników, a następnie ponownie wyłączyć procesor i zasilanie układów na płytce.

Jeśli jest obecne zasilanie na szynie VBUS, to jest ono podawane na szynę VSYS i przetwornica RT6150A płytki Pico W zasila procesor RP2024. W przeciwnym wypadku napięcie z gniazdka BATT jest – poprzez tranzystor MOS – przekazywane na szynę VSYS, do której dołączone są też układy zasilania czujnika SEN55 oraz modułu I²C ADS1115.

Układ RTC jest zasilany cały czas (pobór prądu 18 μA) przez osobną przetwornicę AP2138N (prąd upływu 1,0 μA) dołączoną do gniazdka BATT (lub VSYS w przypadku zasilania z USB). Dokładny opis organizacji zasilania płytki Raspberry Pi Pico W oraz Enviro Waether został omówiony w artykule „Optymalizacja poboru mocy urządzenia IoT z płytką Raspberry Pi Pico W” [3].

Wszystkie układy scalone zostały dołączone do tej samej szyny I²C (piny 4 i 5).

Praca czujników z modułem Enviro Weather

Wpisywanie oprogramowania firmowego do pamięci procesora znajdującego się na płytce Enviro Weather zostało dokładnie omówione w artykule „Stacja pogodowa Enviro Weather firmy Pimoroni” [2].
Najprostsza wersja wpisania oprogramowania firmowego:

  1. Pobierz ze strony Enviro MicroPython firmware [12] najnowszą wersję firmowego pliku obrazu (uf2) zawierającą jednocześnie Enviro i MicroPythona. Obecnie jest to plik pimoroni-enviro-v1.22.2-micropython-enviro-v0.2.0.uf2.
  2. Trzymaj wciśnięty przycisk BOOTSEL płytki Rasperry Pi Pico W (pod spodem płytki Enviro) i podłącz ją kablem USB do komputera. Spowoduje to przejście oprogramowania płytki Pico W do trybu DFU, a na komputerze zostanie otwarte okno RPI-RP2, pokazujące zawartość dysku udostępnianego przez Pico W.
  3. Przeciągnij pobrany plik uf2 do okna dysku RPI-RP2.

Płytka Pico W uruchomi się ponownie z najnowszą wersją MicroPythona. Nie będzie już udostępniała dysku oraz przejdzie bezpośrednio do trybu konfiguracji.

Uwaga! Nastąpi skasowanie poprzedniej zawartości pamięci Flash.

Teraz trzeba do Rasperry Pi Pico W wpisać pliki aplikacyjne main.py oraz ADS1115.py (plus config.py i data.txt) z pobranego pliku enviro_CO_SEN55.zip. Podmieniane są pliki main.py i config.py.

Podczas pomiaru cała aplikacja (w pliku main.py) wykonywana jest tylko raz. Dlatego każdorazowo musi być realizowana inicjalizacja układu ADS1115 i czujników, a potem odczyt danych pomiarowych. Na końcu kodu w pliku main.py płytka Enviro Weather jest wprowadzana na pewien czas (np. 2 min) w uśpienie z aktywnym zewnętrznym zegarem RTC. Podczas zasilania z akumulatora wyłączane jest zasilanie całej płytki Enviro Weather oraz wszystkich dołączonych czujników i modułu ADS1115, z wyjątkiem układu RTC. Sygnał alarmu z RTC wymusza reset procesora.

Wyjście CLKOUT układu RTC jest dołączone do czerwonej diody LED (WARNING). Układ zegara RTC po włączeniu zasilania wystawia na wyjściu CLKOUT przebieg o częstotliwości 32768 Hz. Powoduje on delikatne migotanie czerwonej diody LED. Przy konfigurowaniu układu RTC przez aplikację Enviro wyjście CLKOUT jest ustawiane na poziom niski. Po uruchomieniu pomiarów czujników, na płytce Enviro Weather błyska biała dioda LED (ACTIVITY) z częstotliwością 1 Hz. Czas jej błyskania praktycznie określa czas wykonywania pomiarów przez wszystkie czujniki. Ta dioda jest dołączona do wyprowadzenia procesora skonfigurowanego jako wyjście modułu peryferyjnego PWM. Funkcjonalnie oznacza to zdefiniowanie autonomicznego wątku sprzętowego. Jeśli podczas migania diody nastąpi zatrzymanie działania aplikacji z powodu błędu, to dioda nadal będzie migać.

Układ RTC wymaga ustawienia początkowej daty i czasu. Gdy płytka Enviro Weather jest dołączona do sieci Internet, to aplikacja Enviro synchronizuje RTC z czasem sieci. W naszym przypadku data i czas są wczytywane na początku aplikacji z pliku data.txt. Zegar RTC jest inicjalizowany pobranymi wartościami. Zapisane są tam także inne dane: znacznik ustawienia czasu, godzina, minuta, sekunda, dzień, miesiąc, rok, licznik niepełnych pomiarów, licznik okresu czyszczenia wiatraczka oraz wartości poziomu pyłów z ostatniego pełnego pomiaru. Wewnętrzny układ RTC procesora RP2040 nie jest używany w projekcie.

Następnie wykonywane jest wykrywanie obecności wszystkich układów na szynie I²C. Obsługiwane są tylko aktywne czujniki.

Kolejny krok to sprawdzenie stanu czujnika SEN55. Co tydzień pracy należy wykonać procedurę czyszczenia wiatraczka czujnika. Potem wysyłane jest polecenie wystartowania pomiarów przez czujnik SEN55. Pomiary wykonywane są co 1 s. Odczyt danych z czujnika SEN55 realizowany jest na dwa sposoby.

W przypadku pomiaru częściowego wykonywany jest tylko pojedynczy odczyt danych RTC/VOC/Nox, zaś w trybie pomiaru pełnego wykonywany jest dodatkowo wielokrotny odczyt danych pomiaru pyłów z uśrednianiem. Zwiększa to dokładność pomiaru przy niskich poziomach stężenia pyłu. Po odczytaniu danych wysyłana jest do modułu SEN55 komenda „Stop measurement”. Powoduje to przejście czujnika do trybu uśpienia i zatrzymanie pracy wiatraczka (jeśli był wykonywany pomiar pełny). Pomiar pełny, z dodatkowym pomiarem pyłów, wykonywany jest co kilka pomiarów częściowych (np. co 4).

Gdy czujnik pyłów znajduje się w trybie pomiarowym, średni prąd zasilania sensora wynosi 63 mA (max. 70 mA). W trybie pomiaru RHT/ Gas-Only pobór prądu jest zmniejszony do 6,8 mA [1]. Przy niskich poziomach mierzonych parametrów zanieczyszczeń powietrza, czas pomiaru przez czujnik SEN55 (czyli czas jego zasilania) musi wynosić co najmniej 60 sekund.

Z czujnika CO odczytywane są napięcia w trzech kanałach przetwornika ADC: napięcie pomiarowe i napięcie referencyjne (dziesięć odczytów uśrednianych) oraz napięcie pomiaru temperatury. Na tej podstawie liczony jest poziom stężenia tlenku węgla (CO) [4].

Odczyt pomiarów czujników płytki Enviro Wether jest wykonywany za pomocą funkcji get_sensor_readings z aplikacji firmowej Enviro. W trakcie odczytu miga biała dioda LED co 1 sekundę.

Dane pomiarowe z czujnika SEN55 są stabilne dopiero po dosyć długim okresie po rozpoczęciu pomiarów.

Pobrane dane są wyświetlane na wyświetlaczu INKY [11]. Przykład pomiaru parametrów środowiska został pokazany na fotografii tytułowej. Najpierw następuje konfiguracja wyświetlacza polegająca na zdefiniowaniu jego modelu i wymiarów, szybkości aktualizowania obrazu oraz rodzaju czcionki. Następnie czyszczony jest ekran. Po lewej stronie panelu wyświetlane są wyniki pomiaru z czujników płytki Enviro Weather. Na dole znajduje się wynik pomiaru CO. Po prawej widoczne są wyniki z czujnika SEN55, natomiast na dole wyświetlany jest czas i data ostatniego pomiaru. Jeśli ostatni pomiar był pełny (z odczytem poziomu pyłów), to sygnalizowane jest to gwiazdką po polu czasu. Dla pomiarów częściowych pokazywane są (powtarzane) poziomy pyłów z ostatniego pomiaru pełnego.

Następnie data i czas pomiaru są pobierane z RTC i zapisywane w pliku data.txt.

Na koniec wywoływana jest firmowa funkcja enviro.sleep, programująca RTC na wybudzenie procesora oraz wprowadzająca płytkę Enviro Weather w stan wyłączenia zasilania (w przypadku zasilania z wejścia BATT).

Oprogramowanie było uruchamiane w środowisku Thonny. Na listingu 1 pokazano okno Shell po wystartowaniu aplikacji pomiarowej – poszczególne informacje są wyprowadzane albo przez nią, albo przez firmową aplikację Enviro (poprzedzone znacznikiem czasu). Pozwalają one na dosyć dokładne zorientowanie się w postępach pracy oprogramowania.

Listing 1. Informacje widoczne po uruchomieniu aplikacji

Dokładne dane pomiaru napięcia z modułu CO pozwalają na zweryfikowanie poprawności jego pracy. Doświadczenia pokazują, że jego praca stabilizuje się dopiero po dłuższym czasie zasilania modułu.

Do dynamicznego pomiaru prądu zasilania bardzo dobrze nadaje się zestaw Power Profiler Kit II (PPK2) firmy Nordic Semiconductor. Jest to samodzielny układ, który bez zewnętrznego sprzętu może mierzyć i dostarczać prądy od poniżej μA do 1 A. Praktyka pokazuje, że zakres pracy rozciąga się do ok. 2 A. Wymaga to jednak dołączenia dodatkowego zasilania kablem USB do drugiego gniazdka PPK2. Dokładny opis PPK2 jest zamieszczony w artykule „Profilowanie mocy z zastosowaniem Power Profiler Kit II” [13].

Na rysunku 1 został pokazany pomiar poboru prądu płytki Enviro Weather po podaniu zasilania na wejście BATT (4,2 V) z zestawu Power Profiler Kit II (PPK2). Po włączeniu zasilania układu pomiarowego zawsze wykonywany jest pomiar pełny, a następnie kilka (np. trzy) pomiary częściowe. Dla wygody uruchamiania pomiary wykonywane są co ok. 2 min. Płytka Enviro Weather, po podaniu zasilaniu na wejście BATT, pobiera impuls prądu 250 mA (ok. 200 μs) i startuje tylko układ RTC, migając słabo czerwoną diodą LED (ok. 0,6 mA). Dopiero przyciśnięcie przycisku POKE powoduje impulsowy pobór prądu ok. 1,4 A (ok. 600 μs) i start aplikacji. W następnych cyklach pomiarowych nie jest potrzebne dalsze przyciskanie POKE. Jednak po resecie występuje taki sam pik prądu rozruchowego. Drastycznie zwiększa to wymagania dotyczące zasilania układu. Płytka Enviro Weather w stanie wyłączenia zasilania (uśpienia) pobiera ok. 30 μA prądu (zasilane jest tylko RTC). Średni pobór prądu podczas pełnego pomiaru wynosi ok. 320 mA, a podczas pomiaru częściowego ok. 140 mA. Średni pobór prądu za okres jednego pomiaru pełnego i trzech pomiarów częściowych wynosi ok. 132 mA. Ten pobór drastycznie maleje po zwiększeniu odstępów czasowych pomiędzy pomiarami.

Rysunek 1. Profil poboru prądu płytki Enviro Weather podczas kilku cykli pomiarowych

Podczas zasilania płytki Enviro Weather z gniazdka USB funkcja enviro.sleep, umieszczona na końcu pracy aplikacji, programuje RTC na zgłoszenie przerwania po odpowiednim czasie, lecz nie wprowadza płytki Enviro Weather w stan wyłączenia zasilania. Zamiast tego odczytuje w pętli znacznik przerwania układu RTC. I dopiero po jego ustawieniu wymusza reset procesora. Średni pobór prądu płytki (5 V) wynosi: pomiar pełny ok. 286 mA, pomiar częściowy ok. 124 mA oraz w trakcie oczekiwania na przerwanie ok. 120 mA.

Podsumowanie

Bardzo dobrze zaprojektowana płytka Enviro Weather, udostępniająca wiele czujników środowiska, może zostać uzupełniona poprzez dołączenie czujników mierzących kolejne parametry otoczenia. Przy efektywnym zarządzaniu przez płytkę Enviro Weather poborem prądu z baterii, zrealizowany zestaw stanowi dobrą platformę do prototypowania własnych urządzeń IoT.

W artykule zostało pokazane dołączenie analogowego czujnika tlenku węgla oraz zespolonego modułu czujników SEN55, wykonującego pomiar wilgotności, temperatury, cząstek stałych (PM1,0, PM2,5, PM10), lotnych związków organicznych (VOC) i tlenków azotu (NOx). Zastosowano także wyświetlacz Pico Inky Pack Pack typu e-paper.

Przykład pomiaru parametrów środowiska, pokazany na fotografii tytułowej, uwidacznia typowe parametry atmosferyczne w pomieszczeniu w trakcie lata. Dosyć wysoka temperatura, obniżona wilgotność, niski poziom VOC (średni to indeks 100) oraz raczej niski poziom pyłów i CO. Indeks NOx równy 1 to sytuacja normalna, każdy poziom wyżej to już zagrożenie. Dla lepszej oceny jakości powietrza przydałby się jeszcze pomiar poziomu CO2.

Zastosowana aplikacja pomiarowa może zostać rozbudowana o kompensację pomiarów czujnika SEN55 (np. z uwzględnieniem zmian temperatury i wilgotności) oraz jego okresową kalibrację.

Długi czas stabilizacji pracy modułu ULPSM z analogowym czujnikiem, przy jego bardzo małym poborze prądu 15 μA, sugeruje możliwość zasilania go w sposób ciągły – tak, jak ma to miejsce w przypadku układu RTC. Wymaga to jednak wyprowadzenia wewnętrznego napięcia szyny V+_A0 płytki Enviro Weather. Pomiary CO z zastosowaniem modułu ULPSM z analogowym czujnikiem CO wymagają przeprowadzenia kalibracji.

Wiatraczek czujnika SEN55 pracuje bezgłośnie. W trakcie badań zdarzało się zawieszenie obracania wiatraczka bez sygnalizacji w rejestrze stanu. Mechaniczne popchnięcie przy wyłączonym zasilaniu przywracało funkcjonalność.

Zastosowanie środowiska uruchomieniowego Thonny ułatwia rozpoczęcie pracy z procesorem RP20240 w języku MicroPython i daje możliwość wykorzystania wielu przykładowych projektów. Wadą jest praktycznie brak wspomagania procesu debugowania. Już po pierwszym wykonaniu aplikacji następuje reset procesora i utrata komunikacji środowiska Thonny z płytką Enviro Weather. Oznacza to brak możliwości podglądu informacji wysyłanych przez aplikację. Nie pomaga ponowne dołączenie środowiska do działającej płytki, ponieważ powoduje to zatrzymanie działania aplikacji. Również wystąpienie błędu podczas pracy aplikacji powoduje zatrzymanie jej działania bez możliwości zasygnalizowania problemu. Jeśli wystąpi to podczas pracy modułu PWM, to biała dioda LED będzie błyskała bez końca.

Występuje rozdźwięk pomiędzy wymaganym odstępem czasu pomiaru poziomu pyłów, który narasta raczej powoli, a wymaganiami pod względem pomiaru poziomu tlenku węgla, który może pojawić się dosyć szybko, a jego rezultaty mogą być katastrofalne. Komercyjne czujniki tlenku węgla wykonują pomiary co ok. 15 s.

Realizacja oprogramowania bazuje na projekcie „Pomiar parametrów powietrza w pomieszczeniach”, wykonanego w ramach przedmiotu „Systemy wbudowane i oprogramowanie” na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej przez zespół w składzie: Krzysztof Kosmalski, Stanisław Obszarski, Jan Zakrzewski i Mateusz Zengiel.

Henryk A. Kowalski
Instytut Informatyki
Politechnika Warszawska

Literatura:
[1] „Moduł czujników środowiska SEN5x firmy Sensirion”, Henryk A. Kowalski, EP 3/2024, https://tiny.pl/d0fyfcy5 
[2] „Stacja pogodowa Enviro Weather firmy Pimoroni”, EP 4/2024 https://tiny.pl/d93r1 
[3] „Optymalizacja poboru mocy urządzenia IoT z płytką Raspberry Pi Pico W”, EP 5/2024, https://tiny.pl/d59hg 
[4] „Moduł ULPSM-CO z czujnikiem tlenku węgla firmy SPEC Sensors”, EP 7/2024, https://tiny.pl/mz4qvx9b 
[5] Czujnik UV z fotodiodą GUVA-S12SD, EP 10/2024
[6] Gravity: I²C ADS1115 16-Bit ADC Module, DFR0553, DFRobot, https://tiny.pl/n6qfj60b 
[7] ADS1115_mpy, A MicroPython module for the ADS1115 ADC. Wolfgang (Wolle) Ewald, https://tiny.pl/twv9zkq9 
[8] ULPSM-CO 968-001, Ultra-Low Power Analog Sensor Module for Carbon Monoxide, October 2016, https://tiny.pl/djzww 
[9] ULPSM Public Arduino Library for ULPSM (ultra-low power sensor module) or SDK (sensor development kit), Nov 15, 2021, https://github.com/SPEC-Sensors/ULPSM 
[10] Pico Decker (Quad Expander) PIM555, Pimoroni, https://tiny.pl/mwp5n68n 
[11] Pico Inky Pack PIM634, Pimoroni, https://tiny.pl/94b0pv9f 
[12] Enviro MicroPython firmware, Pimoroni, https://tiny.pl/dt49f 
[13] „Profilowanie mocy z zastosowaniem Power Profiler Kit II”, EP 5/2022, https://tiny.pl/d93rd 

Artykuł ukazał się w
Elektronika Praktyczna
listopad 2024
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich styczeń 2025

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów