Guide to publishing Shinyei sensor data on the World Air Quality Index project

This page is made for those interrested in measuring Air Quality based on the Shinyei sensor. For more information about the Shinyei sensor, please refer to this on-going experiment page: sensor/shinyei/.


Hardware Setup

For this experiement, the hardware used to retrieve the data from the Shinyei Sensor is a PC Duino - but any Raspberry PI would also work fine.

All which is needed, on the PC Duino side, to extract the information from the Shinyei sensor is two digital input. In our configuration, we use the GPIO6 and GPIO7 from the PC Duino. Since the PC duino also provide a 5V output, we directly power supply the SHinyei from the Pc Duino pins.

For now, threshold input (IN1) is left unsed, but it will be used later as a way to split particule by size, and hence detect both PM10 and PM2.5 particules.


The scripts are available online from github. They are based on the Air Quality data-upload API described at api/sensor.

To run the scripts, you just need to use this simple command: python It will output data in the following style:

 $ python

16:51:27: 13.02 9.27
16:51:32: 10.15 3.03
16:51:37: 8.58 1.86
16:51:42: 8.97 1.01
16:51:47: 8.32 1.05
16:51:52: 8.22 1.05
16:51:57: 7.33 0.75
16:52:02: 6.72 0.75
16:52:07: 6.05 0.75
16:52:12: 6.4 0.75
16:52:17: 7.13 0.75
--- 16:52:22 --- 0.073053159646 0.00751250729585 ---
Posting {'type': 'shinyei-pdp42ns-1u', 'unit': 'lpo', 'value': 0.07305315964603189} {'type': 'shinyei-pdp42ns-2.5u', 'unit': 'lpo', 'value': 0.007512507295851456} -> 200 OK
Server says {u'sensorID': u'589', u'result': u'ok', u'dataids': [2835085, 2835086]}
Firs column is obviously the current time. The second and third column are the measured LPO (in percentage, from 0 to 100). The script measures the LPO over 1 minute, so the 'current' LPO indication will be displayed 10 times. The 1 minute average is displayed as '--- 16:52:22 --- 0.073053159646 0.00751250729585 ---' (unit from 0 to 1). After that, the averaged LPO is posted ( Posting {'type': 'shinyei-pdp42ns-1u', 'unit': 'lpo', 'value': 0.07305315964603189} {'type': 'shinyei-pdp42ns-2.5u', 'unit': 'lpo', 'value': 0.007512507295851456} -> 200 OK ) to the server.



Once your setup is working, do not forget to use your own sensor ID, by replacing the value "shinyei.test-sensor" in the file with your own sensor ID. Sensor ID can be any string, but we recommand to use the convention sensor-type.(location+).your-name, such as for instance shinyei.china.beijing.haidian.john-doe.

 uploader = AirQualityUploader("shinyei.test-sensor")
Once you have choosen your own sensor ID, do not forget to protect it by password so that no-one else but you can upload data. For that, you just need to contact us and let us the ID you want to protect. We will then provide you the password to be used.


Still to be done

There are sitll many things to be done. Si if you want to join us and support our work, here are some of the things which we need help for:
  • Hardware connectivity based on the Raspberry PI, Beagle Bonne and other IOT Hardware.
  • Use an intermediate arduino-like to poll and pre-process the data from the Shinyei.
  • Improve the python-scripts with fail-safe support (i.e. keep the data even though if there is no WIFI connection).


Read or publish comments (they rely on Disqus)

À propos de la qualité de l'air et des mesures de la pollution atmosphérique :

À propos des niveaux de qualité de l'air

IQANiveau de pollution de l'air Impact sur la santé
0 - 50 Bon La qualité de l'air est jugée satisfaisante, et la pollution de l'air pose peu ou pas de risque.
51 -100 Modéré La qualité de l'air est acceptable. Cependant, pour certains polluants, il peut y avoir un risque sur la santé pour un très petit nombre de personnes inhabituellement sensibles à la pollution atmosphérique.
101-150 Mauvais pour les groupes sensibles La qualité de l'air est acceptable; Cependant, pour certains polluants, il peut y avoir un problème de santé modérée pour un très petit nombre de personnes qui sont particulièrement sensibles à la pollution de l'air.
151-200 Mauvais Tout le monde peut commencer à ressentir des effets sur la santé; les membres des groupes sensibles peuvent ressentir des effets de santé plus graves.
201-300 Très mauvais Avertissements de santé de conditions d'urgence. Toute la population est plus susceptible d'être affecté.
300+ Dangereux Alerte de santé: tout le monde peut ressentir des effets de santé plus graves.

Pour en savoir plus sur la qualité de l'air, consultez le sujet Qualité de l'air sur Wikipedia ou le guide AirNow de la qualité de l'air et de votre santé .

Pour des conseils de santé très utiles du Dr. Richard Saint Cyr, consultez le blog

Notice d'utilisation: Toutes les données sur la qualité de l'air ne sont pas validées au moment de la publication et, pour des raisons d'assurance de la qualité, ces données peuvent être modifiées à tout moment et sans préavis. Le projet Indice de la qualité de l'air dans le monde a exercé toutes les compétences et l'attention réalisables dans la compilation du contenu de ces informations. Indice de la qualité de l’air dans le monde , l’équipe de projet ou ses agents ne peuvent être tenus responsables, contractuellement, judiciairement ou autrement, de toute perte, blessure ou préjudice résultant directement ou indirectement de la fourniture de ces données.


Choix de la langue :

Temperature unit: