Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Pomiar pyłu zawieszonego czujnikiem PPD42

Aerozole atmosferyczne, czy jak ktoś woli – głównie pył zawieszony, to małe coś, które unosi się w powietrzu. Może być ciekłe, może być stałe, ale na ogół nie jest to dobroczynna zawiesina soli morskiej, a raczej pył zawieszony oznaczony jako PM10/PM2,5. PM rozwija się jako Particulate Matter, i oznacza odpowiednio wszystko wiszące w powietrzu rozmiaru <10 um i <2,5 um. Może powodować choroby takie jak astma, rak płuc, choroby układu krążenia, różne choroby układu oddechowego, przedwczesne porody, uszkodzenia płodu i w końcu śmierć (przedwczesną oczywiście, bo śmierć jako taką to powoduje życie).
Są oczywiście dostępne pomiary ze stacji pogodowych rozmieszczonych w rożnych miejscach miast (albo i nie), dzięki którym wiemy czy warto zabrać maskę przeciwpyłową, albo nawet lepiej – wcale nie ruszać się z domu. Ale nawet takie stacje mają niską geograficzną rozdzielczość wyników, choć są dokładne. Bo jak ma się sytuacja kogoś kto mieszka przy ruchliwej drodze, do pomiaru stacji umieszczonej w samym środku spokojnego osiedla? To może by sobie wystawić takie urządzenie za okno...
Czujniki mierzące dokładną liczbę zawieszonych w powietrzu cząsteczek pyłu są dokładne acz drogie.

Wspomniany w tytule PPD42 mierzy, właściwie nie tyle ich liczbę, co raczej przepływ masy w czasie. Idealny nie jest, szumi jak cholera, ma dziwne wyjście PWM, ale z grubsza działa, przynajmniej wystarczająco do typowo pozaokiennych zastosowań. Do tego jego koszt to całe 60zł z przesyłką od chińczyków, a jak się postarać to nawet mniej.
Tak że kolejny element do nadchodzącej nowej wersji mojej zabawki. A że, z racji na zastosowane zasilanie i rodzaj wyjścia, nijak nie daje się podłączyć do elektroniki bezpośrednio, potrzebny będzie konwerter.

Na początek prostsza sprawa, bo zasilanie. PPD42 wymaga 5V napięcia, cała elektronika pracuje na 3v3. Problem, wbrew ewentualnym pozorom, prosty do rozwiązania dzięki sprytnym konwerterom napięcia sprzedawanym przez Chińczyków, a używanych do podbicia napięcia z pojedynczego ogniwa akumulatora do wartości potrzebnych dla urządzeń USB. Koszt takiej zabawki to cale 0,5 USD wraz z przesyłką. Pozostaje tylko zdemontować złącze USB (polecam hot-air) i mamy gotowe kompaktowe urządzenie, które spełni swoje zadanie. Pozostaje tylko przylutować trzy przewody (masa, in, 5V) i obciągnąć koszulką termokurczliwą, co by się nie dotknęło do jakiejś innej okolicznej rzeczy.

PPD42 działa na zasadzie optycznego detektora rzeczy w powietrzu, które odbijają światło podczerwone. Z jednej strony mamy diodę LED, robiącą wiadomo co, z drugiej detektor wraz z układem skupiającym światło. Na dole jest 1W rezystor robiący za grzałkę, która powoduje mały przepływ tegoż powietrza przed sensorem.
Na tej podstawie określamy ile pyłu jest w przemieszczającym się przed soczewką powietrzu podgrzanym przez rezystor. Ten sygnał wędruje na wzmacniacz, a potem na wyjście.
Rezystor niby można wyciąć zastępując go małym wentylatorem w okolicy modułu, ale zostawimy rezystor, sumarycznie i tak daje mniejsze zużycie energii niż wentylator.

Wyjście, a właściwie dwa wyjścia w "standardzie" PWM. I wszystko byłoby ok, gdyby to był jakiś typowy PWM z okresem powiedzmy 1kHz, mierzalne prosto i fajnie. Ale nie, mamy do czynienia z sygnałem, który może wystąpić jakąś liczbę razy w okresie 30 s, trzeba zmierzyć ten okres i na jego podstawie wysnuć wniosek, ile czasu w procentach zajmuje on w stosunku do czasu pomiaru (30 s). Do tego szumi to jak cholera.

