Supla Airly Connect - odczyt jakości powietrza

Duch__
Posty: 690
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

sob sty 25, 2020 3:18 pm

Witam.

Dzisiaj udostępniam kod źródłowy umożliwiający połączenie serwera Supla z Airly, pobranie aktualnych wyników pomiarów i wyświetlenie ich w aplikacji oraz za pomocą sześciu diod WS2812B.

Zasada działania:

Przy pierwszym uruchomieniu urządzenie łączy się z Suplą, wykonuje rejestrację. Następnie następuje połączenie z serwerem Airly i szukanie najbliższego naszej lokalizacji czujnika. Z tego czujnika pobierane są dane odnośnie fizycznego montażu czujnika (MIASTO, ADRES, NUMER). Dane te zapisywane są w pamięci EEPROM modułu, po czym następuje restart układu. Po ponownym uruchomieniu dane adresowe zapisywane są w CLOUD:
adres.png
adres.png (16.89 KiB) Przejrzano 737 razy
Sprawdzanie adresu czujnika odbywa się co 100 odczytów wyników pomiarów.

Po tym następuje cykliczne odpytywanie najbliższego nam czujnika o aktualne warunki pogodowe. Częstotliwość odpytywania ograniczona została do 180 sekund, gdyż API Airly zezwala na 1000 odpytań w ciągu doby. I tak pomiary są dokonywane w rzeczywistości co 5 min. Jeśli z jakiś powodów nasz najbliższy czujnik zniknie (np. awaria), moduł NODEMCU wyszuka nowy czujnik, pobierze jego adres, dokona resetu i aktualizacji nazwy w CLOUD, a następnie będzie kontynuował odpytywanie.

Prezentacja wyników pomiarów:

W aplikacji:
app.jpg
app.jpg (48.53 KiB) Przejrzano 737 razy
Widocznie na screenie ikony można pobrać z tego wątku: viewtopic.php?p=59351#p59351

Dodatkowo aktualny wynik CAQI prezentowany jest za pomocą 6 szt. diod WS2812b.
Jeśli index jakości powietrza CAQI ma wartość:
do 25 -> 6 diod na zielono (Bardzo dobra jakość powietrza);
od 26 do 49 -> 5 diod na jasnozielono;
od 50 do 75 -> 4 diody na żółto;
od 76 do 85 -> 3 diody na pomarańczowo;
od 86 do 100 -> 2 diody na czerwono;
powyżej 100 -> 1 dioda na fioletowo (Bardzo zła jakość powietrza).

Sposób podłączenia diod WS2812b:
podlaczenie.png
podlaczenie.png (1.02 MiB) Przejrzano 737 razy
Program wymaga najnowszej dostępnej biblioteki SUPLA.
Ostatnio zmieniony sob sty 25, 2020 3:20 pm przez Duch__, łącznie zmieniany 1 raz.
Aktualnie w domu: 8xSRW-01, 1xROW-02, SUPLA BUTTON V3.4, 16xDS na ESP (GUI), Sonoff S20 jako kontroler CWU

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Duch__
Posty: 690
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

sob sty 25, 2020 3:18 pm

W załączniku program:
SUPLA AIRLY.zip
(16.43 KiB) Pobrany 103 razy
Zapraszam do testowania :)
Aktualnie w domu: 8xSRW-01, 1xROW-02, SUPLA BUTTON V3.4, 16xDS na ESP (GUI), Sonoff S20 jako kontroler CWU

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Awatar użytkownika
Robert Błaszczak
Posty: 774
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

sob sty 25, 2020 3:23 pm

Rewelacyjny pomysł z wykorzystaniem LED WS2812B.

Gratulacje.
Pozdrawiam
Robert Błaszczak
https://www.blaszczak.pl
Duch__
Posty: 690
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

sob sty 25, 2020 3:26 pm

Docelowo układ ma być zamontowany u moich rodziców, którzy korzystają z tego samego czujnika AIRLY co ja i robione to było pod nich - łatwy i czytelny odczyt jakości powietrza. Ja będe korzystał przez apkę :lol:
Aktualnie w domu: 8xSRW-01, 1xROW-02, SUPLA BUTTON V3.4, 16xDS na ESP (GUI), Sonoff S20 jako kontroler CWU

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Awatar użytkownika
MadOnion78
Posty: 141
Rejestracja: ndz lis 24, 2019 3:53 pm
Lokalizacja: Głubczyce

sob sty 25, 2020 4:07 pm

Chętnie bym potestował ale to poza moimi kompetencjami i umiejętnościami :(
Nie mniej jednak gratuluje pomysłu i jego wdrożenia :)

Dziś akurat byłem w Op. Mogłem podjechać pogratulować 😉
3x SRW-01, 1x SBW-02, 1xSBW-01, 2x ROW-02, 1x ROW-01, 1x SLW-02, 1x MEW-01, RNW-01, LIW-01 ;)
Awatar użytkownika
byniom
Posty: 421
Rejestracja: sob sty 07, 2017 1:17 pm

sob sty 25, 2020 4:20 pm

Przy kompilacji taki błąd mi wyskoczył exit status 1
'DynamicJsonDocument' was not declared in this scope
andrew01
Posty: 72
Rejestracja: pt maja 24, 2019 6:49 am

sob sty 25, 2020 4:35 pm

Gratulacje i podziękowania za udostępnienie kodu, spróbuję to zaadoptować do mojego Arduino Mega, co by się układ tak nie nudził i coś robił dodatkowo :)

Pozdrawiam
Andrzej
elmaya
Posty: 659
Rejestracja: śr cze 27, 2018 5:48 pm
Lokalizacja: Sevilla

sob sty 25, 2020 4:36 pm

byniom pisze:
sob sty 25, 2020 4:20 pm
Przy kompilacji taki błąd mi wyskoczył exit status 1
'DynamicJsonDocument' was not declared in this scope
Co ci to sugeruje?

Kod: Zaznacz cały

#include <ArduinoJson.h>  //Benonit Blanchot 6.14.0
Awatar użytkownika
byniom
Posty: 421
Rejestracja: sob sty 07, 2017 1:17 pm

sob sty 25, 2020 4:43 pm

Już doinstalowałem :) , dzięki elmaya :) . Jeszcze jedno pytanie , czy tutaj mam cos wpisać ? String apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //https://developer.airly.eu/api
andrew01
Posty: 72
Rejestracja: pt maja 24, 2019 6:49 am

sob sty 25, 2020 4:46 pm

Duch__ pisze:
sob sty 25, 2020 3:18 pm
dokona resetu i aktualizacji nazwy w CLOUD
A gdyby tak w CLOUD dostępny był kanał tekstowy, wyświetlający krótki tekst to by można było uniknąć restartów.
ODPOWIEDZ