«

»

Giu 05

Stampa Articolo

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 🙂

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/rpi-ds18b20-fan-control.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>