Aktualizacja: 2018-03-04

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 ESP12 Monitor jakości powietrza

3. Działanie systemu

System sygnalizacji zanieczyszczenia powietrza zbudowany jest z trzech modułów:

 

Działanie systemu

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

 

działanie sygnalizatora 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.

Sygnalizator smogu ESP8266
Schemat podłączeń LED - wersja bez wyświetlacza

 

Odnośniki

Wyślij komentarz