El primer paso es obtener un token de la página de plataforma de datos.
Una vez que tenga su propio token, puede usar el siguiente script para cargar sus datos. Después de cargar los datos de su primera estación, vaya a aqicn.org/data-feed/verification/ para configurar sus estaciones y verificar los datos cargados.
Plataformas de software compatibles:
Proporcionamos el software listo para usar para esas 3 plataformas:
- Arduino: si tiene una CPU Arduino, utilice el software listo para usar disponible en github.com en aqicn/gaia-a08-arduino.
- Python: use el fragmento de código a continuación
- Línea de comando (CURL): use el fragmento de código a continuación
Si no tiene ninguna estación de monitoreo y le gustaría obtener una, consulte nuestras estaciones de monitoreo de calidad del aire GAIA.
Si prefieres una estación de bricolaje, consulta la GAIA A08.
Modo de funcionamiento
Al cargar sus datos, es preferible calcular el promedio de los datos del último minuto (que suele ser de unas 60 muestras por contaminante) y enviar los datos promediados a nuestro servidor cada minuto.
Si no está seguro de cómo cargar los datos o si desea utilizar su propio script personalizado, envíenos un mensaje a través del formulario que encontrará a continuación y haremos todo lo posible por ayudarle.
--
Código de muestra (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)
Código de muestra (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}]\
}' Código de muestra (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();
} 

