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.

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..

ESP8266

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.

 

AirQ

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.

ESP sygnalizator smogu
Schemat podłączeń LED – wersja bez wyświetlacza

 

Odnośniki