Laserowy czujnik SDS011 firmy Nova Fitness dostępny jest na portalach aukcyjnych w cenie ~20$ SDS011. Urządzenie posiada wlot powietrza, oraz turbinę zasysającą powietrze. Zasilanie 5V, interfejs komunikacyjny UART pracuje z poziomem napięcia 3.3V. Informacje o pomiarach ilości pyłu PM2.5 i PM10 dostępne są jako dane napływające interfejsem UART, lub jako zmienne wypełnienie przebiegów prostokątnych dostępnych na złączu. Poprzez interfejs UART możemy wprowadzić urządzenie w stan uśpienia, a także skonfigurować tryby pracy, np. cykliczne wprowadzanie w stan uśpienia i wybudzanie celem wykonania pomiaru. Informacje o czujniku znajdziecie na stronie producenta: SDS011. Wraz z urządzeniem został dostarczony konwerter USB<->UART, jednak ze względu na binarny format danych wyjściowych do przetestowania modułu wykorzystałem Arduino UNO.
Żywotność czujnika jest ograniczona do 8000 godzin, dlatego warto wykonywać pomiary cyklicznie np. co 15min uruchamiając urządzenie na 30s. Podczas pracy czujnik pobiera ~65mA, natomiast w trybie uśpienia ~2mA. Turbina zasysająca powietrze wytwarza cichy szum podczas pracy.
W zamkniętym pomieszczeniu wartości wskazań oscylowały w okolicach ~10-20ug/m3. Po zatkaniu wlotu powietrza wskazywane wartości spadły do pojedynczych jednostek. Otwarcie okna spowodowało wzrost wartości do kilkudziesięciu. Udałem się także w okolice czujnika airly otrzymując zbliżone wskazania (różne o +-10). Nie mam innej możliwości sprawdzenia urządzenia, jednak wydaje się ono pracować prawidłowo.
W środowisku Arduino znajdziecie wiele bibliotek ułatwiających uruchomienie czujnika, wystarczy wyszukać frazę SDS011, np. https://github.com/lewapek/sds-dust-sensors-arduino-library Protokół komunikacji jest dość dobrze opisany w specyfikacji na stronie producenta, dlatego do pierwszych prób, można wykorzystać prowizoryczny kod.
Poniżej testowy kod, po wgraniu go do Arduino UNO podłączamy do RX/TX odpowiednie wyprowadzenia modułu. W konsoli szeregowej zobaczymy wartości stężenia pyłu PM2.5 i PM10 w powietrzu zasysanym przez czujnik.
Ramki danych wysyłane przez czujnik są opisane w dokumentacji, zawierają nagłówek, numer komendy, ciąg danych, sumę kontrolną liczoną z pól danych (jest to zwykła suma liczona z przepełnieniami na wartości 8 bitów bez znaku), oraz bajt końcowy.
Z poziomu komend UART możemy zatrzymać pracę lasera i turbiny. Taka praca urządzenia jest wskazana ze względu na jego ograniczoną żywotność. Przykładowy kod poniżej uruchamia czujnik na 30s i zatrzymuje pracę urządzenia na kolejne 30s. W docelowym urządzeniu czasy przerw powinny być dłuższe, np. 15min.
Czujnik nie należy do najtańszych ale wydaje się działać prawidłowo.
Do czego czujnik jest mi potrzebny?
Jest to urządzenie niejako na zamówienie.
Otóż nie mam w okolicy dostępnego "czujnika smogu" prezentującego dane online, natomiast temat smogu wywołuje liczne codzienne dyskusje. Rozpoczynamy okres smogowy i większość dyskusji opiera się o odczucia każdego z uczestników rozmowy. Jedni "czują smog" bardziej, inni sugerują się tymi wypowiedziami i za chwilę też czują smog, lub nawet czują się źle z powodu złej jakości powietrza.
Ja słabo wykrywam smog, no chyba że faktycznie powietrze jest zadymione, jako inżynier wolę opierać się o wskazania czujnika o powtarzalnych parametrach.
Po uruchomieniu czujnika, dyskusje smogowe będą przynajmniej miały rzetelne źródło
Czy oceniacie jakość powietrza swoimi odczuciami czy na podstawie wskazań czujników?

Żywotność czujnika jest ograniczona do 8000 godzin, dlatego warto wykonywać pomiary cyklicznie np. co 15min uruchamiając urządzenie na 30s. Podczas pracy czujnik pobiera ~65mA, natomiast w trybie uśpienia ~2mA. Turbina zasysająca powietrze wytwarza cichy szum podczas pracy.
W zamkniętym pomieszczeniu wartości wskazań oscylowały w okolicach ~10-20ug/m3. Po zatkaniu wlotu powietrza wskazywane wartości spadły do pojedynczych jednostek. Otwarcie okna spowodowało wzrost wartości do kilkudziesięciu. Udałem się także w okolice czujnika airly otrzymując zbliżone wskazania (różne o +-10). Nie mam innej możliwości sprawdzenia urządzenia, jednak wydaje się ono pracować prawidłowo.
W środowisku Arduino znajdziecie wiele bibliotek ułatwiających uruchomienie czujnika, wystarczy wyszukać frazę SDS011, np. https://github.com/lewapek/sds-dust-sensors-arduino-library Protokół komunikacji jest dość dobrze opisany w specyfikacji na stronie producenta, dlatego do pierwszych prób, można wykorzystać prowizoryczny kod.
Poniżej testowy kod, po wgraniu go do Arduino UNO podłączamy do RX/TX odpowiednie wyprowadzenia modułu. W konsoli szeregowej zobaczymy wartości stężenia pyłu PM2.5 i PM10 w powietrzu zasysanym przez czujnik.
Kod: C / C++
Ramki danych wysyłane przez czujnik są opisane w dokumentacji, zawierają nagłówek, numer komendy, ciąg danych, sumę kontrolną liczoną z pól danych (jest to zwykła suma liczona z przepełnieniami na wartości 8 bitów bez znaku), oraz bajt końcowy.
Z poziomu komend UART możemy zatrzymać pracę lasera i turbiny. Taka praca urządzenia jest wskazana ze względu na jego ograniczoną żywotność. Przykładowy kod poniżej uruchamia czujnik na 30s i zatrzymuje pracę urządzenia na kolejne 30s. W docelowym urządzeniu czasy przerw powinny być dłuższe, np. 15min.
Kod: C / C++
Czujnik nie należy do najtańszych ale wydaje się działać prawidłowo.
Do czego czujnik jest mi potrzebny?
Jest to urządzenie niejako na zamówienie.
Otóż nie mam w okolicy dostępnego "czujnika smogu" prezentującego dane online, natomiast temat smogu wywołuje liczne codzienne dyskusje. Rozpoczynamy okres smogowy i większość dyskusji opiera się o odczucia każdego z uczestników rozmowy. Jedni "czują smog" bardziej, inni sugerują się tymi wypowiedziami i za chwilę też czują smog, lub nawet czują się źle z powodu złej jakości powietrza.
Ja słabo wykrywam smog, no chyba że faktycznie powietrze jest zadymione, jako inżynier wolę opierać się o wskazania czujnika o powtarzalnych parametrach.
Po uruchomieniu czujnika, dyskusje smogowe będą przynajmniej miały rzetelne źródło
Czy oceniacie jakość powietrza swoimi odczuciami czy na podstawie wskazań czujników?
Fajne? Ranking DIY
