Taula de continguts:

Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak: 7 passos
Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak: 7 passos

Vídeo: Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak: 7 passos

Vídeo: Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak: 7 passos
Vídeo: Switch Game Life Hack!! 😱 #nintendo #switch #pokemon #nostalgia #retro #trending #shorts #ytshorts 2024, De novembre
Anonim
Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak
Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak

Breu visió general

Per defecte, el ventilador està directament connectat al GPIO; això implica el seu funcionament constant. Tot i el funcionament relativament silenciós del ventilador, el seu funcionament continu no és un ús efectiu d’un sistema de refrigeració actiu. Al mateix temps, el funcionament constant d’un ventilador pot resultar molest. A més, si Raspberry Pi està apagat, el ventilador continuarà funcionant si l’alimentació està connectada.

En aquest article es mostrarà com, mitjançant manipulacions senzilles i no complicades, converteixen un sistema de refrigeració existent en un sistema intel·ligent, que només s’activarà quan realment el processador ho necessiti. El ventilador només s'encendrà quan hi hagi un ús intens, reduint així el consum d'energia i el soroll del ventilador. També amplieu la vida del ventilador mantenint-lo apagat quan no sigui necessari.

Què aprendràs

Com implementar un script Python per controlar un ventilador en funció de la temperatura actual de la CPU Raspberry mitjançant el control On-Off amb histèresi de temperatura. Com transportar dades des del RaspberryPi a Things Speak Cloud.

Subministraments

Els components necessaris per a aquest projecte són els següents

  • Ordinador Raspberry Pi 4 Model B 4 GB
  • Transistor NPN S8050330ohms resistència
  • Armor Metall Case d'alumini amb ventiladors dobles per a Raspberry Pi
  • Cables de pont
  • Taula de pa

Pas 1: Construir el circuit

Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit

El circuit és força senzill. L'alimentació del ventilador es talla mitjançant el transistor NPN. En aquesta configuració, el transistor actua com un interruptor de banda baixa. La resistència només es requereix per limitar el corrent a través de GPIO. El GPIO de Raspberry Pi té una potència màxima de 16 mA. He utilitzat 330 ohms, cosa que ens proporciona un corrent base d’aproximadament (5-0,7) / 330 = 13 mA. He seleccionat un transistor NPN S8050, de manera que canviar una càrrega de 400 mA dels dos ventiladors no és cap problema.

Pas 2: registreu la temperatura de la CPU amb ThingSpeak

Registre de la temperatura de la CPU amb ThingSpeak
Registre de la temperatura de la CPU amb ThingSpeak

ThingSpeak és una plataforma per a projectes basats en el concepte d'Internet de les coses. Aquesta plataforma us permet crear aplicacions basades en dades recopilades de sensors. Les principals característiques de ThingSpeak inclouen: recollida de dades en temps real, processament de dades i visualització. L'API ThingSpeak no només permet enviar, emmagatzemar i accedir a dades, sinó que també proporciona diversos mètodes estadístics per processar-los.

ThingSpeak pot integrar dispositius i serveis populars com:

  • Arduino
  • Gerd pii
  • oBridge / RealTime.io
  • Imp. Elèctric
  • Aplicacions mòbils i web
  • Xarxes socials
  • Anàlisi de dades a MATLAB

Abans de començar, necessiteu un compte a ThingSpeak.

  1. Aneu al següent enllaç i inscriviu-vos a ThingSpeak.
  2. Després de l'activació del compte, inicieu la sessió.
  3. Aneu a Canals -> Els meus canals
  4. Feu clic al botó Nou canal.
  5. Introduïu el nom, la descripció i els camps de les dades que voleu penjar
  6. Feu clic al botó Desa el canal per desar tots els vostres paràmetres.

Necessitem una clau API, que posteriorment afegirem al codi python per pujar la temperatura de la nostra CPU al núvol Thingspeak.

Feu clic a la pestanya Claus API per obtenir la clau API API

Un cop tingueu la clau API d'escriptura, ja estem a punt de carregar les nostres dades.

Pas 3: Obtenir la temperatura de la CPU des d’un Raspberry Pi mitjançant Python

El guió es basa en recuperar la temperatura del processador, que es produeix cada segon. Es pot obtenir des del terminal executant l'ordre vcgencmd amb el paràmetre measure_temp.

vcgencmd mesure_temp

S'ha utilitzat la biblioteca Subprocess.check_output () per executar l'ordre i després s'utilitza l'expressió regular per extreure el valor real de la cadena retornada.

des de la importació de subprocés check_output

de re importació findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp) print (get_temp ())

Un cop obtingut el valor de la temperatura, cal enviar les dades al núvol de ThingSpeak. Utilitzeu la vostra clau API d'escriptura per canviar la variable myApi al codi Python següent.

des de la sol·licitud d’importació d’urllib

des de la importació de la importació de la importació del temps de repòs des de la importació del subprocés 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) excepte KeyboardInterrupt: print ("Surt premut Ctrl + C")

Pas 4: Control del ventilador en funció de la temperatura

L'escriptura Python que es mostra a continuació implementa una lògica que engega el ventilador quan la temperatura puja per sobre de la temperatura i s'apaga només quan la temperatura baixa per sota del llindar. D'aquesta manera, el ventilador no s'encén i s'apaga ràpidament.

importar RPi. GPIO com a 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 threshold = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, inicial = 0) mentre que True: temp = get_temp () if temp> tempOn i no pinState o temp <tempOn - threshold and pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) excepte KeyboardInterrupt: print ("Surt premut Ctrl + C") excepte: print ("Altres excepcions") print ("--- Inicia dades d'excepció:") traceback.print_exc (límit = 2, file = sys.stdout) print ("--- Data d'excepció final:") finalment: print ("CleanUp") GPIO.cleanup () print ("Fi del programa")

Pas 5: codi final de Python

El codi principal de Python es pot trobar al meu compte de GitHub al següent enllaç. Recordeu posar la vostra pròpia clau d'API d'escriptura.

  1. Inicieu sessió a la vostra placa Raspberry PI
  2. Executeu l'ordre següent al terminal

python3 cpu.py

Pas 6: supervisar les dades mitjançant Thingspeak Cloud

Monitorització de dades mitjançant Thingspeak Cloud
Monitorització de dades mitjançant Thingspeak Cloud

Al cap d’un temps, obriu el canal a ThingSpeak i hauríeu de veure la temperatura que puja al núvol de Thingspeak en temps real.

Pas 7: executeu el script Python a l'inici

Per fer-ho, al final del fitxer /etc/rc.local:

sudo nano /etc/rc.local

Heu de col·locar l'ordre d'inici de script davant de la sortida de línia 0:

sudo python /home/pi/cpu.py &

La presència del símbol & al final de l'ordre és obligatòria, ja que és un indicador per iniciar el procés en segon pla. Després del reinici, l'script s'executarà automàticament i el ventilador s'encendrà quan es compleixin les condicions especificades.

Recomanat: