İlk adım data-platform sayfasından bir token almaktır.
Kendi token'ınız olduğunda, verilerinizi yüklemek için aşağıdaki betiği kullanabilirsiniz. İlk istasyon verilerinizi yükledikten sonra, istasyonlarınızı yapılandırmak ve yüklenen verileri doğrulamak için aqicn.org/data-feed/verification/ adresine gidin.
Desteklenen Yazılım Platformları:
Bu 3 platform için kullanıma hazır yazılımlar sağlıyoruz:
- Arduino : Eğer bir Arduino CPU'nuz varsa, github.com'da aqicn/gaia-a08-arduino adresinde bulunan hazır yazılımı kullanın.
- Python: Aşağıdaki kod parçacığını kullanın
- Komut satırı (CURL): Aşağıdaki kod parçacığını kullanın
Eğer bir izleme istasyonunuz yoksa ve bir tane edinmek istiyorsanız, GAIA Hava Kalitesi izleme istasyonlarımızı inceleyin.
Eğer kendin yap (DIY) istasyonunu tercih ediyorsanız GAIA A08'i inceleyin.
Çalışma Şekli
Verilerinizi yüklerken, son bir dakikalık verilerin (genellikle kirletici madde başına yaklaşık 60 örnek) ortalamasını hesaplamanız ve ortalama verileri her dakika sunucumuza göndermeniz tercih edilir.
Verileri nasıl yükleyeceğinizden emin değilseniz veya kendi özel komut dosyanızı kullanmak istiyorsanız, aşağıdaki formu kullanarak bize bir mesaj gönderin, size yardımcı olmak için elimizden gelenin en iyisini yapacağız.
--
Örnek kod (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)
Örnek kod (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}]\
}' Örnek kod (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();
} 

