MicroPython: capteur de particules
Bonjour à tous,
Cela faisait un moment que nous n'avions pas publié de pilote MicroPython.
Aujourd'hui, nous nous penchons sur le PMS5003 aussi connu sous le nom "capteur de particule PM2.5 Laser". Un capteur bien pratique pour évaluer la pollution de l'air.
Les polluants et poussières en suspension dans l'air peuvent aussi avoir un impact sur notre santé. Suivant leur tailles, en microns (µM), indiqué par un indice PM, celle-ci peuvent nous irriter (PM10, 10µM de diamètre), pénétrer notre système respiratoire (PM2.5) plus ou moins profondément, voir même pénétrer notre système sanguin (PM0.1). Voyez notre petit résumé sur les matières particulaire sur notre Wiki.
capteur de particule PM2.5 Laser |
La bibliothèque pm25.py permet à une carte MicroPython d'interroger le capteur et d'obtenir les informations sur la qualité de l'air.
Ce capteur exploitant une interface série (un UART), il est très facile à brancher sur un microcontrôleur. Nous avons utilisé un Raspberry-Pi Pico dans le cas présent.
Source: GitHub esp8266-upy/pm25 |
Le script d'exemple est relativement simple à utiliser et permet d'obtenir les informations suivantes:
- Les concentrations PM1.0, PM2.5 et PM10.0 dans l'unité standard (en µ g/m^3).
Devrait être utilisé en environnement industriel. - Les concentrations PM1.0, PM2.5 et PM10.0 dans l'unité environnemental (en µ g/m^3).
sous environnement atmosphérique. - Les relevés des particules par 0.1L d'air : Indique le nombre de particules au-delà de 0.3µm, 0.5µm, 1.0µm, 2.5µm, 5.0µm et 10µm de diamètre par 0.1 L d'air.
Et le script d'exemple permet d'extraire l'information.
from machine import UART from pm25 import PM25 import time # Raspberry Pico : GP0=tx (not used), GP1=rx (used) ser = UART( 0, baudrate=9600, timeout=800 ) pm25 = PM25( ser ) while True: pm25.acquire() print( '-'*40 ) print( 'Concentration Units (standard)') print( ' pm1.0: %i' % pm25.data.std.pm10 ) print( ' pm2.5: %i' % pm25.data.std.pm25 ) print( ' pm10.0: %i' % pm25.data.std.pm100 ) print( 'Concentration Units (Environmental)') print( ' pm1.0: %i' % pm25.data.env.pm10 ) print( ' pm2.5: %i' % pm25.data.env.pm25 ) print( ' pm10.0: %i' % pm25.data.env.pm100 ) print( 'Particle > x um / 0.1L air') print( ' 0.3um: %i' % pm25.data.particles.um03 ) # Particles > 0.3 µM / 0.1L air print( ' 0.5um: %i' % pm25.data.particles.um05 ) # Particle > 0.55 µM / 0.1L air print( ' 1.0um: %i' % pm25.data.particles.um10 )# Particle > 1.0 µM / 0.1L air print( ' 2.5um: %i' % pm25.data.particles.um25 ) print( ' 5.0um: %i' % pm25.data.particles.um50 ) print( ' 10.0um: %i' % pm25.data.particles.um100 ) time.sleep(1x
Voici ce que produit le capteur dans mon bureau un peu poussièreux
Concentration Units (standard) pm1.0: 36 pm2.5: 52 pm10.0: 53 Concentration Units (Environmental) pm1.0: 28 pm2.5: 42 pm10.0: 50 Particle > x um / 0.1L air 0.3um: 6216 0.5um: 1771 1.0um: 302 2.5um: 13 5.0um: 1 10.0um: 1
bSi les données présentent des taux apparemment élevés (voir indice 0.3µM), que dire alors des informations ci-dessous avec la fumée qui s'échappe de mon fer à souder!
Concentration Units (standard) pm1.0: 80 pm2.5: 134 pm10.0: 146 Concentration Units (Environmental) pm1.0: 52 pm2.5: 88 pm10.0: 96 Particle > x um / 0.1L air 0.3um: 13620 0.5um: 3934 1.0um: 900 2.5um: 87 5.0um: 14 10.0um: 9
Si vous avez un capteur du même type, il serait intéressant d'avoir des relevés dans les pièces de vie... histoire de pouvoir comparer nos informations.
Shopping list
Intéressé par ce projet MicroPython et ses possibilités? n'hésitez pas à aller jeter un oeil sur les fiches produits.
- Capteur de qualité d'air PM2.5 (PMS5003) @ MC Hobby
- PM2.5 Air Quality Sensor (PMS5003) @ Adafruit
- PMS5003 Particulate Matter Sensor
- Raspberry-Pi Pico @ MC Hobby
Écrire un commentaire