Skocz do zawartości
lukaszd82

Stacja Pogodowa z pomiarem pyłów, temperatury, ciśnienia, wilgotności

Pomocna odpowiedź

Napisano (edytowany)

Opis konstrukcji

Dość modny ostatnio temat, poruszający jakość powietrza, powstał w celu wykonania pomiarów wpływu kominka w domu na zapylenie.
W ten oto sposób powstała stacja pogodowa z prezentacją pomiarów na LCD 2004 z I2C oraz możliwością udostępnienia danych dla Domoticz lub ThingSpeak.

Sercem stacji jest układ ESP8266-12F na adapterze ESP Shild. Całość umieszczono na PCB zaprojektowanym w EAGLE.
Płytka jest zaprojektowana w sposób umożliwiający szybką wymianę poszczególnych elementów. Może być ona wykorzystywana do programowania ESP z wykorzystaniem złącza PROG (po podpięciu się konwerterem USB-UART), jak również w innych projektach wykorzystujących I2C, wejście analogowe ESP, wejścia cyfrowe.

Jako zasilanie wykorzystałem zasilacz 12V 1A, których mam kilkanaście. Dla potrzeb zasilania czujników potrzebujemy zasilania 5V o wydajności prądowej ok 1A. W tym celu wykorzystano przetwornicę impulsową step down - przetwornica DC-DC Mini 360 . Przetwornica, jak i inne elementy jest wymienna (na goldpinach). Takie rozwiązanie wymusiło stosowanie tego samego układu w innych projektach, gdzie miałem dostępne zasilania 24-30VDC).

Projekt spodobał się znajomym, więc płytka została od razu wykonana w kilku egzemplarzach na frezarce mojego wykonania. Wygląd PCB od strony druku można zobaczyć na zdjęciach.

Realizacja pomiarów:
W założeniach miałem mierzyć tylko zawartość pyłów ale w szufladach zalegało jeszcze kilka innych czujników. Stąd też dodatkowe pomiary.
Pyły: PM1; PM2,5; PM10 - czujnik PMS5003
Ciśnienie, temperatura, wilgotność - czujnik BME280
Wskaźnik CO2 - czujnik MQ135

Wyniki prezentowane są na LCD oraz przez WiFI korzystając z oprogramowania EasyEsp.
Istnieje możliwość konfiguracji oprogramowania w celu przesyłania pomiarów do Domoticz lub ThingSpeak.

Oprogramowanie
W założeniach miałem napisać własny soft wykorzystując biblioteki dostępne dla Arduino IDE, ale z braku czasu poszedłem na łatwiznę i wykorzystałem EasyEsp. Soft wgrywamy za pomocą oprogramowania Esp8266Flasher - wykorzystujemy połączenie po USB - UART (złącze PROG na PCB).

Konfiguracja
Proces konfiguracji  jest dokonywany z poziomu strony WWW oprogramowania ESPEasy i jest dość intuicyjny. Wszystkie parametry wpisujemy w zakładkach odpowiedzialnych za obsługę sieci, czujników iitp. Oczywiście proces konfiguracji opisany jest dokładnie na stronie projektu ESPEasy. Dla osób nie obeznanych w tej tematyce zamieszczam plik konfiguracyjny mojego projektu wraz z dokumentacją zdjęciową (Konfiguracja ESP).

Podsumowanie

Na chwilę obecną brak jest obudowy, ale układ powstał jako prototyp i każdy adresat układu ma ją wykonać we własnym zakresie. Sam zrobię to jak skończę inne projekty.

Konstrukcja ma sporo wad:
1. Brak kalibracji czujników.
2. Pomiar MQ135 to tylko wskazanie przesunięte o 400 ppm (~poziom CO2 w atmosferze, nie uwzględniam wpływu temperatury i wilgotności).
3. Brak dzielnika napięcia na A0 (ESP ma pomiar 0-1V, MQ135 może dać do 5 V przy 5000 ppm), jednak zakładam, że nie będę miał stężenia ponad 1000ppm w domu.
Później przetnę ścieżkę na PCB i dam dzielnik na analogu (co niestety zmniejszy dokładność pomiarów) lub zabezpieczę wejście analogowe diodą zenera.
4. Gotowe oprogramowanie z wieloma wadami, w planach zmiana na własny soft i wysyłanie informacji na Cayenne IOT.

Zalety:

1. Prosta modułowa konstrukcja, uniwersalna płytka PCB stosowana przeze mnie w innych projektach.
2. Gotowy soft możliwy do wgrania i konfiguracji dla zupełnych laików.