Jako konwerter interfejsów posłuży ATmega328p. Tak, jest to stanowczo za duży MCU jak na to zadanie, ale że jest popularny to jest szeroko dostępny, tani i ma kilka przewag nad takim ATtinyX5. Dedykowaną sekcję bootloadera, w której rezyduje kod pozwalający na programowanie głównego kodu za pomocą I2C. A że bootloader stacji meteo posiada kod, który może programować urządzenia na I2C i to jeszcze na podstawie danych odbieranych z eth... Same zalety. Firmware we wszystkich programowalnych układach stacji (poza bootloaderami), daje się wymieniać przez Ethernet, dzięki czemu aktualizację można spokojnie zrobić nie ruszając się na balkon, tam w końcu może być -10 stopni, a obudowę trzeba rozkręcić, na co trzeba czasu. Poza tym w przeciwieństwie do takiej mega8, ma 400kHz I2C.

Płytka poza samym układem zawiera konwerter poziomów logicznych 3v3 <-> 5 V i kondensatory dla stabilności wszystkiego. Podejrzewam, że gdyby się uprzeć, to konwerter napięcia zasilania też by na niej, od spodniej strony, spokojnie się zmieścił. Ale jeśli są gotowe, i to jeszcze w takich cenach, wygodniej mi użyć zewnętrznego konwertera.

Software bazuje na kodzie, który napisali ludzie z DustDuino. Ten kod był napisany na Arduino, którego rzecz jasna tutaj nie ma (fuj), dlatego wymagał adaptacji kilku rzeczy (jak zastąpienie digitalRead()) i implementacja funkcji millis() i micros(), podających odpowiednio liczbę milisekund i mikrosekund od startu systemu.
Pomiar dokonywany jest na podstawie długości impulsów z ostatnich 30s (bo tak mówi datasheet), mnożony finalnie razy 10k (bo zmienne przecinki są fe), po czym następuje uśrednienie z ostatnich dwudziestu czterech pomiarów, czyli na końcu mamy średnią z dwunastu minut. Dzięki czemu soft stacji nie musi się bawić w uśrednianie. Jeżeliby to kogoś fascynowało, to cały kod interfejsu sensora dostępny jest na GitHubie. Jak zawsze, cudowny nie jest, ale działa. ;)

Pozostaje jeszcze kwestia obudowy i finalnej wersji elektroniki. Bo oczywiście wymyśliłem sobie, aby 8bit ATmegę64/128 zastąpić przez 32bit STM32F103 i nieco przebudować konstrukcję płytek.

Ale że komponenty do nich jeszcze nie przyszły (chwilowo brak programatora i samych MCU), to trzeba dopracować peryferia, jak oto ten czujnik. ;)

 

sprzęt hobby inne

Komentarze

0 nowych
dthlfwp   7 #1 03.03.2016 20:45

Napisz coś więcej o jakości tego PPD42. Nie usyfi, poobkleja się w środku syfem z powietrza w mieście po jakimś czasie, tak że będzie bezużyteczny?
Zrobiłbym sobie jakiś miernik jakości powietrza do samochodu, może PPD42 by się przydało, zaciekawił mnie ten przetwornik.
A M3 to chyba przesada do takiej aplikacji :)

Autor edytował komentarz.
Kaworu   12 #2 03.03.2016 20:54

@dthlfwp: Pojęcia nie mam, nie miałem okazji przetestować w warunkach polowych. Ale ma takie fajne otwory (które przy normalnej pracy powinny być zakryte), jakby trzeba było go wyczyścić, to dostęp do soczewek i LEDa jest dość prosty. No tyle, że szumny jest trochę, więc parę pomiarów trzeba uśrednić.
A M328, no spora, kod aktualnie to jakieś 5k+1k/700B RAM, także w M8 by się wcisnął, ale no... akurat takie mam pod ręką, to co się będę. Chyba, że by kiedyś dać M168. ;)

