Comment construire un moniteur de température Raspberry Pi

La température et l’humidité sont des points de données vitaux dans le monde industriel d’aujourd’hui. La surveillance des données environnementales pour les salles de serveurs, les congélateurs commerciaux et les lignes de production est nécessaire pour assurer le bon fonctionnement des choses. Il existe de nombreuses solutions allant du basique au complexe et cela peut sembler écrasant sur les besoins de votre entreprise et par où commencer.

Nous expliquerons comment construire et utiliser un capteur de température Raspberry Pi avec différents capteurs de température. C’est un bon point de départ car ces solutions sont peu coûteuses, faciles à faire et vous donnent une base à bâtir pour d’autres activités de surveillance de l’environnement.

Un Raspberry Pi est un ordinateur monocarte peu coûteux qui vous permettra de vous connecter à un capteur de température et de diffuser les données vers un logiciel de visualisation de données. Les Raspberry Pi ont commencé comme un outil d’apprentissage et sont devenus un outil de travail industriel. La facilité d’utilisation et la capacité de coder avec Python, le langage de programmation à la croissance la plus rapide, en ont fait une solution de choix.

Vous voudrez un Raspberry Pi doté du WiFi intégré, qui sont n’importe quel modèle 3, 4 et zéro W / WH. Entre ceux-ci, vous pouvez choisir en fonction des prix et des fonctionnalités. Le zéro W / WH est le moins cher, mais si vous avez besoin de plus de fonctionnalités, vous pouvez choisir entre le 3 et le 4. Vous ne pouvez acheter qu’un zéro W / WH à la fois en raison des limitations de la Fondation Raspberry Pi. Quel que soit le Pi que vous choisissez, assurez-vous d’acheter un chargeur car c’est ainsi que vous alimenterez le Pi et une carte SD avec Raspbian pour rendre l’installation du système d’exploitation aussi facile que possible.

Il existe d’autres ordinateurs à carte unique qui peuvent également fonctionner, mais c’est pour une autre fois et un autre article.

Capteurs

Il existe quatre capteurs que nous recommandons d’utiliser car ils sont peu coûteux, faciles à connecter et donnent des lectures précises; DSB18B20, DHT22, BME280 et Raspberry Pi Sense HAT.

DHT22 – Ce capteur de température et d’humidité a une précision de température de +/- 0,5 C et une plage d’humidité de 0 à 100%. Il est simple à câbler au Raspberry Pi et ne nécessite aucune résistance de traction.

DSB18B20 — Ce capteur de température a une sortie numérique, qui fonctionne bien avec le Raspberry Pi. Il a trois fils et nécessite une platine de prototypage et une résistance pour la connexion.

BME280 – Ce capteur mesure la température, l’humidité et la pression barométrique. Il peut être utilisé à la fois dans SPI et I2C.

Sense HAT — Il s’agit d’un ajout à bord pour Raspberry Pi doté de LED, de capteurs et d’un petit joystick. Il se connecte directement au GPIO du Raspberry Pi, mais l’utilisation d’un câble plat vous donne des lectures de température plus précises.

Configuration du Raspberry Pi

Si c’est la première fois que vous configurez votre Raspberry Pi, vous devrez installer le système d’exploitation Raspbian et connecter votre Pi au WiFi. Cela nécessitera un moniteur et un clavier pour se connecter au Pi. Une fois que vous l’avez opérationnel et connecté au WiFi, votre Pi est prêt à partir.

Compte d’État initial

Vous aurez besoin d’un endroit pour envoyer vos données pour conserver un journal historique et afficher le flux de données en temps réel afin que nous utilisions l’État initial. Accédez à https://iot.app.initialstate.com et créez un nouveau compte ou connectez-vous à votre compte existant.

Ensuite, nous devons installer le module Python d’état initial sur votre Pi. À une invite de commande (n’oubliez pas de SSH dans votre Pi en premier), exécutez la commande suivante:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Après avoir entré la commande curl dans l’invite de commande, vous verrez quelque chose de similaire à la sortie suivante à l’écran:

Lorsque vous êtes invité à obtenir automatiquement un exemple de script, tapez y. Cela créera un script de test que nous pouvons exécuter pour nous assurer que nous pouvons diffuser des données à l’état initial. L’invite suivante vous demandera où vous souhaitez enregistrer le fichier d’exemple. Vous pouvez saisir un chemin local personnalisé ou appuyer sur Entrée pour accepter l’emplacement par défaut. Enfin, on vous demandera quelle application d’état initial vous utilisez. Si vous avez récemment créé un compte, sélectionnez l’option 2, entrez votre nom d’utilisateur et votre mot de passe. Après cela, l’installation sera terminée.

