Supla Airly Connect - odczyt jakości powietrza

Awatar użytkownika
Duch__
Posty: 1772
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

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 7326 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 7326 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 7326 razy
Program wymaga najnowszej dostępnej biblioteki SUPLA.
Ostatnio zmieniony sob sty 25, 2020 3:20 pm przez Duch__, łącznie zmieniany 1 raz.
Obrazek
Awatar użytkownika
Duch__
Posty: 1772
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

W załączniku program:
SUPLA AIRLY.zip
(16.43 KiB) Pobrany 640 razy
Zapraszam do testowania :)
Obrazek
Awatar użytkownika
Robert Błaszczak
Posty: 3940
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontakt:

Rewelacyjny pomysł z wykorzystaniem LED WS2812B.

Gratulacje.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
Awatar użytkownika
Duch__
Posty: 1772
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

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:
Obrazek
Awatar użytkownika
MadOnion78
Posty: 1060
Rejestracja: ndz lis 24, 2019 3:53 pm
Lokalizacja: Głubczyce

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 mSRW-01, 7x ROW-02, 2x SBW-02, 2x LIW-01, 1x SLW-02, 1x SLW-02, 1x MEW-01, 1x DIW-01, RNW-01 ;)
Awatar użytkownika
byniom
Posty: 633
Rejestracja: sob sty 07, 2017 1:17 pm

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

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: 1482
Rejestracja: śr cze 27, 2018 5:48 pm
Lokalizacja: El Saucejo - Sevilla

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: 633
Rejestracja: sob sty 07, 2017 1:17 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: 162
Rejestracja: pt maja 24, 2019 6:49 am

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

Wróć do „Projekty użytkowników”