Bước đầu tiên là nhận mã thông báo từ trang nền tảng dữ liệu.
Sau khi có mã thông báo của riêng mình, bạn có thể sử dụng tập lệnh sau để tải dữ liệu của mình lên. Sau khi bạn tải lên dữ liệu trạm đầu tiên của mình, hãy truy cập aqicn.org/data-feed/verification/ để định cấu hình các trạm của bạn và xác minh dữ liệu đã tải lên.
Nền tảng phần mềm được hỗ trợ:
Chúng tôi cung cấp phần mềm sẵn sàng để sử dụng cho 3 nền tảng đó:
- Arduino: Nếu bạn có CPU Arduino, hãy sử dụng phần mềm sẵn sàng sử dụng có sẵn trên github.com tại aqicn/gaia-a08-arduino.
- Python: Sử dụng đoạn mã bên dưới
- Dòng lệnh (CURL): Sử dụng đoạn mã bên dưới
Nếu bạn không có trạm giám sát nào và muốn có một trạm, hãy kiểm tra các trạm giám sát Chất lượng Không khí GAIA của chúng tôi.
Nếu bạn thích trạm tự làm, hãy kiểm tra GAIA A08.
Chế độ hoạt động
Khi tải dữ liệu lên, tốt nhất là nên tính trung bình dữ liệu trong một phút gần nhất (thường khoảng 60 mẫu cho mỗi chất gây ô nhiễm), và gửi dữ liệu trung bình đó đến máy chủ của chúng tôi mỗi phút.
Nếu bạn không chắc chắn về cách tải dữ liệu lên, hoặc nếu bạn muốn sử dụng tập lệnh tùy chỉnh của riêng mình, chỉ cần gửi tin nhắn cho chúng tôi bằng biểu mẫu bên dưới và chúng tôi sẽ cố gắng hết sức để giúp bạn.
--
Mã mẫu (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)
Mã mẫu (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}]\
}' Mã mẫu (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();
} 

