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
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.
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¶m=udevice&idx=50&nvalue=0&svalue=[CzujnikSmogu#PM25]
SendToHTTP 10.10.10.8,80,/json.htm?type=command¶m=udevice&idx=51&nvalue=0&svalue=[CzujnikSmogu#PM10]
GPIO,5,0
timerSet,1,120
endon
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.
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”
Gdzieś musisz mieć błąd, przejrzyj wszystko od początku.
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¶m=udevice&idx=3&nvalue=0&svalue=[CzujnikSmogu#PM25]
SendToHTTP 192.168.188.3,8080,/json.htm?type=command¶m=udevice&idx=4&nvalue=0&svalue=[CzujnikSmogu#PM10]
GPIO,12,0
timerSet,1,120
endon
Spoko 😉
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!
Działa! Czeski błąd nie miałem zera (0) w IDX :
Data Acquisition
Send to Controller
❶
IDX:
0
Dzięki za zainteresowanie:)
Zobacz czy na machnąłeś się w porcie, ja tak miałem 😉
Sprawdź czy te komendy czy są identyczne po za idx.
Tak
A idx masz różne dla PM2,5 i dla PM10 ?
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¶m=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.
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 😉
W jaki sposób udało Ci się rozdzielić PM25 i PM10 w domoticzu na dwa czujniki?