Tutoriel IoT débutant : Diffusion de données de température depuis un Raspberry Pi
« Hello World ! » – C'est probablement la sortie du premier programme que vous ayez jamais écrit en apprenant à coder. Configurer un dispositif pour diffuser des données de température devient rapidement le projet « Hello World ! » de facto de l'Internet des Objets (IoT). Si afficher « Hello World ! » la première fois était une tâche longue et frustrante, vous n'auriez peut-être jamais écrit un autre programme. Votre premier projet IoT ne devrait mettre qu'un grand sourire sur votre visage. Ce projet amusant et facile vous introduira au monde merveilleux de la diffusion de données IoT.
Un tutoriel vidéo de ce projet complet se trouve à :
https://youtu.be/HMqPbfvCshs
Voici les fournitures dont vous aurez besoin :
- Un Raspberry Pi connecté à Internet ou votre ordinateur monocarte de choix.
- Un capteur de température DS18B20 (https://www.adafruit.com/product/381).
- Une breadboard pour câbler un circuit simple (dans le kit de démarrage Adafruit Pi).
- Une résistance 4,7K à 10K (aussi dans le kit de démarrage Adafruit Pi).
Étape 1 : Configuration matérielle
Le capteur de température DS18B20 fonctionne bien avec le Raspberry Pi car il a une sortie numérique, et le Pi n'a pas de convertisseur analogique-numérique (ADC) intégré. Raspbian inclut une interface pour lire la sortie du capteur. Il suffit d'écrire un peu de code pour récupérer et analyser la température. Adafruit a un excellent tutoriel ici pour utiliser le DS18B20 que nous allons simplement suivre et modifier pour diffuser la température au lieu de l'afficher à l'écran.
La configuration matérielle est simple. Fil rouge DS18B20 sur 3,3V. Fil noir sur GND. Fil bleu sur une résistance de pull-up et sur la broche GPIO 4 de votre Pi.
Étape 2 : Lire la température
Pour démarrer l'interface de lecture du capteur de température, nous devons exécuter deux commandes. Allez à une invite de commande sur votre Pi ou connectez-vous en SSH. Tapez les commandes suivantes :
sudo modprobe w1-gpio
sudo modprobe w1-therm
La sortie de votre capteur de température est maintenant écrite 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 suit le « 28- » est le numéro de série de votre capteur. cd dans ce répertoire. À l'intérieur, un fichier nommé w1_slave contient la sortie de votre capteur. Le contenu de ce fichier ressemblera à ceci :
a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YES
a2 01 4b 46 7f ff 0e 10 d8 t=26125
Le nombre après « t= » est celui que nous voulons. C'est la température en 1/1000 degrés Celsius (dans l'exemple ci-dessus, la température est 26,125 °C). Nous avons juste besoin d'un programme simple qui lit ce fichier et extrait ce nombre. Heureusement, Adafruit a déjà créé un script Python qui fait exactement cela et affiche la température à l'écran. Créez un nouveau fichier sur votre Pi (ex. temperature.py) et copiez-collez le code suivant :
Cliquez ici pour voir le code
Exécutez ce script (« sudo python temperature.py ») pour voir la sortie de votre capteur de température à l'écran.
Étape 3 : Diffuser la température
C'est le point où nous nous écartons du tutoriel Adafruit. Envoyer la température à l'écran est ennuyeux. Nous voulons diffuser ces données quelque part où nous pouvons voir non seulement la température actuelle mais un historique des données de température capturées (en plus, qui veut « lire » un tas de températures en texte ; nous voulons une belle visualisation de données). Installez d'abord le streamer Initial State pour donner à nos mesures de température une destination (allez ici pour les instructions de configuration du streamer Initial State ; c'est super facile et prend moins de deux minutes). Nous allons modifier le script ci-dessus pour diffuser la température vers notre compte Initial State au lieu de l'afficher à l'écran. Voici les modifications :
Cliquez ici pour voir le code
Vous devrez copier-coller la clé client associée à votre compte Initial State entre les guillemets à la ligne 6 où il est écrit client_key = « ». Vous pouvez trouver votre clé client sous les paramètres de votre compte ou sur la page d'accueil une fois connecté à votre compte.
Voici les modifications que nous venons de faire :
- À la ligne 4, nous avons importé le module streamer de données Initial State.
- À la ligne 6, nous avons créé un nouveau bucket appelé « Temperature Stream » et l'avons associé à notre compte via notre clé client.
- À la ligne 30, nous avons modifié la fonction read_temp() pour ne retourner que la température en Celsius.
- À la ligne 34, nous avons converti la sortie de read_temp() en Fahrenheit.
- Aux lignes 35 et 36, nous avons diffusé les deux températures.
Pour plus de détails : Projet IoT 101 : Diffuser la température depuis votre Raspberry Pi
Processus de fabrication
- Construire un enregistreur de température Raspberry Pi avec capteur I2C à 5 $
- Profilage température Raspberry Pi précis avec Python, SQLite et LabVIEW
- Moniteur réseau température et humidité Raspberry Pi — Guide de configuration DIY
- Comment lire la température avec un DS18B20 sur Raspberry Pi 2
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Mesure de température sur Raspberry Pi avec capteurs 1‑Wire Maxim et pont I2C DS2482
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Raspberry Pi BMP085 : Relevés précis de température et pression via I2C