La première étape consiste à obtenir un jeton sur la page de la plateforme de données.
Une fois que vous disposez de votre propre jeton, vous pouvez utiliser le script suivant pour télécharger vos données. Après avoir téléchargé les données de votre première station, accédez à aqicn.org/data-feed/verification/ pour configurer vos stations et vérifier les données téléchargées.
Plateformes logicielles prises en charge :
Nous fournissons le logiciel prêt à l'emploi pour ces 3 plateformes :
- Arduino : si vous disposez d'un processeur Arduino, utilisez le logiciel prêt à l'emploi disponible sur github.com à l'adresse aqicn/gaia-a08-arduino.
- Python : utilisez l'extrait de code ci-dessous.
- Ligne de commande (CURL) : utilisez l'extrait de code ci-dessous.
Si vous n'avez pas de station de surveillance et souhaitez en obtenir une, consultez nos stations de surveillance de la qualité de l'air GAIA.
Si vous préférez une station DIY, consultez le GAIA A08.
--
Exemple de code (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)
Exemple de code (boucle)
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}]\ }'
Exemple de code (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(); }