اولین قدم این است که یک توکن از صفحه پلتفرم داده دریافت کنید.
هنگامی که رمز خود را دارید، می توانید از اسکریپت زیر برای آپلود داده های خود استفاده کنید. بعد از اینکه اولین داده های ایستگاه خود را آپلود کردید، به aqicn.org/data-feed/verification/ بروید تا ایستگاه های خود را پیکربندی کنید و داده های آپلود شده را تأیید کنید.
پلتفرم های نرم افزاری پشتیبانی شده:
ما نرم افزار آماده استفاده را برای آن 3 پلتفرم ارائه می کنیم:
- Arduino: If you have an Arduino CPU, use the ready-to-use software available on github.com at aqicn/gaia-a08-arduino.
- Python: Use the code-snippet below
- Command line (CURL): Use the code-snippet below
اگر هیچ ایستگاه نظارتی ندارید و مایل به دریافت آن هستید، ایستگاه های نظارت بر کیفیت هوا GAIA ما را بررسی کنید.
اگر یک ایستگاه DIY را ترجیح می دهید، GAIA A08 را بررسی کنید.
--
کد نمونه (پایتون)
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}]\ }'
کد نمونه (اردوینو)
#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(); }