RPi DS18B20 fan control ti mostra come leggere la temperatura da una sonda DS18B20 con python su Raspberry Pi dal Model 1 A,A+,B,B+ o Raspberry Pi 2 o Raspberry Pi3
puoi trovare tutto il software condiviso sul mio GitHub.
Per la realizzazione dei collegamenti, e parte del codice, ho preso spunto da questo tutorial.
Install RPi DS18B20 fan control
Il primo passo è creare una directory, la mia l’ho creata sotto /root/, in cui copiare i due file:
- launcher.sh
- fan_control.py
ricordati di concedere loro i permessi necessari per potervi accedere e poter essere lanciati.
Osservando il file fan_control.py vedrai nelle prime linee:
- il GPIO ( 18 ) a cui è connessa la ventola di raffreddamento;
- la soglia di temperatura minima e massima;
- il nome del device “28-…………” che dipende dal tuo sistema;
questi sono i principali valori da modificare per adattare lo script python alle tue esigenze:
il launcher.sh è lo script che si preoccuperà di mantenere sempre attivo il controllo delle ventole mediante il fan_control.py
l’unica linea da modificare potrebbe essere quella relativa al path “/root/fanControl” che devi personalizzare con il percorso corretto in cui hai inserito lo script python fan_control.py
Configurazione del sistema operativo
Per consentire al sistema operativo di leggere la sonda di temperatura DS18B20 ( come sai è una one wire ) abilitando il corretto GPIO devi aggiungere al file /boot/config.txt la seguente linea:
dtoverlay=w1-gpio
come mostrato in figura:
che ti abilita alla ricezione sul GPIO 4 ( default ) come descritto nel paragrafo 2.2.6 PARAMETERS WITH MULTIPLE TARGETS sul sito ufficiale Raspberry.
Se volessi abilitare il Device Tree one wire ( w1 ) su un altro pin X potresti scrivere:
dtoverlay=w1-gpio,gpiopin=x
in cui x è il numero del pin su cui desideri abilitarlo; se volessi abilitarlo con una resistenza di pullup dovrai scrivere:
dtoverlay=w1-gpio-pullup,gpiopin=x,pullup=y
in cui x è il pin su cui colleghi la sonda e y il pin da utilizzare come pullup.
Ricordati di eseguire il reboot.
Al riavvio potresti non trovare la sonda nel path /sys/bus/w1/devices/
devi prima caricare i moduli relativi al w1-gpio e w1-therm manualemente:
rieseguendo un ls -la /sys/bus/w1/devices/ dovresti vedere il nuovo device che inizia per “28-” il numero completo del device dovrai inserirlo nella linea dev_name:
Avvio del RPi DS18B20 fan control al boot
Per avviare al reboot lo script che controlla e lancia il fan_control.py devi aggiungere nel crontab di root la seguente linea:
@reboot /path_fan_control/launcher.sh > /path_fan_control/launcher.log 2>&1
come mostrato in figura:
controlla la presenza della linea eseguendo il comando “crontab -l”:
se tutto è pronto puoi eseguire l’ultimo reboot il cui scopo è solo controllare che al riavvio lo script launcher.sh vega correttamente eseguito.
Dopo qualche minuto troverai nella dir /root/fanControl/ il file con il datalog delle temperature e la ventola che inizierà a funzionare quando la temperatura si farà bollente 🙂