AirQ sygnalizator smogu
1.Cele
Celem projektu było opracowanie sygnalizatora informującego w zwięzłej formie o poziomie zanieczyszczeń powietrza (PM 10, PM 2,5) we wskazanej lokalizacji, bez konieczności posiadania własnej stacji pomiarowej.
2.Elementy systemu
Głównym elementem systemu jest serwer gromadzący i przetwarzający informacje o zanieczyszczeniach z poszczególnych stacji pomiarowych. Udostępnia on dane sygnalizatorom za pośrednictwem API. Sygnalizator zbudowany jest na bazie układu ESP8266 który łączy się z siecią internet za pośrednictwem WiFi, jednak z powodzeniem może on zostać zaimplementowany na innych platformach.
2.1. API Serwera
API jest zestawem instrukcji wydawanych serwerowi po których wykonaniu następuje odpowiedź z jego strony. Aktualny zestaw instrukcji znajduje się na stronie http://api.noweenergie.org/index.php?AirQ. Instrukcje podawane są jako elementy adresu URL po których wydaniu serwer generuje dokument zawierający oczekiwane przez sygnalizator dane.
2.2. Sygnalizator
Moduł zawierający układ ESP umożliwia nawiązanie połączenia z siecią WiFi, oddaje do dyspozycji programisty dość rozbudowany GPIO. Bardziej złożone moduły są wyposażone w gniazdo USB pozwalające na połączenie z komputerem PC a nawet posiadają ekran OLED.
W tym projekcie początkową bazą testową są dwa układy. Jeden z nich (bez wyświetlacza) będzie informował o poziomie zanieczyszczeń za pośrednictwem LED. Drugi układ z wbudowanym wyświetlaczem będzie prezentował dane w formie graficznej.
Układ ESP8266 z ekranem OLED dostępny jest w serwisie Aliexpress i jego koszt wynosi około $6.
W projekcie został użyty model HTIT-W8266 firmy Heltec.
Drugi układ to ESP12N sprzedawany w Aliexpress za około $3.
W repozytorium dostępne jest oprogramowanie dla obu układów a w punkcie 5 zostało omówione podłączenie LED do wersji bez wyświetlacza..
3. Działanie systemu
System sygnalizacji zanieczyszczenia powietrza zbudowany jest z trzech modułów:
- sygnalizatorów (opisanych w tym artykule) informujących użytkowników o poziomie zanieczyszczeń,
- serwera gromadzącego i przetwarzającego dane,
- stacji pomiarowych, będących częścią sieci NoweEnergie lub zewnętrznych systemów.
Przepływ danych w systemie.
Sygnalizator należy zarejestrować na serwerze, po otrzymaniu unikalnego kodu użytkownik podaje go na stronie API AirQ przypisuje stację z której będą pobierane dane.
Następnie sygnalizator pobiera z serwera dane i je wyświetla.
Serwer udostępnia API AirQ sygnalizatorom oraz stacjom pomiarowym gromadząc informacje w bazie danych.
Przechowuje również informacje o sygnalizatorach i przypisanych do nich stajach pomiarowych.
Serwer pobiera odczyty poziomu zanieczyszczeń z innych systemów które wraz z odczytami z własnej sieci uściślają wyniki pomiarów.
Stacja pomiarowa dokonuje częstych pomiarów i okresowo wysyła uśrednione dane na serwer.
4. Konfiguracja sygnalizatora
Wczytanie oprogramowania AirQ do pamięci ESP w systemie Linux można wykonać za pomocą skryptu esptool.py podając następujące parametry:
./esptool.py –port /dev/ttyUSB0 write_flash 0x000000 AirQ_oled.bin
Gdzie USB0 jest portem pod którym widoczny jest ESP a “AirQ_oled.bin” jest plikiem zawierającym oprogramowanie (tutaj wersja dla płytki z ekranem OLED). Aktualny wsad można pobrać z repozytorium. W trakcie wczytywania programu przycisk “Flash” na płytce musi być wciśnięty.
Po uruchomieniu układu należy się z nim połączyć za pomocą terminala UART i dokonać konfiguracji.
Parametry połączenia to: 115200 bps, 8 data bits, flow control none, parity none, 1 stop bits.
Wysłanie znaku “h” przez terminal powoduje wyświetlenie menu:
s – skanuj sieci
c – konfiguruj siec
r – rejestruj
o – czytaj konfiguracje
j – polacz z siecia
h – wyswietl to menu
Przy pierwszym uruchomieniu należy wykonać następujące kroki:
“s” powoduje wyświetlenie dostępnych sieci WiFi.
“c” uruchamia formularz konfiguracji sieci WiFi, należy podać SSID z którym układ ma się połączyć a następnie wprowadzić hasło.
“j” następuje połączenie z siecią WiFi.
“r” rejestracja powoduje wygenerowanie unikalnego identyfikatora dla sygnalizatora (“name_flagman”).
“o” wyświetla konfigurację urządzenia (również identyfikator “name_flagman”).
Układ jest już skonfigurowany i gotowy do pobierania danych z serwera.
Po wejściu na stronę http://api.noweenergie.org/index.php?AirQ konieczne jest dokonanie wyboru z jakiej stacji będą wyświetlane dane przez sygnalizator. Po podaniu w formularzu wygenerowanego “name_flagman” i wybraniu stacji sygnalizator po ponownym uruchomieniu będzie wyświetlać aktualne dane.
Działający sygnalizator – wersja z wyświetlaczem OLED
Algorytm pracy sygnalizatora
5. Schemat połączeń – płytka bez wyświetlacza OLED
Wersja bez wyświetlacza OLED sygnalizuje poziom zanieczyszczeń za pomocą LED. Kolejno zapalające się LED sygnalizują poziom zanieczyszczeń; zielona – brak smogu, ostatni czerwony LED oznacza zagrożenie dla życia.
Schemat podłączeń LED – wersja bez wyświetlacza
Odnośniki
- http://api.noweenergie.org/index.php?AirQ – instrukcje API systemu AirQ oraz interface przypisania sygnalizatora do stacji.
- http://repository.noweenergie.org/Repo/esp/airq – program dla ESP.
- http://repository.noweenergie.org/Repo/esp/airq/src – źródła dla ESP.