fil jaune : data
Schéma :
1. Mettre une résistance de 4,7 KΩ entre le fil rouge et le fil jaune de la sonde
2. PIN 1 (3V3 power) : fil rouge de la sonde
3. PIN 6 (GND) : fil noir de la sonde
4. PIN 7 (GPIO 4) : fil jaune de la sonde
Configuration
pgd@rpi01:~ $ sudo nano /etc/modules
w1-therm
w1-gpio pullup=1
pgd@rpi01:~ $ modprobe w1-therm
pgd@rpi01:~ $ modprobe w1-gpio pullup=1
Rechercher l'ID de la sonde
pgd@rpi01:~ $ cd /sys/bus/w1/devices
pgd@rpi01:~ $ ls-al
➔ Il faut repérer le répertoire commençant par "28-xxx"
Dans mon cas : 28-3c01f095abf5 ou 28-03213194e9d4
Affichage du fichier contenant la température
pgd@rpi01:~ $ cd /sys/bus/w1/devices/28-3c01f095abf5
pgd@rpi01:~ $ cat w1_slave
La température correspond au nombre après "t=", elle est en millième de °C
En cas de problème
➔ S'il n'y a pas de fichier "28-xxx"
pgd@rpi01:~ $ sudo nano /boot/config.txt
dtoverlay=w1-gpio
pgd@rpi01:~ $ sudo reboot
Affichage de la température sur une page web (PHP)
<?php
//----- Id de la sonde
$sonde_id = "28-3c01f095abf5";
//----- Un peu de html
echo "<html>";
echo "<head>";
echo "<meta name='viewport' content='width=device-width, user-scalable=no'>";
echo "<style>";
echo "span { font-family:arial; font-size:32px; }";
echo "</style>";
echo "</head>";
echo "<body>";
echo "<center>";
//----- Fichier avec la température à lire
$file = "/sys/bus/w1/devices/" . $sonde_id . "/w1_slave";
//-- Lecture du fichier
$lines = file($file);
//-- Recupération de la 2ème ligne
$temp = explode('=', $lines[1]);
//----- Mise en forme de la température (1 décimale)
$temp = number_$temp[1] / 1001;
//----- On affiche la température
echo "<span>";
echo "Température<br>";
echo "<b>" . $temp . " °C</b>";
echo "</span>";
echo "</center>";
echo "</body>";
echo "</html>";
?>