الخطوة الأولى هي الحصول على رمز مميز من صفحة منصة البيانات.
بمجرد حصولك على الرمز المميز الخاص بك، يمكنك استخدام البرنامج النصي التالي لتحميل بياناتك. بعد تحميل بيانات محطتك الأولى، انتقل إلى aqicn.org/data-feed/verification/ لتهيئة محطاتك والتحقق من البيانات التي تم تحميلها.
منصات البرامج المدعومة:
نحن نقدم برامج جاهزة للاستخدام لتلك المنصات الثلاثة:
- Arduino: إذا كان لديك وحدة معالجة مركزية Arduino، فاستخدم البرنامج الجاهز للاستخدام المتوفر على github.com على aqicn/gaia-a08-arduino.
- Python: استخدم مقتطف التعليمات البرمجية أدناه
- سطر الأوامر (CURL): استخدم مقتطف التعليمات البرمجية أدناه
إذا لم يكن لديك أي محطة مراقبة، وترغب في الحصول على واحدة، فراجع محطات مراقبة جودة الهواء 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(); }