De eerste stap is het verkrijgen van een token van de data-platformpagina.
Zodra u uw eigen token heeft, kunt u het volgende script gebruiken om uw gegevens te uploaden. Nadat u uw eerste stationgegevens heeft geüpload, gaat u naar aqicn.org/data-feed/verification/ om uw stations te configureren en de geüploade gegevens te verifiëren.
Ondersteunde softwareplatforms:
Wij leveren de kant-en-klare software voor deze 3 platforms:
- Arduino: als je een Arduino CPU hebt, gebruik dan de kant-en-klare software die beschikbaar is op github.com op aqicn/gaia-a08-arduino.
- Python: gebruik het onderstaande codefragment
- Commandoregel (CURL): gebruik het onderstaande codefragment
Als u geen meetstation heeft en er wel een wilt aanschaffen, bekijk dan onze GAIA meetstations voor luchtkwaliteit.
Als je de voorkeur geeft aan een doe-het-zelf-station, kijk dan eens naar de GAIA A08.
Werkwijze
Bij het uploaden van uw gegevens is het raadzaam om het gemiddelde te berekenen van de gegevens van de laatste minuut (wat meestal neerkomt op ongeveer 60 metingen per verontreinigende stof) en de gemiddelde gegevens elke minuut naar onze server te sturen.
Als u niet zeker weet hoe u de gegevens moet uploaden, of als u uw eigen script wilt gebruiken, stuur ons dan een bericht via onderstaand formulier en we zullen ons best doen om u te helpen.
--
Voorbeeldcode (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)
Voorbeeldcode (krul)
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}]\
}' Voorbeeldcode (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();
} 

