AirlyEu API

Mieszkam w Krakowie, mieście z fatalną jakością powietrza. Dlatego tematy poprawy i pomiaru jakości powietrza są mi bliskie.  Jakiś czas temu pozyskałem klucz API od airly.eu i w końcu znalazłem czas, aby przygotować bibliotekę dla ‘Arduino IDE’ umożliwiającą korzystanie z zasobów wspomnianego projektu Airly.

Pierwsze podejście do tematu pozyskania danych o jakości powietrza miałem w poprzednim projekcie weatherz-internetowa-stacja-pogodowa-oraz-jakosc-powietrza Tam źródłem danych był GIOŚ ze znacznie dokładniejszą metodologia pomiarów, niemniej znacznie mniejszą ilością czujników (stacji pomiarowych). Dla przykładu, w Krakowie GIOŚ ma w tej chwili 8 stacji pomiarowych, Airly koło 100. Punktem wyjścia dla danych GIOŚ była lista identyfikatorów stacji pomiarowych. W przypadku Airly jest to lokalizacja użytkownika. Za pomocą biblioteki odczytuję najbliższą aktywna stację, a następnie jej parametry czyli:

  1. PM2,5
  2. PM10
  3. INDEKS JAKOŚCI POWIETRZA
  4. ADRES LOKALIZACJI STACJI POMIAROWEJ
  5. ODLEGŁOŚĆ UŻYTKOWNIKA OD STACJI POMIAROWEJ
  6. TEMPERATURĘ
  7. CIŚNIENIE POWIETRZA
  8. WILGOTNOŚĆ

Aby skorzystać z API Airly, należy pozyskać darmowy klucz API 

/*******************************************************************
Przykład użycia biblioteki AirlyApi

This library provide access to specific air parameters, especially air pollution PM (PM - Particulate Matters) from arily.eu
Blog autora https://theveel.com/?p=370

API documentation / dokumentacja API https://developer.airly.eu/docs

W wersji darmowej dostępu do API użytkownik zobowiązuje się do wykorzystywania API wyłącznie w celach niekomercyjnych.
Limit zapytań wynosi 1000 zapytań na dzień oraz 50 zapytań na minutę.

On a free plan, API consumer is required to use API only in non-commercial uses.
API is limited to 1000 requests per day and 50 requests per minute.
*******************************************************************/

#include <AirlyApi.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

//------- Replace the following! ------
char ssid[] = ""; // your network SSID (name)
char password[] = ""; // your network key
#define API_KEY "" // your Airly.eu API Token https://developer.airly.eu/

WiFiClientSecure client;
AirlyApi api(API_KEY, client);

//Inputs
//user location latitude, longitude
String lat = "50.0572748";
String lon = "19.907631";
String maxDistance = "2000";

void setup() {

Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);

// Attempt to connect to Wifi network:
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
IPAddress ip = WiFi.localIP();
Serial.println(ip);

checkNearestSonsor();
}

void checkNearestSonsor() {
Serial.println("\n1.Getting sensor lat " + lat + " lon " + lon);
api.getNearestSonsor(lat,lon,maxDistance);
int id=api.getLocationId().toInt();

if(id>0)
//get temperature, humidity and preassure
{
checkSonsor(id);
Serial.println("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
Serial.println("Lokalizacja "+api.getRoute()+" "+api.getStreetNumber()+". "+api.getDistance()+"m. stąd.");
Serial.println("Indeks jakości powietrza: "+ api.getAirQualityIndex());
Serial.print("PM2,5: "+api.getPM25()+"µg "+toPercent(api.getPM25().toInt(),25));
Serial.println(" PM10: "+api.getPM10()+"µg "+toPercent(api.getPM10().toInt(),50));
Serial.println("Temperatura: "+api.getTemperature()+"°C, ciśnienie: "+api.getPressure()+"hPa, wilgotność: "+api.getHumidity()+"%");

}else{
Serial.println("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
Serial.println("$$$$$$$$$$ A P I E R R O R $$$$$$$$$$");}
Serial.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");

}

void checkSonsor(int id) {
api.getSensorValues(id); //(id)
}

String toPercent(int val, float base) {
int i = (val / base) * 100;
return (String)i + "%";
}

void loop() {

}

Wynik w konsoli IDE

Pobierz z Githuba

Please follow and like us:

1
Dodaj komentarz

avatar
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
API gios.gov.pl Stacje Pomiaru Jakości Powietrza – theveel Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
trackback

[…] biblioteka dla ESP8266, umożliwiająca pobieranie danych o jakości powietrza. W poprzedniej dostawcą danych był serwis airly.eu. W obecnej jest to Główny Inspektorat Ochrony […]