Publishing API for Dylos and Shinyei sensors

Note. The content on this page is outdated.
For the most recent upload API document, go to https://aqicn.org/data-feed/upload-api/

If you have a Dylos or Shinyei sensor, and you would like to publish its data on the World Air Quality Index, then this page is for you. One of the easiest solution for uploading the Dylos data is to use the ready made scripts available on github. But if you need to brew your own system, or upload data from the Shinyei sensor, then you can use the APIs described on this page.

Note that this API specification is not final, but still on-going work, so if you meet any difficulty with the integration, just contact us to get the support.


--

API Endpoint

http://sensor.aqicn.org/

API Method: Uploading data

post /sensor/upload
Parameters
  • id: Sensor ID, eg dylos.test-sensor-id
  • key: Sensor password - optional, only if the sensor ID is 'locked'.
  • time: Sensor time, with timezone information, in ISO 8601 format- eg 2014/10/08 18:03:45 +0800
  • location: Sensor position (latitude, longitude) - optional only if correlation with BAM sensor is requested

  • data: Array, containing all the raw readings
    • type: Sensor data type. For now, can be "dylos-0.5", "dylos-2.5", "shinyei-pdp42ns-2.5u" or "shinyei-pdp42ns-1u".
    • unit: Sensor data unit. For now, can be "pc" (particule count) or "lpo" (low pulse occupancy).
    • value: Sensor data reading. eg 94948 or 0.374

    Notes
    1. The above parameters are encapsulated within the argument 'postdata' of the post request.
    2. The LPO value must be between 0 and 1. 0 Means transparent, 1 Opaque. For more information on how to extrac the LPO from the Shinyei sensor, please refer to this page: api/shinyei.
Example:
...
Return value:
  • result: Can be either ok or error.

    In case of ok result, the returned value will contain the sensor id as well as the upload data ids (for information purpose only).
    ...

    In case of error, the returned value will contain a description (field msg) and an error code (field ecode) which can be one of the following:

    • 101: There are missing arugments from the posted data. Minimum arguments are id, time and data.
    • 102: Key is not valid - the sensor is protected by password and the provided password is not correct.
    • 103: No data posted (i.e empty array or data is not an array).
    • 104: Unit, type of value information not available from the data field.
    • 105: Sensor type is unknown.
    • 106: The field value is not numeric.
    • 107: Time string can not be decode (is it ISO 8601 complaiant?)
    • 108: SQL query failed.
    ...

Example

 $ curl -i "http://sensor.aqicn.org/sensor/upload/" -d 'postdata={id:"dylos.test-sensor-id",time:"2014-10-16T19:20:31+08:00",data:[{type:"dylos-2.5",value:88,unit:"pc"}]}'

HTTP/1.1 200 OK
Date: Sun, 09 Nov 2014 08:28:34 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked
Content-Type: text/json; charset=utf-8

{"result":"ok","sensorID":"588","dataids":[2825275]}


API Method: Getting the raw sensor data

get /sensor/download
Parameters
  • id: Sensor ID, eg dylos.test-sensor-id
  • callback: Optional JsonP callback (eg "foo").
Example :
 http://sensor.aqicn.org/sensor/download/?id=dylos.test-sensor-id&callback=foo 

Return value:
...

Example

 $ curl -i "http://sensor.aqicn.org/sensor/download/?id=dylos.test-sensor-id&callback=foo"

HTTP/1.1 200 OK
Date: Sun, 09 Nov 2014 08:42:12 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked
Content-Type: text/json; charset=utf-8

{"id":"dylos.test-sensor-id","data":{"dylos-0.5":[{"time":"1413458432","value":"89"}],"dylos-2.5":[{"time":"1413458432","value":"89"},{"time":"1413458431","value":"88"}]}}


Về phương pháp đo chất lượng không khí và mức độ ô nhiễm:

Về các thang đo chất lượng không khí

- Giá trị chỉ số chất lượng không khí (AQI)Mức độ ảnh hưởng sức khỏe
0 - 50 Tốt Chất lượng không khí được xem là đạt tiêu chuẩn, và ô nhiễm không khí coi như không hoặc gây rất ít nguy hiểm
51 -100 Trung bình Chất lượng không khí ở mức chấp nhận được; tuy nhiên, một số chất gây ô nhiễm có thể ảnh hưởng tới sức khỏe của một số ít những người nhạy cảm với không khí bị ô nhiễm.
101-150 Không tốt cho người nhạy cảm Nhóm người nhạy cảm có thể chịu ảnh hưởng sức khỏe. Số đông không có nguy cơ bị tác động.
151-200 Có hại cho sức khỏe Mỗi người đều có thể sẽ chịu tác động đến sức khỏe; nhóm người nhạy cảm có thể bị ảnh hưởng nghiêm trọng hơn.
201-300 Rất có hại cho sức khỏe Cảnh báo nguy hại sức khỏe nghiêm trọng. Đa số mọi người đều bị ảnh hưởng.
300+ Nguy hiểm Cảnh báo sức khỏe: tất cả mọi người có thể chịu tác động nghiêm trọng đến sức khỏe

Để biết thêm về ô nhiễm và chất lượng không khí , xem wikipedia chất lượng không khí đang đề hoặc hướng dẫn về chất lượng không khí và sức khỏe của bạn .

Để biết những lời khuyên về sức khỏe rất hữu ích của bác sĩ y khoa Richard Saint Cyr ở Bắc Kinh, xem www.myhealthbeijing.com blog.


Thông báo sử dụng: Tất cả dữ liệu chất lượng không khí không được xác thực tại thời điểm công bố. Nhằm đảm bảo chất lượng, những dữ liệu này có thể được cập nhập mà không cần thông báo trước. Nhóm dự án Chỉ số chất lượng không khí toàn cầu đã thực hiện tất cả yêu cầu cần thiết trong việc biên soạn các thông tin này. Nhóm dự án hoặc các bên liên quan sẽ không chịu trách nhiệm về bất kỳ tổn thất, thương tích hoặc thiệt hại nào phát sinh trực tiếp hoặc gián tiếp từ việc cung cấp những dữ liệu này trong bất kỳ trường hợp nào.



Cài đặt


Cài đặt ngôn ngữ:


Temperature unit:
Celcius