Raspberry Pi e ventola di raffreddamento
Oggi voglio presentare un piccolo progetto scritto in Node.js per controllare tramite i GPIO del Raspberry Pi, una ventola posta direttamente sul SoC del Raspberry Pi.
Sul mercato è facile ormai infatti reperire case di questo tipo, con acclusa una ventolina a basso voltaggio:
Il progetto è molto semplice. Si suddivide in parte Hardware e parte Software. Nella prima si mostra lo schema di collegamento. Nella seconda la procedura per scaricare e installare il software per pilotare e gestire la ventola in modo corretto. Lo scopo è quello di avere un sistema in grado di attivare in modo dinamico e controllato, la ventola qualora raggiunga una certa temperatura di soglia.
NB. Come ben noto, il raspberry pi non ha necessità di dissipatori o ventole aggiuntive, guide di questo genere hanno una finalità puramente didattica per lo più.
Hardware
Il progetto deve poter pilotare una ventola in modo dinamico, a “comando”. Dunque è necessario effettuare un collegamento a ponte utilizzando un transistor. Infatti non possiamo collegare il polo positivo della ventola direttamente a un pin GPIO, perchè il voltaggio e l’amperaggio fornito non sono sufficienti ad alimentarla. Rischieremmo di danneggiare la board.
Utilizzare un transistor è la strada giusta. Questo progetto funziona con qualsiasi versione di Raspberry Pi si stia utilizzando.
– Il modello di transistor per cui ho optato è il 2N7000.
– La ventola invece ha questa tensione di funzionamento: 5V 0.2A.
Lo schema di collegamento è il seguente:
Raccomando prima di effettuare eventuali saldature e collegamenti definitivi, di testare correttamente il funzionamento del sistema. Infatti è importante che il transistor sia orientato nel verso giusto!
Software
Per installare il software innanzitutto è importante verificare di avere Node.js installato sul proprio RPi.
Basta lanciare da terminale il comando node -v
, se la risposta è un numero di versione, allora potete procedere. Altrimenti se il comando è sconosciuto dovete assicurarvi di installare Node.js per piattaforme ARM.
Installato Node.js siamo pronti a proseguire.
Cloniamo la repository che contiene il codice sorgente, direttamente da github. Se volete clonare la repo sul desktop allora lanciate prima il comando cd /home/pi/Desktop
, dopodichè possiamo lanciare il comando che avvierà il download: git clone https://[email protected]/roccomuso/rpi-fan.git
Il software è pronto e scaricato sul vostro Desktop. Dentro la cartella troverete un file di configurazione chiamato config.json
che conterrà voci del tipo:
"PIN_NUMBER" : 18, // Il GPIO a cui è connesso la base del transistor "REFRESH_TIME" : 60, // tempo di controllo della temperatura, 60 secondi di default. "TEMPERATURE_THRESHOLD" : 40.0, // soglia temperatura, oltre il quale viene attivata la ventola "WEB_SERVER": true, // se impostato su true aprirà un web server sulla porta specificata "SERVER_PORT": 4949 // porta di apertura del web server. |
Se avete dubbi su quale sia il pin GPIO giusto a cui far riferimento, date un’occhiata alle varie mappature dei pin, in base al vostro modello di RPi specifico (nel mio caso Raspberry Pi 2 pinout).
Se l’impostazione del server è impostata a ‘true’, potrete vedere i vari log di esecuzione e delle informazioni generiche sulla temperatura direttamente all’indirizzo: http://ip_address:SERVER_PORT/
Eseguiamolo all’avvio
Per aggiungere la possibilità che questa applicazione venga eseguita all’avvio del sistema, è sufficiente da terminale lanciare il comando:
crontab -e
Dopodichè aggiungere la seguente linea:
@reboot /usr/local/bin/node /home/pi/Desktop/rpi-fan/index.js >/tmp/fan_output 2>/tmp/fan_error |
In particolare gli ultimi 2 parametri servono a indicare di scrivere rispettivamente l’output del programma e gli output di errore nei file indicati dentro la cartella /tmp
.
Se avete incontrato difficoltà, non esitate a commentare. Se lo avete trovato utile, condividete pure 😉
Commenti