Το πρώτο βήμα είναι να λάβετε ένα διακριτικό από τη σελίδα πλατφόρμας δεδομένων.
Αφού αποκτήσετε το δικό σας διακριτικό, μπορείτε να χρησιμοποιήσετε το παρακάτω σενάριο για να ανεβάσετε τα δεδομένα σας. Αφού ανεβάσετε τα δεδομένα του πρώτου σας σταθμού, μεταβείτε στη διεύθυνση aqicn.org/data-feed/verification/ για να διαμορφώσετε τους σταθμούς σας και να επαληθεύσετε τα μεταφορτωμένα δεδομένα.
Υποστηριζόμενες πλατφόρμες λογισμικού:
Παρέχουμε το έτοιμο προς χρήση λογισμικό για αυτές τις 3 πλατφόρμες:
- Arduino: Εάν διαθέτετε CPU Arduino, χρησιμοποιήστε το έτοιμο προς χρήση λογισμικό που είναι διαθέσιμο στο github.com στη διεύθυνση aqicn/gaia-a08-arduino.
- Python: Χρησιμοποιήστε το απόσπασμα κώδικα παρακάτω
- Γραμμή εντολών (CURL): Χρησιμοποιήστε το απόσπασμα κώδικα παρακάτω
Εάν δεν έχετε σταθμό παρακολούθησης και θέλετε να αποκτήσετε έναν, ελέγξτε τους σταθμούς παρακολούθησης ποιότητας αέρα GAIA.
Εάν προτιμάτε έναν σταθμό DIY, ελέγξτε το GAIA A08.
--
Δείγμα κώδικα (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)
Δείγμα κώδικα (μπούκλα)
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}]\
}'
Δείγμα κώδικα (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();
}