Température & Page web : Sonde DS18B20 Raspberry Pi – GPIO & Bus 1-Wire

Température & Page web : Sonde DS18B20 Raspberry Pi – GPIO & Bus 1-Wire

Développer une page web et y afficher la température de la pièce dans laquelle vous vous trouvez, ça donne envie non ?!

C’est par ici !



 

1- Votre matériel : La sonde DS18B20

2- Mise en place de la page web : Apache & PHP

3- Connecter la sonde aux GPIO

4- Afficher la température sur votre page web

 



 

1- Votre matériel : La sonde DS18B20

Bien évidemment, si vous souhaitez mesurer et afficher la température de votre pièce, il faut une sonde de température. Des sondes compatibles avec la Raspberry Pi il y en a certainement des tonnes Mais aujourd’hui ce que je vous propose, c’est une manière simple et efficace de mettre en oeuvre ce système de mesure de température !

Pour cela, il faudra vous munir d’une sonde de température de référence « DS18B20 » et de quoi pouvoir la raccorder aux GPIO de votre Raspberry Pi. En effet, pour effectuer les connexions je me suis offert une platine de type « électronique » qui permet d’enficher des pattes rigides (par exemple pour les LEDs et les résistances).

 

Le matériel que je m’étais fourni est le suivant :

Ainsi qu’un lot de 5 sondes DS18B20 avec câble :

 

Cependant attention, les fils de ces sondes sont de type souples. Si vous souhaitez obtenir des sondes avec connexions rigides pour enficher directement dans la platine, dirigez vous plutôt vers celles-ci :

 

La question que vous êtes certainement entrain de vous poser c’est « mais qu’est-ce qu’elle a de spécial cette sonde DS18B20 ?« . Pour comprendre, il faut revenir à mon introduction : la mise en service d’un système simple et efficace. En effet, cette sonde est une sonde de température que l’on pourrait classée comme intelligente. En fait, elle comporte la technologie 1-Wire qui correspond à un protocole de communication. Plus précisémment, si l’on souhaite entrer dans les détails, la sonde délivre des informations sous forme numériques que seule un « lecteur » de bus 1-Wire est capable de traduire ces informations numériques en température. Bien heureusement pour nous, la Raspberry Pi permet de communiquer en « 1-Wire ».

Finalement, il va aussi vous falloir une résistance de 4,7 kΩ soit 4 700 Ω pour brancher votre sonde à la Raspberry Pi. Celles-ci s’achètent généralement en lot :

Nous allons voir comment établir cette communication dans la dernière section D’abord intéressons-nous à l’installation d’une page web pour, justement, y afficher la température mesurée par votre belle sonde DS18B20 1-Wire.


 

2- Mise en place de la page web : Apache & PHP

 

Si c’est la première fois que vous voyez « Apache & PHP », vous êtes certainement pris d’une panique au point de vouloir abandonner. Si ce n’est pas le cas tant mieux, si c’est le cas, n’abandonnez surtout pas parce que les explications qui vont suivre (vous le verrez) elles sont très simples et vous êtes sûr d’y arriver tout autant que moi il y a quelques mois !

Pour vous rassurez, nous allons faire un petit d’histoire à propos d’Apaphe et PHP. Plus précisémment, nous allons expliquer à quoi ils vont nous servir :

 

Apache ? C’est le nom d’un hélicoptère non ? Oui effectivement, mais à part ça, c’est aussi un logiciel. Une application que vous pouvez installer sur votre Raspberry Pi et qui va vous permettre de l’utiliser comme un serveur. Wouaouh, utiliser sa Raspberry Pi comme un serveur, mais pourquoi ?! Ben justement, transformer sa Raspberry Pi en serveur va nous permettre d’aller la consulter avec un autre ordinateur. Apache va nous permettre d’aller voir la page web qu’on a implantée dans notre Raspberry Pi. Pratique non ? Étant donné que l’on souhaite afficher la température sur une page web implantée dans notre framboise, on est dans la bonne direction !

PHP ? C’est le nom d’un hélicoptère aussi ? Cette fois non, PHP correspond à un language de programmation. C’est un language qui est utilisé pour développer des pages web. Dans notre cas, il va nous permettre d’écrire les quelques lignes de codes qui vont afficher la température mesurée sur votre page web. Rassurez-vous, c’est une language simple à comprendre et puis je vais vous donner les lignes de codes à intégrée :).

 

Ça y est, j’ai comme le sentiment que vous êtes prêts à continuer ! Donc profitons-en.

