Sommario:

Ventola di raffreddamento automatizzata per Pi: 4 passaggi (con immagini)
Ventola di raffreddamento automatizzata per Pi: 4 passaggi (con immagini)

Video: Ventola di raffreddamento automatizzata per Pi: 4 passaggi (con immagini)

Video: Ventola di raffreddamento automatizzata per Pi: 4 passaggi (con immagini)
Video: INCREDIBILE, tutte le retro console del mondo su raspberry? guida ITALIANA 2024, Dicembre
Anonim
Ventola di raffreddamento automatizzata per Pi
Ventola di raffreddamento automatizzata per Pi

DescrizioneUn design semplice per controllare una mini ventola 5v con python, senza bisogno di breadboard, transistor ecc. Tutto ciò che serve sono pochi cavi e un relè a 1 canale. Avevo un relè a 2 canali che consiglio, dato che ha quasi lo stesso prezzo e in più ottieni un controller aggiuntivo. Uno script eseguito ogni ora controllerà la temperatura del pi e accenderà/spegnerà una ventola fino al raggiungimento della temperatura desiderata.

Introduzione Dato che l'estate è alle porte, il mio pi secondario sta diventando un po' troppo caldo per i miei gusti, quindi volevo rinfrescarlo un po' di tanto in tanto. Ovviamente potrei avere una ventola che soffia 24 ore su 24, 7 giorni su 7, ma a) ciò richiederebbe una breadboard e alcuni resistori, ecc. Perché non posso semplicemente collegarlo direttamente ai pin GPIO b) scrivere del codice che interagisce con "l'esterno" il mondo è più divertente:) ec) è davvero economico…tutto ciò di cui hai bisogno sono dei cavi e dei relè.

Divertiti e sentiti libero di commentare !

Passaggio 1: materiali necessari

Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario

- crontab / python installato sul tuo pi- Un raspberry pi con custodia - Mini ventola 5v (link) - Relè 2 canali (link) - Coppia di cavi femmina-femmina (link). Ne avevo solo 1, quindi ho usato un vecchio cavo audio DVD per il PC e quel cavo f2f extra per il pin del controller del relè.

Nota: il foro sulla parte superiore della mia custodia per lamponi era un po' più piccolo del solito, quindi ho dovuto usare un trapano per allargarlo un po'. Forse dovresti prendere una custodia con una ventola da 5 V già collegata, se non sei sicuro delle dimensioni della custodia.

Fase 2: Il Circuito - Assemblaggio

Il Circuito - Assemblaggio
Il Circuito - Assemblaggio
Il Circuito - Assemblaggio
Il Circuito - Assemblaggio
Il Circuito - Assemblaggio
Il Circuito - Assemblaggio
Il Circuito - Assemblaggio
Il Circuito - Assemblaggio

Come puoi vedere dall'immagine sopra, sto usando i pin 2, 6, 12, che sono tutti uguali per qualsiasi tipo di Raspberry Pi che potresti avere, quindi non devi preoccuparti del fatto che sto usando un Pi Modello B rev2.

Collegare i cavi nello stesso modo in cui lo sto facendo io.- Il 5v (pin2) va a VCC- Il GND (pin6) a GND- Il GPIO18 (pin2) va a IN1 Assicurati che il ponticello sul tuo relè sia impostato su: JD-VCC VCC.

Ora per il relè… La mia configurazione è un po' strana, lo so. Non volevo utilizzare una fonte di alimentazione esterna per avviare la ventola, quindi l'ho collegata anche al pi. Dovrai fare un piccolo taglio sia al cavo 5v che GND proveniente dal pi per collegare i cavi della ventola nello stesso modo in cui lo sto facendo. Puoi usare un saldatore e del nastro come ho fatto io. Non credo che ci sia motivo di preoccuparsi di brickare il tuo pi, perché solo il cavo di terra è collegato direttamente al pi. Se vedi bene l'immagine, l'interruttore del relè è collegato al cavo di alimentazione, il che significa che quando la ventola è spenta, anche la connessione diretta con il pi è 'aperta'. Quindi qualsiasi corrente elettrica che la ventola potrebbe produrre quando si spegne, non avrà modo di tornare al pi. Il motivo per cui sto usando quelle porte sul relè è perché il relè ha un piccolo led sopra di esso. Volevo vedere la luce rossa quando la ventola è accesa, quindi so quando il pi si sta raffreddando. Se vuoi, puoi usare le altre porte in modo che accada la cosa inversa. Ma probabilmente dovresti invertire i comandi GPIO nello script python (nelle funzioni fanON fan OFF mostrate nel passaggio successivo) per farlo funzionare … Vedrai cosa intendo quando ci arriviamo.

Passaggio 3: la sceneggiatura

Il copione
Il copione
Il copione
Il copione

Ora non impazzire per lo scripting… La scorsa settimana non conoscevo Python eppure sono riuscito a scrivere questo script leggendo e testando vari esempi là fuori. Conosco altri linguaggi di programmazione quindi non preoccuparti, non farò saltare in aria il tuo pi. Se ho usato (cosa che probabilmente ho fatto) alcune funzioni che qualcun altro ha scritto, mi scuso per non aver dato crediti, ma ho modificato questo script in modo molto, è fondamentalmente nuovo.

Istruzioni

1) Scarica l'allegato, oppure copialo/incollalo da pastebin qui e chiamalo fan.py

2) Posiziona lo script fan.py nella cartella /home/pi/

3) Eseguire: sudo chmod +x /home/pi/fan.py e sudo chown pi:pi /home/pi/fan.py

4) Supponendo che tu abbia crontab installato sul tuo pi esegui: crontab -e

5) In basso copia/incolla: 5 * * * * sudo python /home/pi/fan.py e salva il file. (Ctrl+X e Y)

Questo crontab eseguirà lo script ogni 1h5m. Lo script funzionerà anche come script autonomo… il che significa che oltre all'azione crontab automatizzata puoi attivare/disattivare manualmente la ventola da solo. Lo fai usando parametri in questo modo:

  • sudo python /home/pi/fan.py su or
  • sudo python /home/pi/fan.py off

Ho anche scritto una funzione di sicurezza nel caso in cui premi Ctrl+C mentre lo script è in esecuzione. Se lo fai, la ventola si spegnerà prima che lo script esca.

Quindi, come funziona?

Ogni ora lo script esegue e controlla la temperatura del pi. Se la temperatura è superiore a un valore X, la ventola si accenderà e rimarrà accesa fino a quando non si sarà raffreddata fino a un valore Y. Quando lo fa, lo script uscirà. Se per qualche motivo non raggiunge mai quella bassa temperatura e passa un'ora, la prossima volta che lo script viene eseguito "vedrà" che la ventola è ancora accesa e il secondo script si chiuderà… quindi usa valori di temperatura realistici se vuoi che la ventola effettivamente accendere/spegnere. In caso contrario, imposta solo alcuni valori ridicoli (come Y = 0 gradi Celsius) in modo che la ventola rimanga sempre accesa.) Se il tuo pi opera tra quei 2 valori (X, Y), significa che sta funzionando a temperature "accettate", quindi lo script uscirà solo quando controlla la temperatura ogni ora.

Spiegare alcuni valori

Nella parte superiore dello script ci sono alcune variabili globali. Ci sono le variabili che devi cambiare.

# Identifica quale pin controlla il relayFAN_PIN = 18 # la casella gialla es: GPIO18 # Controllo della temperatura. Avvia ventola se temp > 49C FAN_START = 49 # Controllo temperatura. Spegnimento sotto 28C FAN_END = 28

È abbastanza ovvio cosa fare qui. Se hai usato GPIO18 come ho fatto io, lascia qui 18, altrimenti cambia quel valore con il gpio che hai usato. FAN_START e FAN_END sono le temperature alte/basse che vuoi usare. Puoi anche inserire numeri float se vuoi, come 49,2

Nota:

Ricordi come ho impostato il mio relè? Se vedi le funzioni fanON e fanOFF noterai che sto impostando l'output gpio su False per accendere la ventola e True per spegnerla. Se hai scelto un'altra configurazione di gate sul relè, probabilmente dovrai invertire quei valori.

Passaggio 4: note finali

Note finali
Note finali

Mi scuso per le istruzioni dettagliate. Volevo coprire tutti i tipi di utenti. Probabilmente c'è un modo migliore per fare tutto questo, ma ho fatto del mio meglio con i materiali in mano e con la mia intelligenza nei circuiti e nel pitone.

Un piccolo codice bonus

Se vuoi un modo veloce per controllare la temperatura del tuo pi, crea un file chiamato temp nella cartella /usr/local/bin e poi copia incolla questo script all'interno:

pastebin.com/rUYqGjV5

esegui: chmod +x /usr/local/bin/temp per renderlo eseguibile.

Quindi digita semplicemente temp da qualsiasi cartella ti trovi per vedere la temperatura del tuo pi.

Consigliato: