Sommario:
- Forniture
- Passaggio 1: costruire il circuito
- Passaggio 2: registra la temperatura della CPU con ThingSpeak
- Passaggio 3: ottenere la temperatura della CPU da un Raspberry Pi utilizzando Python
- Passaggio 4: controllo della ventola in base alla temperatura
- Passaggio 5: codice Python finale
- Passaggio 6: monitoraggio dei dati tramite Thingspeak Cloud
- Passaggio 7: eseguire lo script Python all'avvio
Video: Controllo intelligente della ventola Raspberry Pi utilizzando Python e Thingspeak: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Breve panoramica
Per impostazione predefinita, la ventola è collegata direttamente al GPIO - questo implica il suo funzionamento costante. Nonostante il funzionamento relativamente silenzioso della ventola, il suo funzionamento continuo non è un uso efficace di un sistema di raffreddamento attivo. Allo stesso tempo, il funzionamento costante di una ventola può essere semplicemente fastidioso. Inoltre, se Raspberry Pi è spento, la ventola continuerà a funzionare se l'alimentazione è collegata.
Questo articolo mostrerà come, utilizzando manipolazioni semplici e non complicate, trasformare un sistema di raffreddamento esistente in uno intelligente, che verrà attivato solo quando il processore ne avrà davvero bisogno. La ventola si accende solo in caso di utilizzo intenso, riducendo così il consumo energetico e il rumore della ventola. Inoltre, prolunga la durata della ventola tenendola spenta quando non è necessaria.
Cosa imparerai
Come implementare uno script Python per controllare una ventola in base alla temperatura attuale della CPU Raspberry utilizzando il controllo On-Off con isteresi della temperatura. Come trasportare i dati dal tuo RaspberryPi a Things Speak Cloud.
Forniture
I componenti che ti verranno richiesti per questo progetto sono i seguenti
- Computer Raspberry Pi 4 Modello B 4GB
- Resistore a transistor NPN S8050330ohm
- Custodia metallica in alluminio Armor con doppia ventola per Raspberry Pi
- Cavi jumper
- tagliere
Passaggio 1: costruire il circuito
Il circuito è piuttosto semplice. L'alimentazione alla ventola viene interrotta utilizzando il transistor NPN. In questa configurazione, il transistor agisce come un interruttore low-side. Il resistore è richiesto solo per limitare la corrente tramite GPIO. Il GPIO del Raspberry Pi ha un'uscita di corrente massima di 16 mA. Ho usato 330 ohm che ci danno una corrente di base di circa (5-0,7)/330 = 13 mA. Ho selezionato un transistor NPN S8050, quindi la commutazione di un carico di 400 mA da entrambe le ventole non è un problema.
Passaggio 2: registra la temperatura della CPU con ThingSpeak
ThingSpeak è una piattaforma per progetti basati sul concetto di Internet of Things. Questa piattaforma consente di creare applicazioni basate sui dati raccolti dai sensori. Le caratteristiche principali di ThingSpeak includono: raccolta dati in tempo reale, elaborazione e visualizzazione dei dati. ThingSpeak API non solo consente di inviare, archiviare e accedere ai dati, ma fornisce anche vari metodi statistici per elaborarli.
ThingSpeak può integrare dispositivi e servizi popolari come:
- Arduino
- Pii al lampone
- oBridge / RealTime.io
- Imp elettrico
- Applicazioni mobili e Web
- Social networks
- Analisi dei dati in MATLAB
Prima di iniziare, hai bisogno di un account su ThingSpeak.
- Vai al seguente link e iscriviti a ThingSpeak.
- Dopo l'attivazione dell'account, accedi.
- Vai su Canali -> I miei canali
- Fare clic sul pulsante Nuovo canale.
- Inserisci il nome, la descrizione e i campi dei dati che vuoi caricare
- Fare clic sul pulsante Salva canale per salvare tutte le impostazioni.
Abbiamo bisogno di una chiave API, che aggiungeremo in seguito al codice Python per caricare la nostra temperatura della CPU sul cloud di Thingspeak.
Fare clic sulla scheda Chiavi API per ottenere la chiave API di scrittura
Una volta che hai la chiave API di scrittura, siamo quasi pronti per caricare i nostri dati.
Passaggio 3: ottenere la temperatura della CPU da un Raspberry Pi utilizzando Python
Lo script si basa sul recupero della temperatura del processore, che avviene ogni secondo. Può essere ottenuto dal terminale eseguendo il comando vcgencmd con il parametro measure_temp.
vcgencmd measure_temp
La libreria Subprocess.check_output() è stata utilizzata per eseguire il comando e quindi utilizzando l'espressione regolare per estrarre il valore effettivo dalla stringa restituita.
dal sottoprocesso import check_output
from re import findalldef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) print(get_temp())
Dopo che il valore della temperatura è stato recuperato, i dati devono essere inviati a ThingSpeak cloud. Usa la tua chiave API di scrittura per modificare la variabile myApi nel codice Python sottostante.
dalla richiesta di importazione urllib
from re import findall from time import sleep from subprocess import check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s' % myAPIdef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) try: while True: temp = get_temp() conn = request.urlopen(baseURL + '&field1=%s' % (temp)) print(str(temp)) conn.close() sleep(1) tranne KeyboardInterrupt: print ("Esci premuto Ctrl+C")
Passaggio 4: controllo della ventola in base alla temperatura
Lo script Python mostrato di seguito implementa la logica che accende la ventola quando la temperatura sale sopra il tempOn e si spegne solo quando la temperatura scende sotto la soglia. In questo modo, la ventola non si accenderà e si spegnerà rapidamente.
importa RPi. GPIO come GPIO
import sys from re import findall from time import sleep from subprocess import check_output def get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+ ', temp)[0]) return(temp) try: GPIO.setwarnings(False) tempOn = 50 soglia = 10 controlPin = 14 pinState = False GPIO.setmode(GPIO. BCM) GPIO.setup(controlPin, GPIO. OUT, initial=0) while True: temp = get_temp() if temp > tempOn and not pinState o temp < tempOn - threshold e pinState: pinState = not pinState GPIO.output(controlPin, pinState) print(str(temp) + " " + str(pinState)) sleep(1) tranne KeyboardInterrupt: print("Esci premuto Ctrl+C") tranne: print("Other Exception") print("--- Start Exception Data:") traceback.print_exc(limit=2, file=sys.stdout) print("--- End Exception Data:") infine: print("CleanUp") GPIO.cleanup() print("End of program")
Passaggio 5: codice Python finale
Il codice Python principale può essere trovato sul mio account GitHub nel seguente link. Ricorda di inserire la tua chiave API di scrittura.
- Accedi alla tua scheda Raspberry PI
- Esegui il seguente comando sul terminale
python3 cpu.py
Passaggio 6: monitoraggio dei dati tramite Thingspeak Cloud
Dopo un po', apri il tuo canale su ThingSpeak e dovresti vedere la temperatura che si carica nel cloud di Thingspeak in tempo reale.
Passaggio 7: eseguire lo script Python all'avvio
Per fare ciò, alla fine del file /etc/rc.local:
sudo nano /etc/rc.local
Devi inserire il comando di avvio dello script davanti alla riga exit 0:
sudo python /home/pi/cpu.py &
La presenza del simbolo & alla fine del comando è obbligatoria, poiché è un flag per avviare il processo in background. Dopo il riavvio, lo script verrà eseguito automaticamente e la ventola si accenderà quando le condizioni specificate saranno soddisfatte.
Consigliato:
Controllore automatico della luce e della ventola della stanza con contatore visitatori bidirezionale: 3 passaggi
Controllore automatico della luce e della ventola della stanza con contatore visitatori bidirezionale: spesso vediamo contatori visitatori in stadi, centri commerciali, uffici, aule, ecc. Come contano le persone e accendono o spengono la luce quando nessuno è all'interno? Oggi siamo qui con il progetto di controllo automatico della luce ambientale con contatore visitatori bidirezionale
Raspberry Pi Box di ventola di raffreddamento con indicatore della temperatura della CPU: 10 passaggi (con immagini)
Raspberry Pi Box di raffreddamento FAN con indicatore della temperatura della CPU: avevo introdotto il circuito dell'indicatore della temperatura della CPU raspberry pi (di seguito come RPI) nel progetto precedente. Il circuito mostra semplicemente RPI 4 diversi livelli di temperatura della CPU come segue.- LED verde acceso quando La temperatura della CPU è entro 30~
Ventola rotante con servomotore e controllo della velocità: 6 passaggi
Ventola rotante utilizzando servomotore e controllo della velocità: In questo tutorial impareremo come ruotare una ventola con velocità regolabile utilizzando servomotore, potenziometro, arduino e Visuino.Guarda il video
Controller intelligente della ventola: 9 passaggi
Smart Fan Controller: questo progetto è stato creato per soddisfare l'esigenza di controllare una ventola in un recinto interpretando le informazioni sulla temperatura corrente. Ha l'obiettivo di pilotare una ventola a 2 pin o 3 pin mediante modulazione della larghezza di impulso con un budget ridotto e dovrebbe essere controllato
Pad di raffreddamento per laptop fai da te - Impressionanti trucchi di vita con ventola della CPU - Idee creative - Ventola del computer: 12 passaggi (con immagini)
Pad di raffreddamento per laptop fai da te | Impressionanti trucchi di vita con ventola della CPU | Idee creative | Fan del computer: devi guardare questo video fino alla fine. per capire il video