cyryllo   16 #3 03.03.2016 21:19

Ostatnio oprogramowywałem czujnik https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN0177
Na szczęście z gotowa płytka konwertera logicznego. Odczyty są na prawdę dobre i w miarę da się tym pracować z arduino.
Zastanawiałem się nad tym czujnikiem co przedstawiłeś ale może do kolejnych stacji się wykorzysta (poczekam na dalsze części). Kwestia stabilności odczytu ;) Ale myślę, że na przyszłość wykorzystam np ten http://www.jarzebski.pl/arduino/czujniki-i-sensory/czujnik-pylu-gp2y1010au0f.html
Ostatnio jakoś tak chaotycznie piszesz ;)

pomarancza3000   4 #4 03.03.2016 21:27

bardzo ciekawy wpis!

Kaworu   12 #5 03.03.2016 21:31

@cyryllo: Hm, hm, GP2Y1010AU0F wydaje się o tyle ciekawy, że ma analogowe wyjście i najwyraźniej może być zasilany z 3v3.Ale konstrukcyjnie wygląda bardzo podobnie do PPD42, no tyle, ze kosztuje 1/3 tego. A SEN0177 mi w obudowę nie wejdzie, bo ma ponad 60mm szerokości. ;(
No ale skończym resztę i zobaczymy co na zewnątrz powie PPD42. ;)

Kaworu   12 #6 03.03.2016 21:32

@pomarancza3000: A podziękował. ;)

cyryllo   16 #7 03.03.2016 22:11

@Kaworu: Cena jest spora ale jest naprawdę stabilny. Poczekamy na twoja konstrukcję bo wiadomo że lepiej mieć coś tańszego i tak samo działającego ;)

Kaworu   12 #8 03.03.2016 22:15

@cyryllo: Ja nie sądzę, aby on był jakoś szczególnie dokładny, ale do tego do czego go potrzebuje "łolaboga, mamy smoga", to powinien być ok. :D

  #9 03.03.2016 22:49

Mozesz zrobic codzienne testy od momentu rozpylania tego aluminiowego syfu z samolotow? Jaka czulosc jest tego urzadzenia? Wylapie nanoczasteczki?

cyryllo   16 #10 03.03.2016 23:08

@Kaworu: u mnie w nocy maksymalnie było jakieś 110 zapewne z rafinerii coś wypuścili ;) w kraq pewnie gorzej ;)

GioWDS   13 #11 04.03.2016 00:02

@Kaworu sam te płytki trawiłeś? (chodzi o zdjęcie 9/10)

stasinek   10 #12 04.03.2016 05:31

@GioWDS: W warunkach domowych nie ma szans ;)
Na wytrawienie jest (fotolitograifia positiv20) lub "fotopolimer"(negatywowa), na cynowanie we wrzątku jest szansa(stop Lichtenberga), na soldermaskę folię światłoczułą lub farbę też http://allegro.pl/profesjonalna-soldermaska-fotomaska-zielona-200g-i6020380060.html lub ale nie wszystko, nie tak ładnie tj. najważniejsze - bez szans na metalizacje otworów.
Wiecej czasu na projektowanie.

Detektor dla alergików
Ciekawi mnie efekt działania czujnika w pomieszczeniu.
Czy jest w stanie zmierzyć np. zarodniki pleśni, farbę lateksową i pierze, na które mam straszne uczulenie.. czuje od razu a kilka godzin i zdycham na "syndrom wiecznego zmęczenia.

http://filtertech.com.pl/media/artykuly/rozmiary%20czastek%20roznych%20substancj...

Autor edytował komentarz.
GBM MODERATOR BLOGA  19 #13 04.03.2016 09:12

Ostatnio właśnie zastanawiam się nad kupnem czujników dymu, gazu itd. i pożenieniu tego z Raspberry :)

W sumie na początek chyba wystarczą np. te: http://botland.com.pl/55-czujniki-gazu?

Kaworu   12 #14 04.03.2016 09:21