Dans le terminal de votre Raspberry Pi ou à partir du terminal de votre équipement connecté en SSH (si vous ne savez pas à quoi fait référence le SSH, rendez-vous au tutoriel concerné de BlogÉclair.com en cliquant ici), tapez les lignes suivantes :

Voilà, maintenant que votre bébé est à jour, nous pouvons lancer l’installation d’Apache :

Ensuite il faut donner des droits d’accès à Apache (ne cherchez pas encore à comprendre le sens des lignes de commandes, c’est du Linux) :

Voilà, vous venez d’installer Apache (serveur web) sur votre Raspberry Pi. Est-ce que c’était compliqué ? J’avoue que c’est un peu déroutant quand on a pas l’habitude !

Bien, maintenant on va passer à l’installation de PHP :

Durant l’installation (notamment au début) on risque de vous demander si vous êtes sûr de vouloir installer le contenu, il suffit de taper « y » ou « yes » ou « o » ou « oui » pour lancer l’installation.


3- Connecter la sonde aux GPIO

Pour connecter la sonde DS18B20 aux GPIO, il suffit de suivre le schéma de câblage suivant :

Par défaut, c’est la GPIO 4 qui est activée pour le bus 1-Wire. Ceci peut-être facilement modifié en changeant la dernière ligne du fichier « /boot/config.txt » « dtoverlay=w1-gpio,gpiopin=x » en remplaçant le numéro de la GPIO souhaitée. Cependant, le schéma que je vous propose est noté avec la GPIO 4.


4- Afficher la température sur votre page web

La fin se rapproche et je sens votre impatience devenir de plus en plus grande ! C’est bien normal. Cependant, avant d’obtenir le résultant tant attendu, il y a encore quelques manipulations à réaliser.

La première concerne l’activation de la communication « 1-Wire » sur la Raspberry Pi. Ceci est réalisé à partir de l’écran de configuration « raspi-config ». De ce fait, tapez la ligne suivante dans le terminal :

 

Puis suivez les instructions en image :

 

Une fois le 1-Wire activé, il faut identifier la sonde. Pour cela, il faut taper quelques lignes de commande dans la console. Ces lignes de commandes sont les suivantes :

Les deux commandes chargent les pilotes du protocole 1-Wire et du capteur de température connecté à la broche GPIO 4 par défaut. Ensuite, nous avons besoin de nous déplacer dans le répertoire du périphérique 1-Wire et lister les périphériques afin de s’assurer que notre capteur de température est reconnu correctement. Saisissez les lignes :

Dans la liste des périphériques, votre capteur doit apparaître avec une série de lettres et de chiffres. Dans mon cas, le périphérique est identifié avec le numéro 28-00005e2fdc3. Vous devez alors accéder au capteur avec la commande cd, en n’oubliant pas de remplacer le numéro de série par celui de votre propre capteur :

Les données provenant du capteur sont périodiquement écrites dans le fichier w1_slave. Nous pouvons utiliser la commande « cat » pour lire son contenu :

On obtient alors deux lignes de texte, avec en sortie « t » qui indique la température en millidegrés Celsius :

Pour afficher cette température en dessous des boutons de commande de la LED, nous allons simplement modifier le fichier « index.php ». Commençons par l’ouvrir pour le modifier à partir de la commande :

Maintenant vous allez écrire en PHP en copiant ce code (en pensant à remplacer le numéro de série de la sonde par le votre) :

Quittez en pressant CTRL + X et enregistrez. Rendez-vous sur votre page web en saisissant l’adresse IP de votre Raspberry Pi dans la barre de recherche de votre navigateur. Vous devriez tomber sur une page comme ceci :

 

Félicitations, vous venez de terminer votre projet de domotique.



 

VOILÀ, CE TUTO EST TERMINÉ ! J’ESPÈRE QUE VOUS L’AVEZ TROUVÉ UTILE ET INTÉRESSANT. POUR D’AUTRES TUTOS AU SUJET DE LA CONFIGURATION DE LA RASPBERRY PI (RASPI-CONFIG, SSH, PASSWORD, 1-WIRE, GPIO, PWM, PAGE WEB), N’HÉSITEZ PAS À CONSULTER LES AUTRES ARTICLES DE BLOGÉCLAIR.COM OU LES EBOOKS DANS LA RUBRIQUE « Nos eBooks ».

MERCI DE LAISSER UN PETIT COMMENTAIRE, QU’IL SOIT POSITIF OU NÉGATIF, C’EST L’INTENTION QUI COMPTE 😀


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *