Blog (30)
Komentarze (1.1k)
Recenzje (0)

Pomiar pyłu zawieszonego czujnikiem PPD42

@KaworuPomiar pyłu zawieszonego czujnikiem PPD4203.03.2016 19:45

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. ;)

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.