Taula de continguts:
- Subministraments
- Pas 1: Construir el circuit
- Pas 2: registreu la temperatura de la CPU amb ThingSpeak
- Pas 3: Obtenir la temperatura de la CPU des d’un Raspberry Pi mitjançant Python
- Pas 4: Control del ventilador en funció de la temperatura
- Pas 5: codi final de Python
- Pas 6: supervisar les dades mitjançant Thingspeak Cloud
- Pas 7: executeu el script Python a l'inici
Vídeo: Control intel·ligent del ventilador de Raspberry Pi mitjançant Python i Thingspeak: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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
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
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.
- Aneu al següent enllaç i inscriviu-vos a ThingSpeak.
- Després de l'activació del compte, inicieu la sessió.
- Aneu a Canals -> Els meus canals
- Feu clic al botó Nou canal.
- Introduïu el nom, la descripció i els camps de les dades que voleu penjar
- 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.
- Inicieu sessió a la vostra placa Raspberry PI
- Executeu l'ordre següent al terminal
python3 cpu.py
Pas 6: supervisar les 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:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint la comoditat
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Jardineria intel·ligent i agricultura intel·ligent basades en IoT mitjançant ESP32: 7 passos
Jardineria intel·ligent i agricultura intel·ligent basades en l’IoT que utilitzen ESP32: el món canvia a mesura que l’agricultura passa. Avui en dia, la gent integra electrònica en tots els camps i l’agricultura no n’és una excepció. Aquesta fusió d'electrònica a l'agricultura està ajudant els agricultors i les persones que gestionen els jardins