Jeśli ktoś jest zainteresowany dodatkowymi materiałami, to proszę o kontakt PW.

W załączniku zamieszczam:
1. EAGLE - schemat w EAGLE 9.1.2 wraz z rysunkiem ścieżek.
2. ESP - oprogramowanie w wykorzystanej wersji.
3. ESP8266Flasher - soft do wgrania oprogramowania.

Podczas testów pomiar pyłów miałem na zewnątrz przy mrozach ponad 300 szczytowo i pokrywało się to z lokalną stacją w Połańcu (odchyłka była w granicach 5%). Czujnik PM5003 pracuje u mnie w cyklu 60 sekund pomiary/ 30 minut uśpienie. Żywotność czujnika laserowego to 8000 h. Częstszych pomiarów nie potrzebuję do swoich potrzeb. Czas 60 sekund wystarcza do odpowiedniego wygrzania czujnika i ustabilizowania się pomiarów.
Cała stacja pobiera zaraz po starcie ok. 3 W, a po nagrzaniu czujnika MQ135 pobór energii spada do ok. 1,8 W.

 2.png1.png

3.png 4.png

IMG_20190108_221612.jpg 1.png PCB.png

ESP8266Flasher.zip

EAGLE.zip

ESP.zip

Konfiguracja_ESPEasy.zip

Edytowano przez Treker
Poprawiłem formatowanie.
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@lukaszd82, właśnie zaakceptowałem opis. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 😉  

Udostępnij ten post


Link to post
Share on other sites

Na wstępie gratuluję pracy. Wspomniałeś o frezarce płytek - czy nie chciałbyś także nią się pochwalić?

Dnia 11.01.2019 o 11:25, lukaszd82 napisał:

zakładam, że nie będę miał stężenia ponad 1000ppm w domu

Czy to założenie sprawdziło się? Na zewnątrz w zasadzie stężenie CO2 jest w miarę stałe i raczej nie przekracza 500ppm. Nie mierzyłem co prawda nigdy w korku w dużym mieście, ale mówimy tu o wartości średniej mierzonej na otwartej przestrzeni. Za to u mnie w domu bez problemu leci powyżej 2000ppm podczas odpalenia w kuchni zupy i ziemniaków w osobnym garnku. Znacznie wolniejsze zmiany widać gdy kilka osób przebywa w pokoju powiedzmy 15m2, ale tu też brak wietrzenia (bo smog na zewnątrz) przez kilka godzin podciąga CO2 do okolic 1800-2000ppm. Za to w naprawdę małym pokoju (ok. 7m2) kilka godzin pracy za zamkniętymi drzwiami i szczelnym oknie i zaczyna być jak starej w łodzi podwodnej uciekającej przed ściagaczami: 2000+ bez problemu. Używam czujników E+E na I2C:

https://www.elfadistrelec.pl/pl/modul-czujnika-co2-2000-ppm-interfejs-cyfrowy-e2-elektronik-ee893-02c2/p/11048964

Dnia 11.01.2019 o 11:25, lukaszd82 napisał:

Pomiar MQ135 to tylko wskazanie przesunięte o 400 ppm

Co to znaczy? Czy od wskazania czujnika odejmujesz 400 i dopiero to wyświetlasz? Czy może to czujnik oddaje 0V w punkcie kalibracji 400ppm?

Które z trzech wyników z PM5003 są zgodne z danymi (którymi?) ze stacji? Jak jesteś od niej daleko? Czy robisz jakieś uśredniania/filtrowania tych danych? Po 60s pracy czujnika masz strumień kilkudziesięciu ramek danych. Którą bierzesz pod uwagę? Tylko jedną, losową?

Czy zrobiłeś do tego jakąś obudowę? Jak zamocowałeś czujnik pyłów?  A gdzie umieściłeś pozostałe?

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Obudowy nie wykonałem z braku czasu. Poza tym od razu powstało 4 sztuki bo znajomi chcieli i obudowy we własnym zakresie. 

Pomiar porównywałem ze stacją GIOŚ w Połańcu stojąc tuż przy niej (na czas testów całość zasilałem z aku 3x18650, pomiar wtedy miałem co 10sek, ale stacja GIOŚ daje wyniki w równych godzinach, nie pamiętam już czy co 30 czy 60min). Co do pomiarów pms5003 to czujnik usypiam na 60 min, następnie następuje wybudzenie na 60sek -wg pdf po ok 30-45sek pomiary są wiarygodne. I wykonuję pomiar po tym czasie (właściwie idzie zapytanie po wybudzeniu ale czujnik wtedy nie wysyła info i esp  nie odbiera ramki i drugi po tym czasie już wiarygodny)

Wskazań CO2 nie weryfikowałem jak wysoko pójdą, dlatego kanał ai zabezpieczyłem zenerką na 1.2v (bo taką miałem pod ręką). Poza tym nie znam do końca metodyki działania MQ135 ale on daje wg moich testów 0v przy poziomie ok 400ppm. Dlatego do pomiaru dodałem tą wartość. Nie zrobiłem korekty od temp i wilgotności bo EasyEsp nie obsługuje oficjalnie tego czujnika. (zrobię to w wersi finalnej z własnym softem). Wtedy w razie potrzeby przetnę ścieżkę od AI i zrobię dzielnik. 

No i MQ135 należy teaktować tylko jako wskaźnik, nic więcej...

Edytowano przez lukaszd82
Poprawa błędów.

Udostępnij ten post


Link to post
Share on other sites

@marek1707 sorry za wcinkę, dałeś link do fajnego sklepu ale spójż na to , czujniki położenia, konta i obrotu 🤣 ciekawe jak mierzą te konta...

P.S. dałeś za czujnik CO2 500 netto?😗

Udostępnij ten post


Link to post
Share on other sites

@SOYER

Tak, spolszczone strony niektórych zachodnich sklepów wołają o pomstę do nieba. Tutaj to co prawda (mam nadzieję) literówka, ale czasem długo muszę się zastanawiać co było w oryginale napisane żeby zrozumieć co mi oferują. Pierwszy z brzegu przykład znaleziony w 30 sekund:

https://pl.farnell.com/silicon-labs/si5351a-b04486-gt/clock-generator-w-vcxo-200mhz/dp/2577259?MER=bn_browse_1TP_MostPopular_4

Taaa.. Mamy tu "generator sygnału zegara I2C" co jest oczywistą bzdurą a dalej "bufory fanout w zastosowaniach ekonomicznych". Wiem co to są bufory zwiększające fanout wyjścia, ale te zastosowania ekonomiczne? Na pewno chodzi o pracę w PKO lub co gorsza KNF..

Czujniki mam z jakiegoś dużego projektu, który nie wypalił. Tam cena nie grała roli a z resztą jeśli chcesz mieć prawdziwą zawartość CO2 to jedyna sensowna metoda polega na pomiarze pochłaniania pewnej długości fali na bazie/odcinku pomiarowym a więc odpowiednia dioda IR, filtry optyczne i fotodioda czuła akurat na prążek absorbcyjny tego gazu. To nie są tanie rzeczy, nie każdy czujnik to "Czujnik dźwięków do Arduino, 2.50 PLN". Wersje które mam nie są już produkowane, obecnie promowany jest model EE894, oprócz CO2  mierzący także temperaturę, ciśnienie i wilgotność względną. Nie wiem ile kosztuje.

https://www.epluse.com/en/

Z resztą tamte kupowaliśmy od producenta (mają wersje do 2000, 5000 i 10000ppm) i może ze 200/szt. kosztowały, ELFA zawsze była drogim sklepem.

@lukaszd82

A sprawdzałeś co jest w kolejnych ramkach? Bo rozrzuty są czasem spore i moim zdaniem nie powinieneś opierać się na jednym komplecie danych. Odczekaj tę minutę (choć wg mnie dane stabilizują się już po 6-10 sekundach, zależy od tego jak zaprojektowałeś kanały powietrza) a potem weź ze 4-8 ramek i je uśrednij. Inaczej skazujesz się przyjęcie przypadkowej fluktuacji jako wynik obowiązujący aż przez pół godziny. W przypadku pomieszczeń to nie sprawdzi się w ogóle (włącz odkurzacz, dobrze potrząśnij kocem/pościelą w pokoju albo usmaż jajecznicę lub jakieś placki na tłuszczu - masakra, masz zmianę 10-> 200 w ciągu 3 minut ) a na zewnątrz poważne zmiany napływają i odpływają także z prędkością pojedynczych minut. Ja na moim wykresie mam kilkuminutowe piki od powiedzmy 20-30 do 50-60 gdy zawieje z balkonu palącego (chyba zwykłego papierosa) sąsiada. Jeśli taki wynik pobierzesz i go zatrzymasz to mina może zrzednąć. Na pewno inaczej jest w rozproszonej zabudowie wiejskiej (ale wcale nie wiem czy lepiej, ta górka opon u sąsiada wygląda złowieszczo i ostatnio jakby maleje..) a inaczej w gęstym mieście. Takie szybkie zmiany nie wpływają na poprawnie liczony współczynnik jakości powietrza, ale fajnie jest wiedzieć (i widzieć na wykresie) co tam w trawie.. dymi?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

No to co powiedzieć o stacjach gioś, które mają pomiar co 30min i tam żadnego uśredniania nie ma, pomiar, wysyłanie, uśpienie. Co z tego że tam jest kombajn jak tak to działa. A wiem to, bo nasi pracownicy serwisują ten sprzęt... A filtry wstępne (a takie tam są) co 3 miesiące są totalnie zalepione...

Edytowano przez lukaszd82

Udostępnij ten post


Link to post
Share on other sites

Nie wyciągaj pochopnych wniosków. Ten czujnik stosuje pewną metodę (zliczania optycznego) przez ok. sekundę a stacje GIOŚ robią to inaczej i jeśli robią to zgodnie z obowiązującymi normami (a muszą), to sam pomiar jest "uśrednianiem" bo trwa właśnie te pół godziny czy ile tam trzeba. Jedyną oficjalnie dopuszczoną u nas metodą jest właśnie przepuszczanie powietrza przez filtr a potem badanie zmiany jego ciężaru. To nie jest przypadek, że stacje GIOŚ tak rzadko oddają wyniki - to jest wbudowane w ich sposób pracy. Chiński czujnik przy tym to zabawka a jego pomiary są obarczone dużymi rozrzutami wynikającymi z samej metody pomiaru. Nie możesz tego porównywać do tego co robi duża stacja. To tak jakbyś chciał oceniać pracę przetwornika A/C typu SAR i takiego z podwójnym całkowaniem. Żeby osiągnąć takie samo wygładzanie szybkich zakłóceń jakie ten drugi robi z definicji w pojedynczym pomiarze, musisz uśrednić wiele wyników tego pierwszego. Z resztą co tu dużo gadać, odbierz i zrób sobie wykres i/lub jakaś statystykę tego co otrzymujesz z PM5003 sekunda po sekundzie i pomyśl jak bardzo możesz się pomylić wybierając jako półgodzinny wynik tylko jedną, przypadkową ramkę danych.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

też się zastanawiałem nad wartością tych pomiarów z czynników masowo montowanych w każdym mieście.... 

3 minuty temu, marek1707 napisał:

Z resztą co tu dużo gadać, odbierz i zrób sobie wykres i/lub jakaś statystykę tego co otrzymujesz z PM5003 sekunda po sekundzie i pomyśl jak bardzo możesz się pomylić wybierając jako półgodzinny wynik tylko jedną, przypadkową ramkę danych.

Chyba będę musiał zmienić skecza w moim;-) 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Tylko weź pod uwagę, że korzystam z gotowego softu. Jak sam napiszę całość, to zrobię co zechcę. Niestety EspEasy to ja tylko robię konfiguruję, tylko piny wejściowe i nawet nie wnikałem jaka biblioteka jest podpięta. Jak miałem zrobione bez usypiania to żadnych skoków nie zanotowałem. A wtedy pomiar był co 10sekund. Pierwsze testy robiłem na arduino z biblioteką pmsx003 i też skoków nie było... Wartości nigdy nie zmieniały się gwałtownie o dużą wartość. Może sprawdź czy z tą biblioteką też będziesz miał skoki... No i bez usypiania to czujnik co roku do wymiany bo laser siada...

Poza tym nie uważam tego za mega dokładny pomiar. Ta stacja to dla mnie takie "wskaźniki" dające przybliżone informacje na temat tego,  co się dzieje z powietrzem w miejscu pomiaru, czy wietrzyć w pomieszczeniu ( w zależności czy na zewnątrz zapylenie jest sporo niższe niż wewnątrz) itp.

Edytowano przez lukaszd82

Udostępnij ten post


Link to post
Share on other sites

@lukaszd82

