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:
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:
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:
Program wymaga najnowszej dostępnej biblioteki SUPLA.
Supla Airly Connect - odczyt jakości powietrza
-
- Posts: 2031
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
You do not have the required permissions to view the files attached to this post.
Last edited by Duch__ on Sat Jan 25, 2020 3:20 pm, edited 1 time in total.
-
- Posts: 2031
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
W załączniku program:
Zapraszam do testowania
Zapraszam do testowania

You do not have the required permissions to view the files attached to this post.
-
- Posts: 4458
- Joined: Sat Dec 22, 2018 8:55 pm
- Location: Zielona Góra
Rewelacyjny pomysł z wykorzystaniem LED WS2812B.
Gratulacje.
Gratulacje.
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
-
- Posts: 2031
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: 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ę 

-
- Posts: 1066
- Joined: Sun Nov 24, 2019 3:53 pm
- Location: 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ć

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 

-
- Posts: 676
- Joined: Sat Jan 07, 2017 1:17 pm
Przy kompilacji taki błąd mi wyskoczył exit status 1
'DynamicJsonDocument' was not declared in this scope
'DynamicJsonDocument' was not declared in this scope
-
- Posts: 162
- Joined: Fri May 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

Pozdrawiam
Andrzej
-
- Posts: 1484
- Joined: Wed Jun 27, 2018 5:48 pm
- Location: El Saucejo - Sevilla
Co ci to sugeruje?byniom wrote: Sat Jan 25, 2020 4:20 pm Przy kompilacji taki błąd mi wyskoczył exit status 1
'DynamicJsonDocument' was not declared in this scope
Code: Select all
#include <ArduinoJson.h> //Benonit Blanchot 6.14.0
-
- Posts: 676
- Joined: Sat Jan 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

