
Raspberry Pi Smart Fan Control
controllare la velocità di una ventola per raffreddare il nostro Raspberry.
Creiamo uno file Phython dove preferiamo, ad esempio /home/pi/SFC.py
per cui apriamo una finestra del terminale e digitiamo:
sudo nano /home/pi/SFC.py
Ora riportiamo quanto segue all’interno dell’editor:
#!/usr/bin/pythonimport RPi.GPIO as GPIOimport timeimport os # Return CPU temperature as floatdef getCPUtemp(): cTemp = os.popen('vcgencmd measure_temp').readline() return float(cTemp.replace("temp=","").replace("'C\n",""))GPIO.setmode(GPIO.BCM)GPIO.setup(25,GPIO.OUT)GPIO.setwarnings(False)p=GPIO.PWM(25,100)p.start(100)time.sleep(1)while True: CPU_temp = getCPUtemp() if CPU_temp > 70.0: p.ChangeDutyCycle(100) elif CPU_temp > 60.0: p.ChangeDutyCycle(50) elif CPU_temp > 50.0: p.ChangeDutyCycle(30) elif CPU_temp > 45.0: p.ChangeDutyCycle(25) elif CPU_temp > 40.0: p.ChangeDutyCycle(20) elif CPU_temp > 35.0: p.ChangeDutyCycle(15) elif CPU_temp > 30.0: p.ChangeDutyCycle(10) else: p.ChangeDutyCycle(0) time.sleep(60)p.stop()GPIO.cleanup()
Per salvare il file premiamo la combinazione di tasti CTRL+O e per uscire dall’editor CTRL+X
Arrivati a questo punto dobbiamo rendere avviabile questo script all’avvio del nostro Raspberry Pi per cui digitiamo:
sudo nano /etc/rc.local
e aggiungiamo la seguente linea prima della scritta “exit 0”
su - pi -c "sudo python /home/pi/SFC.py &" &
Collegamenti

Componenti necessari:
- Un transistor NPN 2N2222A;
- Una resistenza da 110 Ohm;
- Una piccola Ventolina a 5v;
- una breadboard;
- qualche jumper cable;