czwartek, 28 marca
Shadow

Czujnik smogu SDS011 wraz z ESP8266

Temat smogu nie jest czymś nowym, dotyka on obecnie praktycznie każdego z nas. Już ładnych parę lat temu przymierałem się do tego jednak z braku czasu poszło na bok. Jednak w pewnym momencie była chwila wolna i zostało to poskładane do kupy. Obecnie opisywany właśnie czujnik SDS011 pracuje u mnie od mniej więcej Maja 2019r.

Co do samego czujnika SDS011 należy pamiętać, że jest to czujnik smogu laserowy i ma ograniczoną żywotność. Zarówno wentylator znajdujący się w czujniku jak dioda nie powinna pracować w sposób ciągły, no chyba, że chcemy go częściej wymieniać. Sam SDS011 na szczęście obsługuje tryb uśpienia więc możemy programowo wyłączać i uruchamiać jedynie na czas pomiaru co znacząco wydłuży jego żywotność.

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

SDS011

Lista komponentów które były mi potrzebne, aby cały czujnik działał prawidłowo. Dane odbierać będzie już działający Domoticz.

  • czujnik smogu SDS011
  • moduł ESP8266
  • opcjonalnie płytka PCB np. Nettigo Air Monitor można nabyć w Nettigo
  • obudowa Z59JpH
  • z 20 cm gumowej rurki

Zaraz ktoś się doczepi, że mogłem to połączyć bezpośrednio przewodami, jednak PCB idealnie pasował do mojej obudowy i posiada ona od razu złącza do innych czujników. Wygląd PCB poniżej.

Nettigo Air Monitor PCB
Nettigo Air Monitor PCB

Co do oprogramowania które będzie nam potrzebne to:
– ESP8266 z zainstalowanym ESP Easy mega
Domoticz do wirtualizacji naszych danych

W momencie gdy mamy już działające ESP wchodzimy na panel www w celu konfiguracji naszego modułu do gadania z SDS011.

W tym celu na pierwszy ogień przechodzimy do zakładki: Tools -> Advanced po czym włączamy opcje „Rules”

Następnie przechodzimy do zakładki „Devices” i dodajemy nasz czujnik. Z listy dostępnych urządzeń wybieramy „Dust – SDS011/018/198” GPIO ustawiam na te do których mamy podłączony czujnik. W przypadku korzystania z gotowej płytki Air Monitor ustawiamy

GPIO ← TX:  GPIO-5
GPIO → RX(optional): GPIO-4

Następnie przechodzimy do „Rules” i dodajemy, adres 10.10.10.8,80 to adres IP na jakim mamy uruchomionego naszego Domoticza natomiast po przecinku 80 oznacza port, należy pamiętać, że domyślny to port 8080.

On System#Boot do
timerSet,1,30
endon

On Rules
GPIO,5,1
timerSet,2,120
endon

On Rules#Timer=2 do
SendToHTTP 10.10.10.8,80,/json.htm?type=command&param=udevice&idx=50&nvalue=0&svalue=[CzujnikSmogu#PM25]
SendToHTTP 10.10.10.8,80,/json.htm?type=command&param=udevice&idx=51&nvalue=0&svalue=[CzujnikSmogu#PM10]
GPIO,5,0
timerSet,1,120
endon

czujnik smogu sds0011 kod ról

Identyfikator naszych czujników ustawiamy zgodnie z tym jaki ID zostanie nam nadany w następnym kroku. Wówczas zmień idx=50 oraz idx=51 na swój.

Następnym krokiem jest stworzenie w Domoticzu wirtualnego sensora, robimy to osobno dla PM 2,5 i PM 10. Jako typ sensora polecam  „Custom Sensor” z rozwijanej listy. Po kilkudziesięciu minutach będziemy mogli zaobserwować nasze dane. Poniżej dane dla PM2,5 oraz PM10 z kilku miesięcy pracy u mnie.

 

czujnik smogu sds011 PM25
Dane z czujnika smogu SDS011 dla PM2,5
czujnik smogu sds011 PM10
Dane z czujnika smogu SDS011 dla PM10
5/5 - (3 ocena/y)

15 Comments

  • Spróbuj podłączyć TX na GIPO-5 oraz RX na GPIO-4 i poleć z tym co znajduje się we wpisie zmień tylko na swój IP i zobacz co wtedy. I ja Sleep time: mam ustawione na „0”

    • wojt

      A mógłbyś proszę zerknąć w moje ustawienia, bo ja już nie wiem próbowałem różnych ustawień i nic.
      tak mam ustawiony devices :
      Device: Dust – SDS011/018/198
      Name: CzujnikSmogu
      Enabled:

      Sensor
      GPIO ← TX: GPIO-12 (D6)
      GPIO → RX(optional): GPIO-14 (D5)
      Serial Port: SoftwareSerial
      Sleep time: 3 [Minutes]

      Data Acquisition
      Send to Controller
      IDX: 0
      Interval:
      60 [sec]
      Values
      # Name Formula ❔ Decimals
      1 PM25
      2 PM10

      a tak rules:
      On System#Boot do
      timerSet,1,30
      endon

      On Rules
      GPIO,12,1
      timerSet,2,120
      endon

      On Rules#Timer=2 do
      SendToHTTP 192.168.188.3,8080,/json.htm?type=command&param=udevice&idx=3&nvalue=0&svalue=[CzujnikSmogu#PM25]
      SendToHTTP 192.168.188.3,8080,/json.htm?type=command&param=udevice&idx=4&nvalue=0&svalue=[CzujnikSmogu#PM10]
      GPIO,12,0
      timerSet,1,120
      endon

    • wojt

      U mnie jak wpiszę w IDX (0) to w logach mam coś takiego:
      EVENT: CzujnikSmogu#PM25=66.84
      23980142: EVENT: CzujnikSmogu#PM10=129.01
      23980159: HTTP : IDX cannot be zero!

  • electro

    Chodzi właśnie o to, że jedna linijka (PM25)do jednego idx’a w domoticzu się dobija, a druga (PM10) niestety nie, choć widzę w logach, że kontroler wysyła jednak domoticz nie potrafi tego odebrać i wstawić do virtualnego czujnika. Finalnie więc mam PM25 wartość właściwą, a PM10 = 0.

  • Mój bulid to mega-20190523,
    SendToHTTP 10.10.10.8,80,/json.htm?type=command&param=udevice&idx=50&nvalue=0&svalue=[CzujnikSmogu#PM25]

    zamień adres 10.10.10.8 ma swój port 80 na swój oraz idx=50 na swój lata. Kilkanaście osób robiło wg tego i lata identycznie mam ustawione jak we wpisie.

  • electro

    Problem w tym, że mi to nie działa, wiem, że masz dobre reguły, są zgodne z wiki, ale w moim przypadku to wygląda tak, że reguły są nadpisywane ustawieniami w konfiguracji WEB ESP, w logach idzie tylko wiadomość z idx który jest ustawiony w czujniku SDS011, czy masz tam zaznaczone do jakiego kontrolera wysyłasz (ptaszek)? Jaki masz firmware esp (git build) w Mainie?
    Gdy stosuję reguły niestety nie widze nawet w logach by wykonywały się taimery.

  • Dodajesz 2 w Domoticzu PM25 i PM10 i potem w zakładce „Rules” odpowiednio definiujesz. Zapisane mam PM25 ze względu na to, że reguła nie chciała zaskoczyć z zapisem PM2,5 😉

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.