Senseur SI7005 (NCD) pour MicroPython

Voilà, nous arrivons enfin au moment où nous allons pouvoir utiliser notre premier capteur / senseur NCD avec MicroPython.

NCD SI7005 - Mesure d'humidité relative (%Rel) et température avec MicroPython

Basé sur composant SI7005 de Silicon Lab, le capteur I2C permet de faire un relevé de humidité relative et et température.
Carte NCD à base de SI7005

Ce qui est intéressant avec ce senseur c'est qu'il est pré-calibré en usine et que ces informations de calibration sont disponibles dans le composant.
Avec l'algorithme de correction adéquat, il est possible d'obtenir des mesured avec un précision de :
  • +/- 4.5 %RH
  • +/- 0.5 °C
Brancher
Ce suffit de placer le câble entre le port de sortie I2C du microcontrôleur et le port d'entrée (IN) de la carte.

Voici par exemple le raccordement sur la Pyboard... simple comme "Bonjour"
Brancher la Pyboard sur le Capteur d'humidité.
Source: Github MCHobby
La bibliothèque si70x pour MicroPython
Nous avons par ailleurs porté la code Arduino vers MicroPython.
La bibliothèque si70x.py est disponible sur le GitHub ESP8266-uPy/ncd-si7005

Il ne reste plus qu'à copier le fichier si70x.py sur votre carte MicroPython Pyboard avec votre utilitaire favorit.

Tester
Pour tester la bibliothèque, il suffit alors de créer une instance du bus I2C comme recommandé pour la carte d'interface NCD pour Pyboard.

from machine import I2C, Pin

# Créer le bus I2C en fonction de votre plateforme.
i2c = I2C( 2, freq=100000 )

A noter que dans le cas présent, la vitesse de bus est réduite à 100 KHz.

Puis reste alors à créer l'instance de l'objet si7005 et d'interroger le capteur.

from si70x import SI7005

# On passe l'instance du bus I2C
mpl = SI7005( i2c )

# On interroge le capteur
i = 0
while True:
 i += 1
 print( '--- Iteration %s %s' % (i,'-'*20) )
 # tuple (hrel, temp)
 print( 'raw_values ', mpl.raw_values ) # Valeur brute de humidité, température
 print( 'values ', mpl.values ) # Valeurs _Human Friendly_

Ce qui produit les résultats suivant sur la console REPL

--- Iteration 1672 --------------------
raw_values  (54.875, 24.25)
values  ('54.88 %HRel', '24.21875 C')
--- Iteration 1673 --------------------
raw_values  (54.875, 24.21875)
values  ('54.94 %HRel', '24.25 C')

Où acheter
Si vous avez trouvé cet article intéressant alors aidez nous à poursuivre nos travaux de documentations en achetant vos produits chez MCHobby.
Ressources

Aucun commentaire