Primul pas este să obțineți un token de pe pagina platformei de date .
Odată ce aveți propriul token, puteți utiliza următorul script pentru a vă încărca datele. După ce încărcați primele date ale stației, accesați aqicn.org/data-feed/verification/ pentru a vă configura stațiile și a verifica datele încărcate.
Platforme software acceptate:
Oferim software-ul gata de utilizare pentru aceste 3 platforme:
- Arduino : Dacă aveți un procesor Arduino, utilizați software-ul gata de utilizare disponibil pe github.com la aqicn/gaia-a08-arduino .
- Python: utilizați fragmentul de cod de mai jos
- Linia de comandă (CURL): Utilizați fragmentul de cod de mai jos
Dacă nu aveți nicio stație de monitorizare și doriți să obțineți una, verificați stațiile noastre de monitorizare a calității aerului GAIA .
Dacă preferați o stație de bricolaj, verificați GAIA A08 .
Mod de funcționare
Când încărcați datele, este de preferat să calculați media datelor din ultimul minut (care este de obicei de aproximativ 60 de eșantioane per poluant) și să trimiteți datele medii către serverul nostru în fiecare minut.
Dacă nu sunteți sigur cum să încărcați datele sau dacă doriți să utilizați propriul script personalizat, trimiteți-ne un mesaj cu formularul de mai jos și vom face tot posibilul să vă ajutăm.
--
Exemplu de cod (python)
import requests
# Sensor parameter
sensorReadings = [
{'specie':'pm25', 'value': 393.3},
{'specie':'pm10', 'value': 109.3}
]
# Station parameter
station = {
'id': "station-001",
'location': {
'latitude': 28.7501,
'longitude': 77.1177
}
}
# User parameter - get yours from https://aqicn.org/data-platform/token/
userToken = "dummy-token-for-test-purpose-only"
# Then Upload the data
params = {'station':station,'readings':sensorReadings,'token':userToken}
request = requests.post( url = "https://aqicn.org/sensor/upload/", json = params)
#print(request.text)
data = request.json()
if data["status"]!="ok":
print("Something went wrong: %s" % data)
else:
print("Data successfully posted: %s"%data)
Exemplu de cod (curl)
curl -X POST https://aqicn.org/sensor/upload -H 'Content-Type: application/json' --data '{\
"token": "dummy-token-for-test-purpose-only",\
"station": { "id": "station-001" },\
"readings": [{"specie":"pm2.5", "value": 393.3}]\
}' Exemplu de cod (arduino)
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#define LATITUDE 28.7501
#define LONGITUDE 77.1177
void upload(float pm25_concentration, float pm10_concentration, const char * token)
{
static char stationID[32];
uint64_t efuseMac = ESP.getEfuseMac();
uint16_t chip = (uint16_t)(efuseMac >> 32);
snprintf(stationID, 32, "station-%x", chip);
doc["token"] = token;
doc["station"]["id"] = stationID;
doc["station"]["location"]["latitude"] = LATITUDE;
doc["station"]["location"]["longitude"] = LONGITUDE;
doc["readings"][0]["specie"] = "pm25";
doc["readings"][0]["value"] = pm25_concentration;
doc["readings"][0]["unit"] = "µg/m3";
doc["readings"][1]["specie"] = "pm10";
doc["readings"][1]["value"] = pm10_concentration;
doc["readings"][1]["unit"] = "µg/m3";
static char json_body[1024];
serializeJson(doc, json_body);
HTTPClient http;
http.begin("https://aqicn.org/sensor/upload");
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.POST(json_body);
if (httpResponseCode > 0)
{
String response = http.getString();
Serial.println(httpResponseCode);
Serial.println(response);
}
else
{
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
http.end();
} 

