RPi DS18B20 fan control

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

RPi DS18B20 fan control

 

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

RPi DS18B20 fan control create dir

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: 

RPi DS18B20 fan control view fan_control

il launcher.sh è lo script che si preoccuperà di mantenere sempre attivo il controllo delle ventole mediante il fan_control.py

RPi DS18B20 fan control launcher

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: 

RPi DS18B20 fan control add config.txt

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/

RPi DS18B20 fan control list devices

devi prima caricare i moduli relativi al w1-gpio e w1-therm manualemente:

RPi DS18B20 fan control manual modprobe w1-gpio w1-therm

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:

RPi DS18B20 fan control modify device 28-*

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:

RPi DS18B20 fan control edit crontab root

controlla la presenza della linea eseguendo il comando “crontab -l”:

RPi DS18B20 fan control 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 🙂

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/rpi-ds18b20-fan-control.html

Lascia un commento

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.