Jetons un coup d’œil à l’exemple de script créé.

$ nano is_example.py

À la ligne 15, vous verrez une ligne commençant par streamer = Streamer(bucket_ .... Cette ligne crée un nouveau compartiment de données nommé « Exemple de flux Python » et est associé à votre compte. Cette association se produit en raison du paramètre access_key="..." sur cette même ligne. Cette longue série de lettres et de chiffres est votre clé d’accès au compte d’État initial. Si vous accédez à votre compte d’État initial dans votre navigateur Web, cliquez sur votre nom d’utilisateur en haut à droite, puis allez dans « mes paramètres », vous trouverez cette même clé d’accès ici sous « Clés d’accès en streaming ».

Clés d’accès au flux d’état initial

Chaque fois que vous créez un flux de données, cette clé d’accès dirigera ce flux de données vers votre compte (ne partagez donc votre clé avec personne).

Exécutez le script de test pour vous assurer que nous pouvons créer un flux de données vers votre compte d’état initial. Exécutez ce qui suit:

$ python is_example.py

Revenez à votre compte d’État initial dans votre navigateur Web. Un nouveau compartiment de données appelé « Exemple de flux Python » aurait dû apparaître à gauche dans votre étagère de journaux (vous devrez peut-être actualiser la page). Cliquez sur ce compartiment, puis sur l’icône Waves pour afficher les données de test.

Tableau de bord d’exemple de flux Python d’État initial

Si vous utilisez Python 3, vous pouvez installer le module de flux d’État initial que vous pouvez installer à l’aide de la commande suivante:

pip3 install ISStreamer

Nous sommes maintenant prêts à configurer le capteur de température avec le Pi pour diffuser la température sur un tableau de bord.

Solution DHT22

Vous aurez besoin des éléments suivants pour construire cette solution:
– Capteur de température et d’humidité DHT22

Le DHT22 aura trois broches – 5V, Gnd et data. Il devrait y avoir une étiquette de broche pour l’alimentation du DHT22 (par exemple ‘+’ ou ‘5V’). Connectez-le à la broche 2 (la broche en haut à droite, 5V) du Pi. La broche Gnd sera étiquetée ‘-‘ ou ‘Gnd’ ou quelque chose d’équivalent. Connectez-le à la broche 6 Gnd (deux broches en dessous de la broche 5V) sur le Pi. Le code PIN restant sur le DHT22 est le code pin de données et sera étiqueté « out » ou « s » ou « data ». Connectez-le à l’une des broches GPIO du Pi telle que GPIO4 (broche 7). Une fois que cela est câblé, allumez votre Pi.

Pour cette solution, nous devrons utiliser Python 3 et la bibliothèque CircuitPython car Adafruit a déprécié la bibliothèque Python DHT.

Installez le module Python CircuitPython-DHT à une invite de commande pour faciliter la lecture des données du capteur DHT22:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

Avec notre système d’exploitation installé avec nos deux modules Python pour lire les données du capteur et envoyer les données à l’état initial, nous sommes prêts à écrire notre script Python. Le script suivant créera/ajoutera à un compartiment de données d’état initial, lira les données du capteur DHT22 et enverra ces données à un tableau de bord en temps réel. Tout ce que vous avez à faire est de modifier les lignes 6 à 11.

  • Ligne 7 – Cette valeur doit être unique pour chaque nœud / capteur de température. Cela peut être le nom de la pièce de votre nœud de capteur, son emplacement physique, son identifiant unique ou autre. Assurez-vous simplement qu’il est unique pour chaque nœud pour vous assurer que les données de ce nœud vont à son propre flux de données dans votre tableau de bord.
  • Ligne 8 – C’est le nom du compartiment de données. Cela peut être modifié à tout moment dans l’interface utilisateur de l’état initial.
  • Ligne 9 – Ceci est votre clé de seau. Il doit s’agir de la même clé de compartiment pour chaque nœud que vous souhaitez afficher dans le même tableau de bord.
  • Ligne 10 – Il s’agit de votre clé d’accès au compte d’état initial. Copiez et collez cette clé à partir de votre compte d’État initial.
  • Ligne 11 – C’est le temps entre les lectures du capteur. Changez en conséquence.
  • Ligne 12 – Vous pouvez spécifier des unités métriques ou impériales à la ligne 11.

Après avoir défini les lignes 7 à 12 dans votre script Python sur votre Pi, enregistrez et quittez l’éditeur de texte. Exécutez le script avec la commande suivante:

$ python3 tempsensor.py
Voici un exemple d’utilisation du capteur DHT22 avec le Raspberry Pi

Maintenant, vous aurez des données envoyées à un tableau de bord d’état initial. Accédez à la dernière section de cet article pour plus de détails sur la personnalisation de votre tableau de bord.

Solution DSB18B20

Vous aurez besoin des éléments suivants pour construire cette solution:
– Capteur de température DSB18B20
– Résistance 10K
– Platine de prototypage
– Carte de dérivation à 40 broches + Câble ruban
– Fils

Le câble plat se connecte aux broches GPIO du Pi. Le DS18B20 a trois fils. Le fil rouge se connecte à 3,3V. Le fil bleu / noir se connecte à la terre. Le fil jaune se connecte à une résistance de traction / broche 4. Une fois que cela est câblé, allumez votre Pi.

La dernière version de Raspbian (noyau 3.18) nécessite un ajout à votre /boot/config.fichier txt pour que le Pi communique avec le DS18B20. Exécutez ce qui suit pour modifier ce fichier:

$ sudo nano /boot/config.txt

Si la ligne suivante n’est pas déjà dans ce fichier (si c’est le cas, elle se trouve probablement en bas du fichier), ajoutez-la et enregistrez le fichier.

dtoverlay=w1-gpio,gpiopin=4

Redémarrez votre Pi pour que les modifications prennent effet.

$ sudo reboot

Pour démarrer l’interface de lecture du capteur de température, nous devons exécuter deux commandes. Accédez à une invite de commande sur votre Pi ou SSH dans votre Pi. Tapez les commandes suivantes:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

La sortie de votre capteur de température est maintenant en cours d’écriture dans un fichier sur votre Pi. Pour trouver ce fichier:

$ cd /sys/bus/w1/devices

Dans ce répertoire, il y aura un sous-répertoire qui commence par « 28-« . Ce qui vient après le « 28- » est le numéro de série de votre capteur. cd dans ce répertoire. Dans ce répertoire, un fichier nommé w1_slave contient la sortie de votre capteur. Utilisez nano pour afficher le contenu du fichier. Une fois que vous avez entré le fichier, il ressemblera à ceci:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

Le nombre après « t = » est le nombre que nous voulons. C’est la température en 1/1000 degrés Celsius (dans l’exemple ci-dessus, la température est de 26,125 C). Nous avons juste besoin d’un programme simple qui lit ce fichier et analyse ce nombre. Nous y arriverons dans une seconde.

Tout est maintenant prêt pour que nous puissions commencer à diffuser des données. Pour ouvrir l’éditeur de texte, tapez ce qui suit dans l’invite de commande:

$ nano temperature.py

Copiez et collez le code ci-dessous dans l’éditeur de texte.

Vous devez placer votre clé d’accès d’État initiale sur la ligne 6 à la place de PUT_YOUR_ACCESS_KEY_HERE (copiez la clé de streaming dans votre presse-papiers à partir de ‘Mon compte’ et collez-la dans le code en nano dans votre terminal).

La ligne 6 créera un compartiment nommé « Flux de température » dans votre compte d’état initial (en supposant que vous ayez correctement spécifié votre clé d’accès sur cette même ligne). Les lignes 8 à 30 de ce script s’interfacent simplement avec le capteur DS18B20 pour lire sa température à partir du fichier w1_slave dont nous avons parlé précédemment. La fonction read_temp_raw() de la ligne 15 lit le fichier w1_slave brut. La fonction read_temp() de la ligne 21 analyse la température de ce fichier. La ligne 34 appelle ces fonctions pour obtenir la température actuelle. La ligne 35 convertit la température de Celsius en Fahrenheit. Les lignes 35 et 36 transmettent la température à votre compte d’État initial. La ligne 37 interrompt le script pendant 0,5 seconde, en réglant la fréquence de lecture et de diffusion du capteur de température.

Nous sommes prêts à commencer le streaming. Exécutez la commande suivante:

$ sudo python temperature.py

Revenez à votre compte d’état initial dans votre navigateur Web et recherchez un nouveau compartiment de données appelé Flux de température. Vous devriez voir les données de température en streaming en direct. Faites varier la température du capteur en le tenant dans votre main ou en le mettant dans un verre de glace.

Maintenant, vous aurez l’envoi de données vers un tableau de bord d’état initial. Accédez à la dernière section de cet article pour plus de détails sur la personnalisation de votre tableau de bord.

Solution BME280

Vous aurez besoin des éléments suivants pour créer cette solution:
– BME280 Capteur de pression, Température, & Humidité

Si vous utilisez un BME280 qui ne provient pas d’Adafruit, votre configuration et votre code seront différents. Vous pouvez trouver un exemple d’utilisation de ce capteur BME280 dans cet article sur la surveillance de l’humidité de l’espace vide sanitaire.

Ce capteur est livré avec des broches que vous devrez souder sur le capteur. Je recommande d’utiliser une planche à pain avec les broches du côté long vers le bas dans la planche à pain pour faciliter le soudage. Une fois que vous avez terminé, nous devons câbler le capteur au Pi.

Connectez la broche VIN du capteur à la broche 3,3V 1 du Pi. Connectez la broche GND sur le capteur à la broche de masse 6 sur le Pi. Connectez la broche SCK du capteur à la broche SCL 5 du Pi. Connectez la broche SDI du capteur à la broche SDA 3 du Pi.

Vous devrez utiliser Python 3 pour cette solution et installer le module de streamer d’état initial à l’aide de la méthode d’installation pip3. Vous devrez également installer quelques bibliothèques Python Adafruit.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

Pour utiliser le capteur, nous devons activer I2C sur le Pi.

sudo raspi-config

Cela ouvrira l’outil de configuration du logiciel Raspberry Pi. Accédez à l’option 5 Options d’interfaçage. De là, allez à I2C. Il vous demandera si vous souhaitez activer I2C, Sélectionnez Oui et Terminez. Vous avez maintenant activé I2C pour communiquer avec le capteur.

Nous pouvons tester cela en exécutant ce qui suit:

sudo i2cdetect -y 1

Cela vérifiera que votre Pi voit le capteur. Dans la façon dont il est connecté, il doit montrer le capteur à l’adresse 77. Si vous ne détectez pas le capteur, redémarrez votre Pi, réactivez l’option d’interface I2C sur votre Pi et réessayez.

Une fois que votre capteur est détecté, il est temps d’exécuter notre code principal qui enverra les données à l’état initial. Créé un fichier appelé bme280sensor.py avec la commande nano. Copiez et collez le code de l’essentiel dans l’éditeur de texte. Vous devrez apporter des modifications aux lignes 12 à 19.

  • Ligne 12 – Cette valeur doit être unique pour chaque nœud / capteur de température. Cela peut être le nom de la pièce de votre nœud de capteur, son emplacement physique, son identifiant unique ou autre. Assurez-vous simplement qu’il est unique pour chaque nœud pour vous assurer que les données de ce nœud vont à son propre flux de données dans votre tableau de bord.
  • Ligne 13 – Il s’agit du nom du compartiment de données. Cela peut être modifié à tout moment dans l’interface utilisateur de l’état initial.
  • Ligne 14 – Ceci est votre clé de seau. Il doit s’agir de la même clé de compartiment pour chaque nœud que vous souhaitez afficher dans le même tableau de bord.
  • Ligne 15 – Il s’agit de votre clé d’accès au compte d’État initial. Copiez et collez cette clé à partir de votre compte d’État initial.
  • Ligne 17 – Il s’agit de la pression de votre emplacement (hPa) au niveau de la mer. Vous pouvez trouver ces informations sur la plupart des sites Web météorologiques.
  • Ligne 18 – C’est le temps entre les lectures du capteur. Changez en conséquence.
  • Ligne 19 – Ici, vous pouvez spécifier des unités métriques ou impériales.

Après avoir défini les lignes 12 à 19 dans votre script Python sur votre Pi, enregistrez et quittez l’éditeur de texte. Exécutez le script avec la commande suivante:

$ python3 bme280sensor.py

Vous aurez maintenant l’envoi de données vers un tableau de bord d’état initial. Accédez à la dernière section de cet article pour plus de détails sur la personnalisation de votre tableau de bord.

Solution Sense HAT

Vous aurez besoin des éléments suivants pour construire cette solution:
– Raspberry Pi Sense HAT
– Câble d’extension mâle-FemelleRaspberry 6 « 40 Broches (en option pour la précision de la température)

La première étape de l’utilisation du Sense HAT consiste à l’installer physiquement sur votre Pi. Lorsque le Pi est éteint, attachez le CHAPEAU comme indiqué ci-dessous.

Connexion Sense HAT au Raspberry Pi

Si vous décidez d’utiliser la solution comme indiqué ci—dessus, vous remarquerez peut-être que les lectures de température de votre Sense HAT seront un peu élevées – c’est parce qu’elles le sont. Le coupable est la chaleur générée par le processeur du Pi chauffant l’air autour du CHAPEAU de détection lorsqu’il est assis au-dessus du Pi. Pour rendre le capteur de température utile, nous devons soit éloigner le CHAPEAU du Pi, soit essayer de calibrer la lecture du capteur de température. Une bonne solution pour éloigner le capteur du Pi est un câble qui laisse le CHAPEAU de détection s’éloigner du Pi. Un câble d’extension mâle-femelle 6 de 6 « à 40 broches fera l’affaire.

Raspberry Pi dans un boîtier avec câble d’extension se connectant au CHAPEAU Sense

Une fois que vous avez décidé des deux options, allumez votre Pi. Nous devons installer la bibliothèque Python pour faciliter la lecture des valeurs du capteur à partir du CHAPEAU Sense. Tout d’abord, vous devrez vous assurer que tout est à jour sur votre version de Raspbian:

$ sudo apt-get update

Ensuite, installez la bibliothèque Python Sense HAT:

$ sudo apt-get install sense-hat

Redémarrez votre Pi. Nous sommes prêts à tester le CHAPEAU de détection en lisant les données du capteur et en envoyant ces données à l’état initial.

Créez un fichier appelé sensehat et ouvrez-le dans l’éditeur de texte en entrant le suivant dans l’invite de commande:

$ nano sensehat.py

Copiez et collez le code ci-dessous dans l’éditeur de texte.

Notez sur la première ligne que nous importons la bibliothèque SenseHat dans le script. Avant d’exécuter ce script, nous devons configurer nos paramètres utilisateur.

Plus précisément, vous devez définir votre CLÉ d’accès à votre compte d’état initial. Vous pouvez remplacer BUCKET_NAME et SENSOR_LOCATION_NAME par l’emplacement réel du capteur. Enregistrez et quittez l’éditeur de texte.

À une invite de commande sur votre Pi, exécutez le script:

$ sudo python sensehat.py

Vous aurez maintenant l’envoi de données vers un tableau de bord d’état initial. Accédez à la dernière section de cet article pour plus de détails sur la personnalisation de votre tableau de bord.

Personnalisez votre Tableau de bord d’État initial

Avec votre capteur de température Raspberry Pi intégré, vous pouvez désormais accéder à votre compte d’État initial et consulter vos données. Vous pouvez cliquer avec le bouton droit sur une Tuile pour changer le type de graphique et cliquer sur Modifier les tuiles pour redimensionner et déplacer vos tuiles. Je recommande d’utiliser le thermostat de jauge pour la température et le niveau de liquide de la jauge pour l’humidité. Vous pouvez créer des graphiques linéaires pour la température et l’humidité afin de voir les changements au fil du temps. Vous pouvez également ajouter une image d’arrière-plan à votre tableau de bord.

Vous pouvez définir des alertes de déclenchement afin de recevoir un SMS ou un e-mail si la température descend en dessous ou dépasse un certain seuil. Accédez à votre compartiment de données et cliquez sur Paramètres. De là, allez dans l’onglet Déclencheurs. Entrez la clé de flux que vous souhaitez surveiller, l’opérateur que vous souhaitez utiliser et la valeur de seuil. Cliquez sur le signe plus pour ajouter le déclencheur. Ensuite, vous entrez votre adresse e-mail ou votre numéro de téléphone pour recevoir l’alerte et cliquez sur le signe plus. Une fois que vous avez défini tous vos déclencheurs, cliquez sur le bouton Terminé en bas.

Tableau de bord de la température de l’état initial

Maintenant que vous avez créé un capteur de température Raspberry Pi à l’aide d’un capteur et d’un Raspberry Pi, vous pouvez commencer à réfléchir aux autres données environnementales que vous pouvez surveiller ensuite.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Previous post Master Gardener: Les arbres Cassia sont faciles à cultiver
Next post Apprentissage adaptatif