4.5 Utilisation de capteurs avec bibliothèques
Certains capteurs ou ensembles de capteurs plus complexes nécessitent l’utilisation de bibliothèques. Plusieurs de ces capteurs sont disponibles et compatibles tant avec l’Arduino qu’avec le Raspberry Pi et des bibliothèques sont fournies en C et en Python. Pour utiliser ces capteurs, on doit étudier leurs spécifications pour trouver les instructions de connexion. De plus, certains de ces composants nécessitent un minimum de soudure pour leurs propres connecteurs.
Voyons comment utiliser le BME680 qui est une carte de dérivation de capteurs permettant de mesurer la qualité de l’air, la température, la pression atmosphérique et l’humidité ambiante. Cet ensemble de capteurs communique avec notre microcontrôleur par le protocole I2C. Voyons comment le connecter à un Raspberry Pi et comment utiliser sa bibliothèque Python pour le programmer et obtenir les données de chaque capteur.
4.5.1 Connexion de la carte de dérivation de capteurs BME680
Figure 78 — Carte de capteurs BME680
L’image ci-contre présente la carte de capteurs BME680. Ses connecteurs sont faits pour être soudés à des broches d’en-tête. Sinon, on peut aussi l’utiliser avec un adaptateur approprié. Ensuite, on devra connecter la carte aux broches 1, 3, 5, 7, et 9 du Raspberry Pi, dans cet ordre.
4.5.2 Lecture des données des capteurs avec bibliothèque
Pour notre exemple, nous devons d’abord activer le protocole I2C dans les configurations du Raspberry Pi et installer la bibliothèque Python du BME680.
C’est une bibliothèque orientée objet. Pour l’utiliser, on doit l’importer. On peut en profiter pour la renommer : import bme680 as bme. Ensuite, on peut créer un objet avec la commande capteur = bme.BME680(). Après quelques configurations, on a accès aux commandes suivantes pour lire les données :
- capteur.get_sensor_data() qui retourne Vrai si les données suivantes sont prêtes à lire :
o capteur.data.temperature : la température lue en degrés Celsius;
o capteur.data.pressure : la pression lue en hectopascals (hPa);
o capteur.data.humidity : le pourcentage d’humidité;
- capteur.data.heat_stable qui retourne Vrai si la donnée suivante est prête à lire :
o capteur.data.gas_resistance : la résistance du gaz — de l’air — en ohms. Plus la qualité de l’air est bonne, plus la résistance est élevée.
Voici un exemple de code affichant toutes les données lues.
Figure 79 — Exemple de code Python utilisant la carte de capteurs BME680 et sa bibliothèque
Vidéo 47 : Utilisation d’une carte de capteurs avec le Raspberry Pi