Jak zbudować własny miernik smogu
Powoli przyzwyczajamy się do tego, że w zimę wszystkie normy zanieczyszczeń powietrza są u nas przekroczone o kilkaset procent. Wiele osób kupuje do domów oczyszczacze powietrza. Coraz częściej widuje się też na ulicach ludzi w maskach antysmogowych. Na zanieczyszczenia powietrza wpływa wiele elementów, jednak większość z nich pochodzi w Polsce z niskiej emisji i spalin samochodowych. W przypadku niskiej emisji, zanieczyszczenia są szczególnie odczuwalne w zimę, gdy ludzie ogrzewają swoje domy paliwem słabej jakości. Jak sprawdzić stopień zanieczyszczenia powietrza w naszej okolicy? Najprościej wejść na stronę GIOŚ lub Airly czy Airmonitor, lub użyć aplikacji, które pobierają dane z tych serwisów.
Takie rozwiązanie jest wygodne i proste, jednak ma sporo minusów. Dane w tych serwisach pochodzą z mierników jakości powietrza. Sprawdzają one m.in. poziom zanieczyszczenia pyłami PM10 oraz PM2.5. Jeśli nie mieszkamy blisko stacji pomiarowej, to dane z takich serwisów będą tylko poglądowe i mogą dawać informacje o ogólnym poziomie zanieczyszczeń. Nawet odległość 100 metrów robi sporą różnicę. Wystarczy, że gdzieś po drodze będzie jeden dom, który bardziej dymi z komina i wyniki będą zupełnie inne. Nie wspominając już o odległości 5 czy 10 kilometrów od najbliższej stacji pomiarowej.
Rozwiązaniem są niewątpliwie takie mierniki zanieczyszczeń jak Laser Egg czy AirVisual Node. Opis takich urządzeń znajdziecie na stronie iMaga.
Urządzenia takie mają jeden minus – cenę. Kosztują od około 700 PLN. Tańsze mierniki, które nie są „smart” i nie posiadają aplikacji mobilnej czy nawet wifi, można kupić za około 200 PLN. Przykładem jest Airmote PM2.5. Jest jeszcze coś pośrodku, czyli miernik od Xiaomi. Ma on WiFi i łączy się z aplikacją na iOS i Androida i kosztuje u nas około 450 PLN.
Jak działają takie mierniki zanieczyszczeń? Mają w sobie niewielki laserowy miernik pyłu PM10 oraz PM2.5, jakiś układ z WiFi, który zbiera dane i przesyła je gdzieś dalej oraz w zależności od modelu, wyświetlacz i baterię. Czy dałoby się samemu zbudować kilka mierników zanieczyszczeń PM2.5 oraz PM10, które kosztowałby znacznie mniej niż jedno z komercyjnych rozwiązań? Oczywiście, że tak.
Podstawą naszego własnego miernika smogu powinien być laserowy miernik zanieczyszczeń powietrza. Ważne, żeby był laserowy – są one znacznie dokładniejsze i bardziej precyzyjne. Ważne, żeby miał wbudowany wiatraczek, który poprawia przepływ powietrza i umożliwia zbieranie dokładniejszych danych. Przykładem mogą być mierniki Plantower PMS7003 lub pokrewne1. W Polskich sklepach można je kupić za 100 PLN, ale jeśli zamówimy go z Aliexpress, to zapłacimy około 20 USD, czyli jakieś 70 PLN2. Alternatywą dla mierników od Plantower są laserowe mierniki SDS011 i SDS021. Ich ceny są bardzo podobne. Różnią się tym, że można je podłączyć bezpośrednio do komputera przez kabel USB. Mają też inny wlot powietrza. W przypadku SDS011 możemy podłączyć przewód, którym dociera powietrze do miernika. W Plantowerach mamy po prostu szczelinę w obudowie i wiatraczek, który tłoczy powietrze.
Kolejnym elementem jest ESP8266. Najlepiej WeMos D1 lub NodeMcu V3. ESP8266 to niewielkie układy zasilane przez wtyczkę microUSB, które mają możliwość podłączenia różnych czujników. W dodatku mają wbudowane WiFi oraz kosztują grosze. Zwłaszcza w Chinach. W Polskich sklepach ceny obu układów wahają się w granicach 20-30 PLN, natomiast na Aliexpressie można je kupić po około 2-2,5 USD.
To byłoby wszystko w wersji podstawowej. Jeśli chcemy, możemy też dodać miernik temperatury, wilgotności i ciśnienia powietrza. Najlepszym rozwiązaniem byłoby BME280, które można kupić za około 3 USD, ale oczywiście możemy je zastąpić jakimś innym miernikiem lub zupełnie z tego zrezygnować.
Gdy mamy już nasz miernik oraz ESP8266, pozostaje podłączyć urządzenia. Robimy to za pomocą 4 kabelków. Zwykle są w zestawie z miernikami zanieczyszczeń. Dwa przewody służą do zasilania – 5V oraz GND. Tutaj sprawa jest prosta, bo zarówno WeMos D1 jak i NodeMcu mają takie piny. Dwa pozostałe kabelki to Tx oraz Rx, służą one do wysyłania i odbierania danych. Piny z takimi oznaczeniami również znajdują się na wspomnianych płytkach. Teraz pozostaje już tylko podłączenie całości do komputera i wgranie oprogramowania.
Tutaj z pomocą przychodzi nam projekt ESP Easy. Wystarczy pobrać gotowe oprogramowanie, wraz z aplikacją do wgrywania go. Można to zrobić tutaj. Minus jest taki, że instalator jest tylko na Windowsa. Na macOS możemy sobie poradzić jednym poleceniem w Terminalu: sudo python esptool.py --port /dev/tty.usbserial-A702GYS9 write_flash 0x00000 ESP_Easy_mega-20180104_normal_ESP8266_4096.bin
3
Po wgraniu systemu, nasz miernik możemy podłączyć do zwykłej ładowarki USB4. Po chwili stworzy własną sieć WiFi o nazwie „ESP_Easy_0”, hasło to „configesp”. Gdy się z nią połączymy, zobaczymy prosty konfigurator. Pozwoli nam on na wybór naszej domowej sieci WiFi i podanie hasła do niej. Póżniej urządzenie się zrestartuje i będzie już działać normalnie.
Nasz miernik zanieczyszczeń powietrza z ESP Easy wyświetla dane pomiarowe w tabelce. W postaci trzech wartości PM1, PM2.5 oraz PM10. W podobny sposób wyświetlane są wszystkie dane z czujników podłączonych do ESP8266. Dane te możemy wysyłać do różnych serwisów. Przykładem może być thingspeak.com, gdzie nasze dane pomiarowe zostaną zebrane i wyświetlone jako wykres.
Rozwiązanie z ESP8266 i własnymi miernikami pyłów jest o wiele tańsze, zwłaszcza przy zakupie podzespołów w Chinach i umożliwia zrobienie kilku mierników, które możemy rozmieścić w różnych pomieszczeniach, np. na balkonie lub tarasie. Dzięki temu będziemy mieli dostęp do danych o stanie powietrza w najważniejszych dla nas miejscach.
- Plantower PMSx003, gdzie x oznacza różne modele laserowych mierników pyłów. Różnią się głównie wymiarami i kształtem. 7003 jest wielkości pudełka zapałek, tylko o połowę cieńszy. ↩
- Przy tak niskiej cenie nie musimy płacić VATu ani cła za zakupy z Chin. ↩
- Oczywiście
tty.usbserial-A702GYS9
u każdego będzie inny. To zależy od tego jak nasze ESP jest widziane przez system.ESP_Easy_mega-20180104_normal_ESP8266_4096.bin
to nazwa pliku, który chcemy wgrać. ↩ - Na przykład takiej z telefonu. ↩
Komentarze: 18
Cześć Błażej!
Przede wszystkim – wielkie dzięki za artykuł. Kawał dobrej roboty! Wszystko przedstawione w taki sposób, że nawet osoba która nie miała w życiu do czynienia z tego typu sprawami (czytaj: ja) jest w stanie zrozumieć prawie wszystko.
W tym roku planuję zacząć powoli tworzenie własnej instalacji inteligentnego domu w oparciu o różne moduły DIY – w tym myślę właśnie o czujnikach smogu + temperatury (jeden wewnątrz i jeden na zewnętrz).
Chciałbym, aby docelowo “mózgiem” mojego smarthome był Raspberry Pi lub NAS od Synology (który obecnie trochę się nudzi), na którym działałby Domoticz lub Home Asistant. Jeszcze nie wiem tylko na 100% czy wybiorę komunikację opartą o WiFi, czy Z-Wave.
Mam kilka pytań do artykułu – jakbyś miał chwilę to odpowiedz proszę :-)
ESP8266. Dlaczego “najlepiej WeMos D1 lub NodeMcu V3”? Czym polecane przez Ciebie wersje różnią się od innych dostępnych na rynku? Pytam, bo widzę, że jest cała masa ESP8266 i nie za bardzo wiem na którą wersję się zdecydować. A chciałbym robić wszystko przyszłościowo (choćby miało być trochę drożej).
Czy masz może jakiś schemat podłączenia wszystkich pinów w swoim czujniku ze zdjęcia (ESP8266 + PMS7003 + BME280)?
Czy próbowałeś, lub zamierzasz zrobić z tego czujnik zewnętrzny? Co będzie potrzebne (pucha + wentylator?)?
Jak w najprostszy sposób wysyłać dane z tych czujników do Domoticz lub Home Asistant?
Jeszcze raz: Dzięki za świetny artykuł! :-)
Hej, WeMos D1 czy NodeMcu V3 to ESP8266 z dodatkami. Samo “gołe” ESP8266 kosztuje z $1, ale trzeba przylutować do niego piny lub kable. Zasila się je z 3.3V. W przypadku NodeMcu czy WeMosa mamy to “gołe” ESP8266 wlutowane na płytkę, która już ma wyprowadzone piny, można ją zasilać i programować przez micro USB i ma nawet przycisk do resetowania i flashowania ESP8266. Nie trzeba w tym celu łączyć kablami pinów. Polecam je płytki, bo są wygodniejsze od “gołego” ESP8266 a i tak są bardzo tanie.
Do podłączenia wystarczą same kabelki. Nie trzeba nawet rezystorów nigdzie, bo BME280 można zasilać z 3.3V lub z 5V. PMS’y zasila się z 5V. W obu przypadkach mamy do podłączenia po 4 kable. 2 do zasilania i 2 do przesyłania danych. Możemy je podłączyć do dowolnych ponów D1, D2 itd. Są one opisane na WeMos D1 czy NodeMcu. Później w oprogramowaniu wybieramy, co mamy podłączone do którego pinu.
Jeśli chodzi o komunikację z Domoticzem czy Home Asistant, to wspomniany w tekście ESP Easy, wspiera oba rozwiązania. Wystarczy podać adres IP Raspberry Pi i gotowe. Dane będą wysyłane automatycznie. Możemy nawet wysyłać dane z jednego ESP8266 do kilku miejsc. Nie ma z tym najmniejszego problemu.
Dzięki za wyczerpujące odpowiedzi. Zakupy w Chinach zrobione. Z niecierpliwością czekam na dalsze artykuły z tej tematyki :-)
Hej Błażej!
Powoli kończę “walkę” z moim czujnikiem i mam pytanie. W jaki dokładnie sposób podłączyłeś piny i wybrałeś urządzenie w ESP Easy?
Ja na początku w ogóle nie miałem PMS7003 do wybrania na liście. Po tym jak wgrałem wersję “test” oprogramowania (zamiast “normal” z Twojego artykułu), pojawiło się na liście urządzenie “Dust – PMSx003”, ale mimo kilku prób, wszystkie wartości są ciągle zerowe. Podpowiesz, jak to jest ustawione i podłączone u Ciebie?
Z tego o wiem ESP Easy pozwala wysylac wyniki do wielu miejsc ale tylko 1go brokera MQTT. Znalazles moze na to obejcie?
Świetny artykuł !! A jakaś kontynuacja smart dom krok po kroku.
Jeszcze raz dzięki. Osobiście podejmę się zrobienia urządzenia
Na pewno napiszę coś o Domoticzu i Home Asistant oraz wizualizacji zebranych danych przy użyciu Grafany. Wszystkie te narzędzia są darmowe i pozwalają na monitorowanie, zdalną kontrolę, obsługę i wizualizację danych z różnych czujników.
Pytanie. Jak jest maintenance takiego czujnika. Tzn czy trzeba go jakoś okresowo oczyszczać? Jak? W jakich odstępach czasu? Czy wymaga on jakiejś kalibracji? Dzięki za świetny artykuł!
Mierniki pyłu PMS mają żywotność 3 lat. To okres przy ciągłej pracy, więc nie powinny wymagać żadnej ingerencji, ale przy poziomie naszych zanieczyszczeń najprawdopodobniej przydałoby się po zimie dmuchnąć w nie sprężonym powietrzem(oczywiście po wcześniejszym odłączeniu od ESP8266).
Mierniki są skalibrowane i podają od razu 3 wartości: PM1, PM2.5 i PM10.
Jeśli ktoś chce się bardziej pobawić z zebranymi danymi to warto uśredniać sobie wyniki kilku pomiarów i odrzucać skrajne. Polecam robienie 10 pomiarów w i odrzucanie dwóch skrajnych, a następnie wyciąganie średniej z pozostałych ośmiu.
Myśle ze ESP32 będzie lepszym rozwiązaniem.
Super wpis. Dzięki Błażej.
Możesz podesłać linki do polskich sklepów ??
W artykule jest nieścisłość. Podana informacja z pierwszego akapitu i piątego wiersza ” Polsce z niskiej emisji i spalin samochodowych. W przypadku niskiej emisji, zanieczyszczenia są szczególnie odczuwalne w zimę, gdy ludzie ogrzewają swoje domy paliwem słabej jakości.” – jest nieścisła.
W polce rzeczywiście najwięcej zanieczyszczeń powietrza pochodzi z niskiej emisji, lecz jest to emisja nie z samochodów a z przydomowych kotłów 70%. Samochody to jakieś 15% zanieczyszczeń w Polsce.
Oprócz wymienionych w artykule źródeł informacji o zanieczyszczeniach powietrza, to w szeroko pojętej sieci internetowej dostępne są witryny na których umieszczana jest informacja o zanieczyszczeniu powietrza. Informacje tam podawane na podstawie pochodzą z pomiarów absorbcji widma promieniowania ziemi . Są to pomiary satelitarne, oparte o analizę spektograficzna w poszczególnych kanałach- podobnie jak w meteorologii. Pomiary są bardzo dokładne i w zasadzie online. Można w wersji komercyjnej wykupić jeszcze bardziej szczegółowe dane.
Oczywiście ta metoda nie pokaże zanieczyszczeń powietrza w domu lub innym pomieszczeniu. Natomiast za oknem już tak. Moim zdaniem naziemne stacje pomiaru zanieczyszczeń mają jedynie znaczenie weryfikujące pomiary spektograficzne w poszczególnych kanałach.
gdzie mozna zobaczyc pomiary satelitarne absorpcji widma promieniowania?
W artykule jest nieścisłość. Podana informacja z pierwszego akapitu i
piątego wiersza ” Polsce z niskiej emisji i spalin samochodowych. W
przypadku niskiej emisji, zanieczyszczenia są szczególnie odczuwalne w
zimę, gdy ludzie ogrzewają swoje domy paliwem słabej jakości.” – jest
nieścisła.
W polce rzeczywiście najwięcej zanieczyszczeń powietrza pochodzi z
niskiej emisji, lecz jest to emisja nie z samochodów, a z przydomowych
kotłów 70%. Samochody to jakieś 15% zanieczyszczeń w Polsce.
Oprócz wymienionych w artykule źródeł informacji o zanieczyszczeniach
powietrza, to w szeroko pojętej sieci internetowej dostępne są witryny,
na których umieszczana jest informacja o zanieczyszczeniu powietrza.
Informacje tam podawane pochodzą z pomiarów absorbcji
widma promieniowania ziemi. Są to pomiary satelitarne, oparte o
analizę spektograficzną w poszczególnych kanałach- podobnie jak w
meteorologii. Pomiary są bardzo dokładne i w zasadzie online. Można w
wersji komercyjnej wykupić jeszcze bardziej szczegółowe dane.
Oczywiście ta metoda nie pokaże zanieczyszczeń powietrza w domu lub
innym pomieszczeniu. Za oknem już tak. Moim zdaniem naziemne
stacje pomiaru zanieczyszczeń mają jedynie znaczenie weryfikujące
pomiary spektograficzne w poszczególnych kanałach.
A gdzie precyzja takich czujników ? Co jeśli jest gęsta mgła , jak ona wpływa na pomiar ?
Większość artykułu skupia się jak przesłać dane , czym , gdzie jak zwizualizować. Wszystko pięknie , tylko co się wizualizuje ? Same niedokładne dane. Bo chyba nie sądzicie , że czujniczek za stówkę będzie pokazywał wartości takie jak czujnik w cenie samochodu , a używany w stacjach IMiGW ?
Pięknie zwizualizowany błędny pomiar. Chyba , że to bez znaczenia co się mierzy. Ważne żeby coś robić. 😂
Ten czujnik to to samo co ładują w Airly czy też w LookO2. Przy dużej wilgotności i niskiej temperaturze może zawyżać wyniki. Dlatego w stacjach IMGW powietrze jest zawsze podgrzewane do 20 stopni celsjusza i odsysana z nich para wodna. Nie ma cudów, żeby zrobić dokładny pomiar ale przynajmniej mniej wiecej wiesz czy sąsiad nie pali kaloszami w piecu.
Te same czujniki w Chinach kosztują 50zł, sprowadzone do Polski drożeją do 100-150zł. A obudowane i oprogramowane, w gotowym urządzeniu – ponad 400zł.
A oczywiście czujniki stosowane w stacjach IMiGW to zupełnie inna bajka. Tamte czujniki działają na innej zasadzie i podają dokładny wynik raz na godzinę. Te tanie czujniki laserowe, dają wynik przybliżony. Tak naprawdę mierzą nie masę pyłów zawieszonych (mikro g/ m3) tylko ilość i wielkość cząsteczek pyłu. Następnie stosują przybliżoną masę pojedynczej cząsteczki pyłu i mnożą razy liczbę cząsteczek. Siłą rzeczy, przy różnych rodzajach pyłu, wyniki mogą być różne. Ale coś za coś – mamy za to pomiar ciągły, urządzenie jest niewielkich rozmiarów i nie kosztuje dużo.