wtorek, 19 marca
Shadow

Czujnik PM 2.5 oraz PM 10 z interfejsem www SDS011

Czujnik smogu pojawiał się na lamach tranzystor.pl już parę razy np. Arduino i Sensora SDS011 czy SDS011 wraz z ESP8266. Czym tak w ogóle jest smog w skrócie jest to zjawisko atmosferyczne, które charakteryzuje się występowaniem niebezpiecznych dla naszego zdrowia pyłów zawieszonych w powietrzu. Smog składa się z pyłów zawieszonych takich jak PM 10 i PM 2,5,  lotnych związków organicznych takich jak np. benzen, benzo(a)piren, ozonu, dwutlenku siarki, tlenków azotu, tlenku węgla itp. Tym razem skorzystam z „klocków” napisanych przez kadamski i udostępnionych na jego Gicie.

czujnik smogu z interfejsem www

Potrzebne komponenty

  • RaspberryPi lub pochodne np NanoPi
  • Czujnik smogu SDS011 wraz z konwerterem UART
  • kata pamięci z zainstalowanym Debianem / Raspberrypi OS

Parametry czujnika smogu SDS011

  • Typ pomiarów: PM10 oraz PM2,5
  • Zakres pomiarów: 0 – 999.9 μg /m³
  • Napięcie pracy: 5V (4.7 – 5.3V)
  • Pobór prądu podczas praca: ~70mA ±10mA
  • Pobór prądu w trybie uśpienie lasera i wentylatora: < 4mA
  • Temperatura pracy: do -10 do +50C (jeszcze trzyma swoją dokładność po za tymi zakresami lubi się „pomylić” bardziej)
  • Wilgotność pracy do 70% należy pamiętać, że kondensacja prawy wodnej fałszuje wyniki
  • Dokładność pomiaru: 70% dla 0.3μm
    98% dla 0.5μm

Na początek dla naszego RaspberryPi pobieramy odpowiedni obraz Raspbian Lite lub full wg uznania i wgrywamy go na karcie. Resztę to już na bank znacie 😉  Następnie logujemy się przez SSH do systemu.

Następnie musimy zainstalować kilka pakietów które będą nam potrzebne w dalszej części:

sudo apt install git-core python-serial python-enum lighttpd

Zanim zaczniemy, musimy wiedzieć, do którego portu szeregowego jest podłączony adapter USB dmesg nam w tym pomaga:

dmesg

dmesg
Odczyt danych na RaspberryPi

Najpierw tworzymy instancję dla czujnika, a następnie odczytujemy go co 1 minut przez 30 sekund. Wartości te można oczywiście dostosować. Pomiędzy interwałami pomiarowymi wprowadzamy czujnik w stan uśpienia, aby wydłużyć jego żywotność (według producenta żywotność to ok. 8000 godzin).

Możemy pobrać skrypt za pomocą tego polecenia:

wget -O /home/pi/aqi.py https://www.tranzystor.pl/pliki/PM2.5-PM10_raspberry/aqi.py

Aby skrypt działał bez błędów, potrzebne są jeszcze dwie małe rzeczy:

sudo chown pi:pi /var/www/html/
echo [] > /var/www/html/aqi.json

Po powyższych poleceniach możesz uruchomić skrypt:

chmod +x aqi.py
./aqi.py

odczyt sds011 ssh raspberrypi

Uruchomianie skryptu automatycznie

Z racji, że jestem leniwy aby nie musieć za każdym razem ręcznie uruchamiać skryptu, możemy pozwolić się z cron,

crontab -e

i na końcu dodaj następujący wiersz:

@reboot cd /home/pi/ && ./aqi.py

Teraz nasz skrypt będzie się uruchamiać automatycznie przy każdym starcie systemu.

Wizualizacja danych na stronie HTML i AQI

Wcześniej już zainstalowaliśmy już bardzo lekki serwer WWW lighttpd . Przydało by się zapisać nasze pliki HTML, Javascript i CSS w katalogu /var/www/html/ , abyśmy mogli w łatwy sposób mogli uzyskać dostęp do danych z innego komputera. Aby pobrać potrzebne pliki musimy wykonać 4 poniższe polecenia:

wget -O /var/www/html/index.html https://www.tranzystor.pl/pliki/PM2.5-PM10_raspberry/html/index.html
wget -O /var/www/html/aqi.js https://www.tranzystor.pl/pliki/PM2.5-PM10_raspberry/html/aqi.js
wget -O /var/www/html/style.css https://www.tranzystor.pl/pliki/PM2.5-PM10_raspberry/html/style.css
wget -O /var/www/html/history.html https://www.tranzystor.pl/pliki/PM2.5-PM10_raspberry/html/history.html

Teraz wystarczy otworzyć adres z którym się łączymy z naszym RaspberryPi w przeglądarce i spojrzeć na aktualne wartości cząstek stałych, np. http://10.10.10.26

web aiq pm2.5 i pm10

May też dostęp do historii pomiarów:

web aiq pm2.5 i pm10 historia

5/5 - (2 ocena/y)

2 Comments

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.