Der erste Schritt besteht darin, ein Token von der Datenplattformseite abzurufen.
Sobald Sie Ihren eigenen Token haben, können Sie das folgende Skript verwenden, um Ihre Daten hochzuladen. Nachdem Sie Ihre ersten Stationsdaten hochgeladen haben, gehen Sie zu aqicn.org/data-feed/verification/, um Ihre Stationen zu konfigurieren und die hochgeladenen Daten zu überprüfen.
Unterstützte Softwareplattformen:
Wir bieten die gebrauchsfertige Software für diese drei Plattformen:
- Arduino: Wenn Sie eine Arduino-CPU haben, verwenden Sie die gebrauchsfertige Software, die auf github.com unter aqicn/gaia-a08-arduino.
- Python: Verwenden Sie den folgenden Codeausschnitt.
- Befehlszeile (CURL): Verwenden Sie den folgenden Codeausschnitt
Wenn Sie keine Überwachungsstation haben und sich eine anschaffen möchten, sehen Sie sich unsere GAIA-Luftqualitätsüberwachungsstationen an.
Wenn Sie eine DIY-Station bevorzugen, sehen Sie sich GAIA A08 an.
--
Beispielcode (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)
Beispielcode (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}]\
}'
Beispielcode (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();
}