With the boiler controllable, I turned to reading and storing temperatures from the various Pis around the house.
La chaudière étant pilotable, je me suis tourné vers la lecture et le stockage des températures depuis les différents Pi de la maison.
I used the DS18B20 (waterproof, usable outside) on most Pis. Here's how.
J'ai utilisé le DS18B20 (étanche, utilisable dehors) sur la plupart des Pi. Voici comment.
Hardware
Matériel
Link yellow and red wires with a 10kΩ resistor to create a pull-up circuit:
Relier les fils jaune et rouge avec une résistance 10kΩ pour créer un circuit pull-up :


Kernel configuration
Configuration du noyau
Add to /boot/config.txt:
Ajouter dans /boot/config.txt :
dtoverlay=w1-gpioAdd to /etc/modules:
Ajouter dans /etc/modules :
w1-therm
w1-gpio pullup=1Reboot and verify the sensor in /sys/bus/w1/devices/28-xxxx/w1_slave.
Redémarrer et vérifier le capteur dans /sys/bus/w1/devices/28-xxxx/w1_slave.
Expose temperature per Pi (run every minute via cron)
Exposer la température par Pi (via cron toutes les minutes)
<?php
$file = file_get_contents('/sys/bus/w1/devices/VOTRE_SERIE/w1_slave');
$lines = explode("\n", $file);
$a = explode(' ', $lines[1]);
$temp = str_replace('t=', '', $a[9]);
$temp = ($temp / 1000) + 0;
file_put_contents('/var/www/html/temp.html', $temp);
?>Collect centrally (run every minute on the central Pi)
Collecte centrale (toutes les minutes sur le Pi central)
<?php
function readTemp() {
return file_get_contents('http://IP_DU_PI/temp.html');
}
function saveTemp($temp) {
// INSERT INTO Bedroom (ComputerTime, Temperature) VALUES (time(), $temp)
}
saveTemp(readTemp());
?>Visualisation
Visualisation
