MicroPython : MOD-ENV un module de mesure environnemental avec un CCS811 et un BME280

Il y a quelques jours, nous parlions du capteur CCS811 et son pilote MicroPython.

Il se fait qu'Olimex produit une capteur environnemental nommé MOD-ENV qui est lui même équipé d'un capteur eCO2 et TVOC (le composant CCS811) ainsi que d'un capteur BME280.
MOD-ENV - capteur environnementale d'Olimex

Outre l'intérêt de pouvoir faire des relevés de qualité de l'air (eCO2 et TVOC), le capteur permet de faire des relevés d'informations complémentaires comme la température, la pression atmosphérique et l'humidité relative.

En réinjectant les données l'humidité relative et la température dans le CCS811, cela permet d'améliorer la qualité des relevés environnementaux... sans compter sur le fait qu'il s'agit aussi d'information météorologique.

Connecteur UEXT
Le connecteur UEXT est un connecteur Universel standardisé par Olimex. Celui-ci transporte un bus I2C, un bus SPI, un UART et l'alimentation.
Chez MCHobby, nous aimons beaucoup cette connectique universelle.

Le projet de connecteur UEXT sur Pyboard permet de faciliter l'utilisation de composant UEXT avec MicroPython.
Voir les détails du projet connecteur UEXT sur Pyboard
Mais ce n'est pas le seul projet capable d'offrir une connectique UEXT, l'adaptateur PYBOARD-UNO-R3 (bientôt disponible chez MCHobby) expose également une connectique UEXT.
Voir détails sur GitHub
Du coup l'utilisation d'un capteur UEXT comme MOD-ENV devient presque enfantin. Il suffit de le brancher.

Tester
Voici le script d'exemple que nous avons placé sur le dépôt GitHub de MOD-ENV.

import time
import ccs811
import bme280

from machine import I2C

i2c = I2C( 2 )
ccs811 = ccs811.CCS811( i2c )
bme = bme280.BME280( i2c=i2c )

# Verifier si le capteur retourne une erreur
if ccs811.check_error:
 print( "An error occured!")
 print( "ERROR_ID = %s" % ccs811.error_id.as_text )
 while True:
  time.sleep( 0.100 )

# Attendre que la capteur soit prêt
while not ccs811.data_ready:
 time.sleep( 0.100 )

while True:
 values = bme.raw_values # Temperature, Pression hPa, Humidité %Rel
 print("CO2: {} PPM, TVOC: {} PPB, Temp: {} C, hPa: {}, Rh {} percent".format(ccs811.eco2, ccs811.tvoc, values[0], values[1], values[2]) )

 time.sleep(0.5)

Envie d'en savoir plus?
N'hésitez pas à consulter les liens suivants:

Aucun commentaire