@GBM: Pewnei wystarczy, mam jeden z tych MQ (CO), ale nie miałem okazji przetestować. *podobno* ich trwałość to jakieś 2 lata. Ale tego tez nie miałem jak sprawdzić. :D

@GioWDS: Jak @stasinek zaobserwował, one są zamówione w firmie co robi takie rzeczy, nie ma szans zrobić metalizacji na domowo przede wszystkim. ;)

c@cyryllogrzebiąc w internetach, znalazłem jeszcze jeden laserowy czujnik, ino tańszy (<40$), PMS3003, może się kiedyś przyda. ;)

Autor edytował komentarz.
Maniek 77   4 #15 04.03.2016 09:48

@Kaworu Muszę pochwalić. Już myślałem, że ten serwis jest stracony i nie przeczytam niczego ciekawego, a tu co wpis to zaskoczenie :) kolega wydatnie podnosi jakość. Sukcesów, pozdrawiam:)

GBM MODERATOR BLOGA  19 #16 04.03.2016 09:48

@Kaworu: No ja na razie kupiłem dwa czujniki ruchów (te zwykłe, najtańsze PIRy) żeby od czegoś zacząć. Ale pewnie kwestią czasu będzie jak zakupię któryś z czujników gazów :P

Dam znać jakby miał jakieś ciekawe przygody z nimi :D

cyryllo   16 #17 04.03.2016 09:57

@GBM: Czujniki gazu w większości przypadków są analogowe i czasem posiadaja też wyjście cyfrowe na zasadzie ustawienia stanu krytycznego potencjometrem, gdy stan krytyczny zostanie osiągnięty na pinie cyfrowym pokaże się stan wysoki lub niski (w zależności od czujnika). Ja bardziej wolę odczyt analogowy bo wtedy znam wartość obecną ;) Ogólnie na dniach napisze o RPi i analogowych pinach ;)

Kaworu   12 #18 04.03.2016 10:01

@GBM: Te tez mam, użyłem ich parę lat temu do zrobienia automatycznego oświetlenia w kuchni. I one całkiem fajnie działają (chyba, że masz na sobie zimowa kurtkę :D).

@Maniek 77: Zawsze jak mi ktoś tak słodzi to się zastanawiam czy to nie sarkazm jest. ;)

cyryllo   16 #19 04.03.2016 10:04

@Kaworu: PMS3003 jest praktycznie identyczne z zewnątrz jak ten moduł od dfrobot-a ;) Ale fajnie że go znalazłeś

Kaworu   12 #20 04.03.2016 10:11

@cyryllo: Właśnie tak mi to wyglądało, no z tym, ze cena. :D

GBM MODERATOR BLOGA  19 #21 04.03.2016 10:13

@cyryllo: Thx za info. A na wpis to czekam w takim razie :P

@Kaworu Zimową kurtkę? Nie mów mi, że nie wykrywają ruchu wtedy gdy masz zimową kurtkę na sobie? :D

cyryllo   16 #22 04.03.2016 10:19

@Kaworu: i na szybko nie zauważyłem, że ma większy wiatrak ale i tak wygląda dobrze cenowo.

Kaworu   12 #23 04.03.2016 10:19

@GBM: To są pasywne czujniki podczerwieni, znaczy - w zasadzie one nie tyle ruch wykrywają, co ciepło ludzkiego ciała. ;P

GBM MODERATOR BLOGA  19 #24 04.03.2016 10:59

@Kaworu: a, ok :D

W takim razie żywiołaka lodu ni huhu nie wykryję na czas :D

Kaworu   12 #25 04.03.2016 11:12

@GBM: Niestety, z zombie też może być problem. :D

GBM MODERATOR BLOGA  19 #26 04.03.2016 11:13

@Kaworu: Aj.... dobrze, że jednak większość stworów jest ciepła :D

cyryllo   16 #27 04.03.2016 11:34

@Kaworu: To już najlepiej jakiś czujnik przerwań wiązki użyć na zombiaki ;)

irokiee   8 #28 04.03.2016 13:25

czy tylko ja przeczytałem "Pomiar pyłu zawieszonego CZAJNIKIEM PPD42" :P ?