Indholdsfortegnelse:

Smart styring af Raspberry Pi -ventilator ved hjælp af Python & Thingspeak: 7 trin
Smart styring af Raspberry Pi -ventilator ved hjælp af Python & Thingspeak: 7 trin

Video: Smart styring af Raspberry Pi -ventilator ved hjælp af Python & Thingspeak: 7 trin

Video: Smart styring af Raspberry Pi -ventilator ved hjælp af Python & Thingspeak: 7 trin
Video: 10 Signs Your Body Is Crying Out For Help 2024, November
Anonim
Smart styring af Raspberry Pi Fan ved hjælp af Python & Thingspeak
Smart styring af Raspberry Pi Fan ved hjælp af Python & Thingspeak

Kort overblik

Som standard er blæseren forbundet direkte til GPIO - dette indebærer dens konstante drift. På trods af ventilatorens relativt stille drift er dens kontinuerlige drift ikke en effektiv brug af et aktivt kølesystem. På samme tid kan den konstante drift af en blæser bare være irriterende. Hvis Raspberry Pi også er slukket, fungerer blæseren stadig, hvis strømmen er tilsluttet.

Denne artikel viser, hvordan man ved hjælp af enkle og ikke komplicerede manipulationer gør et eksisterende kølesystem til et smart, som kun tændes, når processoren virkelig har brug for det. Ventilatoren ville kun blive tændt, når der er stor brug, hvilket reducerer ventilatorens strømforbrug og støj. Forlænger også ventilatorens levetid ved at holde den slukket, når den ikke er nødvendig.

Hvad du vil lære

Sådan implementeres et Python-script til at styre en blæser baseret på den aktuelle temperatur på Raspberry CPU ved hjælp af On-Off-kontrol med temperaturhysterese. Sådan transporteres data fra din RaspberryPi til Things Speak Cloud.

Forbrugsvarer

De komponenter, du skal bruge til dette projekt, er som følger

  • Raspberry Pi 4 Computer Model B 4GB
  • NPN transistor S8050330ohms modstand
  • Armor Aluminium Metal Case med Dual Fans til Raspberry Pi
  • Jumper kabler
  • Brødbræt

Trin 1: Opbygning af kredsløbet

Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet

Kredsløbet er ret simpelt. Strømmen til blæseren afbrydes ved hjælp af NPN -transistor. I denne konfiguration fungerer transistoren som en lavsideswitch. Modstand er kun påkrævet for at begrænse strømmen gennem GPIO. Raspberry Pi’s GPIO har en maksimal strømudgang på 16mA. Jeg brugte 330 ohm, hvilket giver os en basisstrøm på ca. (5-0,7)/330 = 13mA. Jeg valgte en NPN transistor S8050, så det er ikke noget problem at skifte en 400mA belastning fra begge ventilatorer.

Trin 2: Log CPU -temperatur med ThingSpeak

Log CPU -temperatur med ThingSpeak
Log CPU -temperatur med ThingSpeak

ThingSpeak er en platform for projekter baseret på Internet of Things -konceptet. Denne platform giver dig mulighed for at bygge applikationer baseret på data indsamlet fra sensorer. Hovedtrækkene i ThingSpeak omfatter: dataindsamling i realtid, databehandling og visualisering. ThingSpeak API giver dig ikke kun mulighed for at sende, gemme og få adgang til data, men giver også forskellige statistiske metoder til behandling af dem.

ThingSpeak kan integrere populære enheder og tjenester såsom:

  • Arduino
  • Hindbær pii
  • oBridge / RealTime.io
  • Elektrisk imp
  • Mobil- og webapplikationer
  • Sociale netværk
  • Dataanalyse i MATLAB

Inden vi starter, har du brug for en konto på ThingSpeak.

  1. Gå til følgende link, og tilmeld dig ThingSpeak.
  2. Efter din kontoaktivering skal du logge ind.
  3. Gå til Kanaler -> Mine kanaler
  4. Klik på knappen Ny kanal.
  5. Indtast navn, beskrivelse og felter for de data, du vil uploade
  6. Klik på knappen Gem kanal for at gemme alle dine indstillinger.

Vi har brug for en API -nøgle, som vi senere vil tilføje til python -kode for at uploade vores CPU -temperatur til Thingspeak -skyen.

Klik på fanen API -nøgler for at få Skriv API -nøglen

Når du har Skriv API -nøglen, er vi næsten klar til at uploade vores data.

Trin 3: Hent CPU -temperaturen fra en Raspberry Pi ved hjælp af Python

Scriptet er baseret på en hentning af processortemperaturen, som forekommer hvert sekund. Det kan hentes fra terminalen ved at køre kommandoen vcgencmd med parameteren_temp.

vcgencmd måle_temp

Subprocess.check_output () bibliotek blev brugt til at udføre kommandoen og derefter bruge regulært udtryk til at udtrække den faktiske værdi fra den returnerede streng.

fra underprocesimport check_output

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

Efter at temperaturværdien er hentet, skal data sendes til ThingSpeak -skyen. Brug din Write API -nøgle til at ændre myApi -variablen i nedenstående Python -kode.

fra urllib importanmodning

fra re import findall fra tid import sleep fra subproces 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) prøv: mens True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) undtagen KeyboardInterrupt: print ("Afslut trykket Ctrl+C")

Trin 4: Styring af blæseren baseret på temperatur

Python -script vist nedenfor implementerer logik, der tænder blæseren, når temperaturen stiger over tempOn og slukkes, når temperaturen falder under tærsklen. På denne måde tænder og slukker blæseren ikke hurtigt.

importer RPi. GPIO som GPIO

import sys fra re import findall fra tid import sleep fra subproces 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 tærskel = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) mens True: temp = get_temp () if temp> tempOn og ikke pinState eller temp <tempOn - tærskel og pinState: pinState = ikke pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) undtagen KeyboardInterrupt: print ("Exit presset Ctrl+C") undtagen: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") finally: print ("CleanUp") GPIO.cleanup () print ("Programslutt")

Trin 5: Endelig Python -kode

Hovedpythonkoden kan findes på min GitHub -konto i det følgende link. Husk at sætte din egen Write API -nøgle.

  1. Log ind på dit Raspberry PI -kort
  2. Kør følgende kommando på terminalen

python3 cpu.py

Trin 6: Overvågning af data via Thingspeak Cloud

Overvågning af data via Thingspeak Cloud
Overvågning af data via Thingspeak Cloud

Efter et stykke tid skal du åbne din kanal på ThingSpeak, og du skal se temperaturen uploades til Thingspeak-skyen i realtid.

Trin 7: Kør Python -scriptet ved opstart

For at gøre dette i slutningen af filen /etc/rc.local:

sudo nano /etc/rc.local

Du skal placere scriptstartkommandoen foran linjeudgang 0:

sudo python /home/pi/cpu.py &

Tilstedeværelsen af & -symbolet i slutningen af kommandoen er obligatorisk, da det er et flag til at starte processen i baggrunden. Efter genstart kører scriptet automatisk, og ventilatoren tændes, når de angivne betingelser er opfyldt.

Anbefalede: