Nettigo Air Monitor - wersja z akumulatorem i kompensacja grzałki

Cześć, przeglądając projekty czujników smogu trafiłem na NAM i po nitce do kłębka właśnie na to forum. To w sumie najlepiej przemyślany projekt tego typu, natomiast największą jego wadą jest moim zdaniem wymagane stałe zasilanie. W czasach tanich ogniw 18650 i oszczędnego ESP32 wydaje się to być wykonalne. Czy rozwijana jest jakaś alternatywna wersja zasilana bateryjnie?

Do tego oczywiście trzeba by zrezygnować z grzałki, pytanie czy da się sensownie skompensować jej brak odpowiednią funkcją dla PM2,5 i PM10? W innych projektach próbowano to zrobić, natomiast nie wiem jaka jest skuteczność tej metody. Teoretycznie powinna być to prosta sprawa, bo wystarczy robić równolegle pomiary w wersji z grzałką i bez, a dla zebranych danych przeprowadzić regresję liniową dwóch zmiennych (wilgotność i temperatura), czy inny algorytm uczenia maszynowego.

PS: Na air.nettigo.pl poprawcie literówkę w title i navbarze :wink:

Pomysł fajny, ale nie wiem, czy rezygnacji z grzałki to dobry pomysł. Nota katalogowa SDS011 mówi jasno, że komponent pracuje poprawnie w środowisku z wilgotnością względną do 70%. Bywają dni, kiedy masz naprawdę mokro/wilgotno i pytanie, jak to wpłynie na SDS w dłuższym czasie (jeśli będzie zasysać tak wilgotne powietrze).

W swoim projekcie (eko.edial.pl) mam ponad 20 NAM–ów i patrząc na wykresy pracy grzałki, uważam, że “robi robotę” i jest potrzebna.

Inną sprawą jest to, że lepiej mieć wynik faktyczny, zamiast szacowanego (patrzę na Ciebie Airly :stuck_out_tongue: ). :man_shrugging:t2:

1 polubienie

Tak. Na przełomie 2020/2021 roku powstał czujnik przystosowany do pracy na zasilaniu solarnym. Oczywiście bez grzałki. Czujnik ten nazywa się Szpak (SPAQS - Solar Powered Air Quality Sensor) i powstał w ramach mojej działalności w Stowarzyszeniu Otwarta Sieć Rzeczy.

https://easyeda.com/Open-Things-Network/SPAQS

Szpak używa tej samej obudowy co NAM 0.3. Zamiast ESP8266 czy ESP32 ma płytkę Heltec CubeCell HTCC-AB01. To dzięki niej jest w stanie ładować akumulator litowo jonowy i komunikować się w standardzie LoRa / LoRaWAN (TTN).

Do sensownego działania szpak potrzebuje kilku zmian. Przede wszystkim należy zmienić przetwornicę step-up na taką, która będzie miała większą wydajność i możliwość sterowania pinem EN (Enable).




// sarkazm = 1

Prosta sprawa… Pewnie do ogarnięcia w 10 minut, tylko jakoś prawie nikomu to sensownie nie wychodzi.

// sarkazm = 0

Grzałka i praca na baterii faktycznie nie bardzo się lubią. Chyba że damy naprawdę duże baterie i panel fotowoltaiczny. Kompensacja warunków wysokiej wilgotności programowo jest wykonalna, niemniej trudna. Bo dla każdej lokalizacji należy przeprowadzić ją osobno. Bardzo dobrze zapowiadają się algorytmy korzystające z uczenia maszynowego.

Dla przykładu tutaj mamy R² na poziomie 0.94 przy użyciu ANN, a nawet 0.95 przy użyciu ANN oraz detekcji anomalii. Co w moim odczuciu, jest już rewelacyjnym wynikiem.

Nie jest to takie skomplikowane, ale wymaga czasu i chęci. Czyli pieniędzy :slight_smile:

We used a Time series analysis with correlation methods and a two-step calibration model using Supervised ML (Linear Regression, Decision Tree, Gradient Boosting Decision Tree, Random Forest, Artificial Neural Network) and Unsupervised ML (Anomaly detection).

Jakby nie patrzeć Airly robi to już od dłuższego czasu. Ale z wiadomych powodów nie dzieli się publicznie informacjami w jaki sposób to robi.

Oczywiście można pójść też drogą na skróty i zastosować dużo prostszą kompensację. Sensor.Community pisało o tym w 2019 roku:

Jest kilka dobrych publikacji naukowych w tej dziedzinie. Dostępne są na forum Sensor.Community. W wolnej chwili je tu podlinkuję.

Niemniej podstawą kompensacji programowej - jeżeli celujemy w bardzo wysokie R² - jest możliwie najdokładniejsze zmierzenie temperatury i wilgotności. Czujniki takie jak Sensirion SHT31 wydają się być wystarczająco dobre.

Dokładnie. Grzałka w NAM pozwala SDS011 pracować w każdych warunkach: w deszczu, podczas mgły, gdy są mrozy, itp. Jak dla mnie użycie HECA, HECA2 czy HECATe (taka HECA z PID) rozwiązuje masę dodatkowych problemów - nie tylko zawyżanie pomiarów w warunkach wysokiej wilgotności.

To nie do końca tak. Patrząc na to od strony statystyki, to wszystko zależy jak bliskie jedynki jest R². Jak dla mnie wszystko powyżej 0.95 daje radę.

2 polubienia

Czas pracy jest stricte uzależniony od tego jak często robisz pomiary. Szpak domyślnie robił pomiary raz na 5 minut ale spotkałem się z sytuacjami w których interwał został wydłużony nawet do 10-15 minut.

Głównym elementem, który zużywa prąd jest wentylator czujnika pyłu. SDS011 podczas pracy zużywa w okolicach 70-95mA (w zależności od wersji). Sam układ CubeCell od Heltec, w idealnych warunkach (zasilanie przez 3V3) może zejść z poborem prądu do 3.5µA w Deep Sleep. Ale tu mamy daleko od idealnych warunków. W stanie uśpienia SDS011 jest odłączany od prądu na sztywno. Zatem szacunkowo będzie to zużycie na poziomie kilkunastu µA.

Szpak jako źródła zasilania używa ogniwa 18650, którego pojemność może dochodzić do 3400mAh. Nie ma też przeciwskazań aby dać 2 ogniwa równolegle.

Zakładając że czujnik miałby pracować w trybie ciągłym i ma jedno ogniwo 3400mAh, to zużywając około 150mA, powinien pracować około 22h w trybie ciągłym.

1 polubienie

Tak, raczej właśnie ze względu na błąd pomiaru przy dużej wilgotności. To co faktycznie może zaszkodzić czujnikowi, to kondensacja pary wodnej, a to przy dobrym umiejscowieniu mu nie grozi.

Pełna zgoda, natomiast sama idea pomiaru zanieczyszczenia powietrza laserem już zakłada pewne szacowanie, a nie badanie. Skalowanie wartości przez współczynniki nigdy nie zastąpi grzałki, ale może być dobrą rekompensatą dla osób, które zdecydowały się na tańszą wersję i moim zdaniem jedynym wyjściem, jeśli ktoś chciałby mieć zasilanie bateryjne. Kabel zawsze będzie tutaj potencjalnie problematyczny, bo ładowarka zajmuje gniazdko, trzeba przeciskać kabel i sensor raczej powinien być jak najbliżej okna. Obecne NAMy bez grzałki po prostu wydają mi się bezcelowe. Większość z nich wisi na zewnątrz, a bez grzałki te wartości w sezonie grzewczym są po prostu z kosmosu, bo wilgotność zazwyczaj przekracza 70%.

Myślę, że to nie jest kwestia trudności i mnóstwa pieniędzy, a trochę inicjatywa głównodowodzących projektem :wink: Sam bym chętnie porównał różne implementacje, ale musiałbym kupić dwa zestawy NAMów. Przypadkowej osobie nie będzie na tym zależało, bo nawet jak uzyska zadowalający rezultat u siebie, to i tak najlepiej mieć dane testowe z różnych części Polski, gdzie czujniki pracują w różnych warunkach.

Przy zasilaniu bateryjnym właściwie wystarczy uśredniony pomiar raz, maksymalnie dwa razy na godzinę, bo poziom zanieczyszczenia powietrza nie zmienia się bardzo gwałtownie w czasie. Choć oczywiście inaczej jest to w zastosowaniu prywatnym, a inaczej publicznym, gdzie chcemy możliwie jak najnowszy wynik. Ogólnie przy jakimś ESP32-S2, oszczędnym LDO i wyłączaniu SDS już na poziomie przetwornicy, to z 2x18650 pewnie można by wyciągnąć 2 miesiące na baterii, a dorzucając panel PV na obudowę, to może być nawet obiecujące :thinking:

Oj, zupełnie się z tym nie zgodzę. Bierzesz pod uwagę istnienie wiatru?

Oczywiście, że tak, wiatr przecież też nie zmienia się bardzo gwałtownie (za wyjątkiem burz), bo układ baryczny obowiązuje przynajmniej przez kilka godzin. Przy zastosowaniu prywatnym pomiar raz na pół godziny daje jasną informację jaki jest aktualnie stan za oknem, przecież nikt nie czeka z wyjściem na spacer 15 minut, bo “może za chwilę PM2,5 trochę spadnie” :grinning: Inaczej jest przy zastosowaniu publicznym, wtedy jest mniej miejsca na kompromisy.

Moim zdaniem, nie tylko ze względu na błąd pomiaru. Błędy pomiaru spowodowane wilgotnością względną pojawiają się już już przy 50-55% RH. Jednak uwzględniając dokładność pomiaru czujników, znaczenie mają te powyżej 65-70%.

Elektronika nie lubi wysokiej wilgotności. A najbardziej nie lubi wysokiej wilgotności z występującą kondensacją. Dlatego NAM jest zbudowany tak a nie inaczej. Ciepłe powietrze z grzałki, po przejściu przez SDS011 wypełnia całe wnętrze obudowy. Ucieka dołem. Mamy w ten sposób pewność, że wewnątrz obudowy panuje wyższa temperatura niż na zewnątrz. Co za tym idzie niższa wilgotność względna.

Metoda rozproszenia światła laserowego nigdy nie będzie metodą równoważną. Z prostego względu - w tej metodzie nie badamy masy, tylko jasność i ilość impulsów świetlnych rejestrowanych przez element światłoczuły. Impulsy te nie są zależne od masy cząstki, ale od jej wielkości i materiału z którego jest zrobiona. Taki czujnik będzie działał dokładnie tylko i wyłącznie wtedy gdy znamy średnią gęstość pyłu i współczynnik rozpraszania światła.

Nie potrafię Ci powiedzieć, kto w tym projekcie wyznacza kierunek. Różnymi aspektami projektu zajmują się różni ludzie i o niektórych rzeczach dowiadujemy się z commitów na githubie. Rozwój firmware jest w dużej części dyktowany przez społeczność. Prezentowanie danych na aqi.eco podobnie. Do tej pory sprzętem zajmowałem się głównie ja, ale odkąd nie pracuję w Nettigo, nie wiem kto to przejmie.

Moim zdaniem badań porównawczych nie da się sensownie zrobić na tylko dwóch NAMach. Zbyt duże różnice występują pomiędzy egzemplarzami SDS011. Chyba że przełączać je na zmianę co jeden dzień. Niemniej, wydaje mi się, że optymalnym byłoby użycie 6 szt (3 z grzałką + 3 bez) z taką rotacją. Idealnie byłoby, gdyby czujniki były umieszczone w niedalekiej odległości (<50m) od referencyjnej stacji GIOŚ.

Co do różnych części Polski. To nie jest tak, że każde województwo ma swój unikalny profil pyłowy. Taki profil może się drastycznie zmienić po 500m. Dane powinny być też różnicowane ze względu na typ zabudowy, układ terenu, ilość drzew, przemysł, transport, itp. Nie tyle chodzi o miejsce geograficzne, co o typ dominujących źródeł zanieczyszczenia, prędkość wiatru, zdolność przewietrzania. Dlatego wydaje mi się, że uczenie maszynowe i sensownie zrobione ANN jest tak naprawdę jedyną drogą.

Mamy przy szkole czujnik Airly, który często świeci się na zielono pomimo tego, że obok jest komin z którego od 20 minut leci czarny, nieprzyjemny w zapachu dym. Może czujnik jest uszkodzony. Może być tak też dlatego, że najbliższa stacja GIOŚ, brana pod uwagę jako punkt odniesienia jest naprawdę daleko. To tylko pokazuje jak trudne i często nieweryfikowalne przez użytkownika końcowego są metody programowej kompensacji wyników.

Tak. To w dużej mierze zależy od wiatru i typu zanieczyszczenia. Moim zdaniem minutowy pomiar raz na 15 minut to absolutne minimum. Da to raptem 4 punktu do wyliczenia kroczącej średniej godzinnej.

Na pewnym poziomie abstrakcji typ mikrokontrolera nie ma znaczenia. Jakbym miał iść w oszczędność energii zdecydowanie poszedłbym w LoRaWAN i Heltec CubeCell. Wi-Fi zjada bardzo dużo prądu na niepotrzebne ceregiele. Ma też relatywnie krótki zasięg. Używając ESP32 co prawda możemy skorzystać ze standardu ESPNow, ale do tego potrzebna będzie z kolei bramka w domu.

Jeżeli zasilasz czujnik z PV, to możesz go wstawić gdziekolwiek. LoRaWAN to też kolejna przewaga - masz zasięg na poziomie od kilkuset metrów w mieście do kilku kilometrów w terenie podmiejskim. Powoduje to, że czujnik można umieścić tam gdzie jest potrzebny (na przykład przy boisku na którym dzieci i młodzież gra w piłkę), zamiast 300m dalej na najbliższym budynku z prądem i WiFi.

Jest to oczywiście prawda, ale w otwartej przestrzeni. W miejskiej lub śródmiejskiej zabudowie, wiatr często zmienia się skokowo. Wystarczy lekko inny kierunek, a podąża innymi kanałami.

Robi nam się powoli dyskusja akademicka. Moje stanowisko jest takie, że pomiary w interwałach do 15 minut mają sens. Im częściej, tym dokładniej. Motywuję je tym, że wyliczanie kroczącej średniej godzinnej (która jest uwzględniana w normach czystości powietrza) z dwóch lub mniej punktów danych całkowicie przeczy idei tej średniej.

Patrząc na to z innej strony. Jeżeli budżet energetyczny jest problemem, to znaczy, że mamy za mały panel PV. Żyjemy w czasach gdy panele 20W są naprawdę tanie (<100 PLN) i wcale nie takie duże (0,15m²). Może podchodzimy do tego tematu nie od tej strony od której powinniśmy. Może należałoby zacząć od zrobienia zasilania. Panel 20W czy 30W, kilka ogniw 18650 lub LiFePo4 o pojemności w okolicach 10Ah-15Ah, na wyjściu regulowane 5V. Taki moduł zasilania byłby niewątpliwie przydatny w wielu innych projektach Civic Tech.

1 polubienie

Plantower w swoich czujnikach PMSx003 deklaruje pracę w wilgotności do 99% RH, a przecież ich zasada działania jest taka sama. Wilgotność nie służy elektronice, ale też raczej nie jest bezpośrednim zagrożeniem jak kondensacja. Zresztą, sama grzałka pomaga ją zmniejszyć, ale zgaduję, że nie da się takich warunków pozbyć całkowicie.

Z tego względu też moim zdaniem zebranie takich danych przez jednego użytkownika i przeprowadzenie uczenia maszynowego nie ma większego sensu. Da odpowiedź, czy metoda działa, ale dla dobrego efektu trzeba wielu takich stacji w różnych miejscach.

Mea culpa, patrzyłem właśnie z perspektywy otwartych przestrzeni i niskiej zabudowy.

I absolutnie się z tym zgadzam. Zwracam uwagę tylko na pewne cechy i ograniczenia, które dla wielu osób mogą być istotnymi wadami, a które można wyeliminować idąc na pewien kompromis. Zrezygnowanie z grzałki czy mniejsza liczba pomiarów obiektywnie zmniejszy wiarygodność takiego pomiaru, ale zwiększy wygodę takiego rozwiązania. Kwestia tego gdzie postawić granicę z czego można zrezygnować, żeby stracić jak najmniej. Nie byłaby to ewolucja NAMa, a raczej jego alternatywna wersja.

Plantower może sobie deklarować co chce. Jeżeli nie masz conformal coating na elektronice, w takich warunkach nie podziała za długo. Przy RH na poziomie 99% kondensacja wystąpi praktycznie od razu gdy spadnie temperatura.

W dużym uproszczeniu ta metoda bierze pod uwagę korelację miejsca w którym masz czujnik i danych z referencyjnej stacji i jej położenia. Jakiś tam sens robienia takich badań zawsze jest, chociażby żeby sprawdzić które metody rokują, a które są zupełnie “od czapy”.

Dlatego projekt, który robiłem w ramach Otwartej Sieci Rzeczy nazywa się Szpak :slight_smile: