Certamente la tua domanda ha risposta affermativa (altrimenti a che servirebbe un Raspberry?) Puoi accenderla o spegnerla in remoto (è come accendere o spegnere un LED) o variarne la velocità di continuo sfruttando il PWM (però se hai una
ventola che a 3,3V esprime il suo massimo). E puoi fare in modo che lo faccia in base alla temperatura.
Ma non puoi collegarla direttamente a un pin del GPIO, perchè questi emettono una corrente massima di circa 16mA, e una
ventola, solitamente, assorbe ben di più (vedi cosa c'è scritto sulla tua).
Per questo si interpone almeno un transistor, che fa da "pilota" della
ventola, amplificando la corrente che viene emessa verso di essa.
Sempre sottolineando che una
ventola su Raspberry a mio modestissimo parere è una delle cose più inutili del mondo, a meno che questo non sia appiccicato a un forno, o chiuso in un case blindato a lavorare h24 al 100%, puoi comandarla con uno script Python veramente basico.
Codice:
#!/usr/bin/python
#ventola controllata da temperatura CPU
#importo le librerie
from gpiozero import PWMLED
import time
import os
# Funzione per prendere la temperatura
def getCPUtemp():
cTemp = os.popen('vcgencmd measure_temp').readline()
return float(cTemp.replace("temp=","").replace("'C\n",""))
#impostazioni
ventola = [PWMLED(15)] # pin in uso
# la ventola si accende oltre i 50 gradi, per step, dal 50% a 50 gradi
# fino al 100% a 70 gradi e oltre
#ciclo
while True:
CPU_temp = getCPUtemp()
if CPU_temp > 50.0:
if CPU_temp < 55.0:
ventola.value = 0,5
elif CPU_temp >= 55 and < 60:
ventola.value = 0,625
elif CPU_temp >= 60 and < 65:
ventola.value = 0,75
elif CPU_temp >= 65 and < 70:
ventola.value = 0,875
elif CPU_temp >= 70:
ventola.value = 1
elif ventola.value = 0
time.sleep(60)
lo ho scritto al volo, non provato (non ho una
ventola...) ma dovrebbe funzionare