پہلا قدم ڈیٹا پلیٹ فارم پیج سے ٹوکن حاصل کرنا ہے۔
ایک بار جب آپ کے پاس اپنا ٹوکن ہو جائے تو، آپ اپنا ڈیٹا اپ لوڈ کرنے کے لیے درج ذیل اسکرپٹ کا استعمال کر سکتے ہیں۔ اپنے پہلے اسٹیشن کا ڈیٹا اپ لوڈ کرنے کے بعد، اپنے اسٹیشنوں کو ترتیب دینے اور اپ لوڈ کردہ ڈیٹا کی تصدیق کرنے کے لیے 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)
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();
}