Langkah pertama adalah mendapatkan token dari halaman platform data .
Setelah Anda memiliki token sendiri, Anda dapat menggunakan skrip berikut untuk mengunggah data Anda. Setelah Anda mengunggah data stasiun pertama Anda, kunjungi aqicn.org/data-feed/verification/ untuk mengonfigurasi stasiun Anda dan memverifikasi data yang diunggah.
Platform Perangkat Lunak yang Didukung:
Kami menyediakan software siap pakai untuk 3 platform tersebut:
- Arduino : Jika Anda memiliki CPU Arduino, gunakan perangkat lunak siap pakai yang tersedia di github.com di aqicn/gaia-a08-arduino .
- Python: Gunakan cuplikan kode di bawah ini
- Baris perintah (CURL): Gunakan cuplikan kode di bawah ini
Jika Anda tidak memiliki stasiun pemantauan apa pun, dan ingin memilikinya, periksa stasiun pemantauan Kualitas Udara GAIA kami.
Jika Anda lebih menyukai stasiun DIY, periksa GAIA A08 .
--
Kode contoh (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)
Contoh kode (ikal)
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}]\
}'
Contoh kode (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();
}