Ależ ja Ci niczego nie zarzucam. Abstrahuję od pochodzenia oprogramowania i tego co można a czego nie można na nim zrobić. Piszę tylko o czujniku z którym mam jakieś doświadczenia i chcę porównać je z Twoimi. Akurat używasz tego samego więc wydała mi się fajna możliwość wymiany doświadczeń. Zrobiłeś kawał roboty. A mówimy tu o szansie poprawienia wyników przez usuwanie szumu, co na pewno poprawiłoby wiarygodność. I tak to popularne pudełeczko jest średnio oceniane przez specjalistów z branży, głównie z powodu de facto słabej rozróżnialności wielkości pyłów. W zasadzie wyniki dla 2.5 wyglądają jak przemnożone przez jakiś (w miarę) stały współczynnik względem tych PM10 i tak samo jeśli chodzi o stosunek 1.0 do 2.5. Ja u siebie widzę bardzo wyraźną korelację między tymi trzema liczbami a przecież nie powinno tak być, bo zapylenie zawsze tak nie wygląda. Inaczej nie trzeba by było odróżniać tylko mierzyć jedną wielkość. Widziałem wyniki badań kilku innych podobnych czujników i wszędzie jest w zasadzie to samo. Metoda z laserem jest słaba. To jedno. A drugie to zawsze powinniśmy dawać sobie szansę poprawienia naszych urządzeń. I tak jako amatorzy jesteśmy skazani na takie chińskie konstrukcje których działanie jest tajemnicze i w zasadzie można tylko wierzyć albo nie producentowi, że w ogóle ma tę komorę do kalibracji pyłem i że przepuszcza przez nią chociaż co któryś czujnik. Tutaj koszt wprowadzenia uśredniania jest żaden więc wydaje się, że to dobry pomysł. Oczywiście pomiar ten i tak jest orientacyjny przez samą jego zasadę - tak samo światło lasera odbijają prawdziwe pyły zawieszone jak i kropelki mgły/wody czy odparowanego tłuszczu a my (ja i Ty) być może różnimy się jedynie oceną dopuszczalnego szumu. U mnie wykresy robią się płynne gdy zaczynam uśredniać z kilku ostatnich minut a na szczęście wciąż widać na nich wydarzenia typu "sąsiad na balkonie". Co minutę (lub dwie - zależy która stacja) odpalam czujnik na 10 sekund, biorę 6-8 ostatnich pomiarów, uśredniam je i go wyłączam. Bez takiej obróbki miałem na wykresach zęby i oczywiście widać było trendy wzrostowe lub opadające i jakiś poziom średni, ale kreślona krzywa była gruba i zaszumiona a moja estetyka cierpiała. Być może u Ciebie jest inaczej, bo inne środowisko, inna partia czujników albo inaczej postrzegasz "skoki". To także dla mnie ciekawe spostrzeżenia.

A jeśli chodzi o zapylenie wewn-zewn, to u mnie w mieszkaniu pracuje na okrągło (w trybie auto) filtr powietrza zwany w handlu oczyszczaczem. Muszę się bardzo postarać by w mieszkaniu zrobiło się naprawdę źle i zawsze jest to wynik jakiejś zdecydowanej akcji typu smażenie. Po wywietrzeniu (szkoda drogich filtrów na usuwanie tego maszyną) i po dojściu do stanu równowagi mam zwykle zapylenie jednocyfrowe. Widzę natomiast wyraźną korelację z tym co na zewnątrz. Gdy tam rośnie - a w Wawie jak jest 30 to już jest dobrze, przy 60 zaczynam się niepokoić i rezygnuję z treningów - to w domu też rośnie. Przy wynikach zewnętrznych 80+ mam w domu okolice 20. Mimo szczelnych okien wentylacja grawitacyjna jednak działa, niestety i zapodaje mi "świeże" powietrze z ulicy.. :(

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Gdy testowałem pms5003 na arduino miałem odczyt ilości pyłów konkretnej wielkości prócz ppm.

Sprawdź u siebie pmsx003.h na github

Tam w przykładach jest opcja z filtracją i bez. Do tego jest też dynamik i coś jeszcze. Spodziewam się, iż w espeasy jest zaszyta ta sama biblioteka i patrząc na wyniki przed wprowadzeniem usypiania, pewnie jest jakaś filtracja. W założeniach miałem wykorzystać tą bibliotekę i napisać własny soft. I pewnie tak się stanie bo chcę dane wysyłać do Cayenne IOT, a EspEasy tego nie obsługuje...

Ewentualnie napisz, z jakiej biblioteki tykorzystasz bo to też będzie dawało jakiś szerszy obraz sytuacji.

Ponożej masz wyniki z 2 czujików, ale to noe moje pomiary. Jednak wynik pyłów dla pmsx003 to wynik działania wspomnianej biblioteki w monitorze portu com.

8fea47928a6745d1c282777b2657ed476001ab59_1_690x330.png

Edytowano przez lukaszd82

Udostępnij ten post


Link to post
Share on other sites
Dnia 12.01.2019 o 12:58, marek1707 napisał:

Na wstępie gratuluję pracy. Wspomniałeś o frezarce płytek - czy nie chciałbyś także nią się pochwalić? 

Frezarka i 4 inne DIY wrzuciłem na forum. Czekają na akceptację. Życzę miłej lektury.

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×