Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Bygg kretsen
- Trinn 2: Logg CPU -temperatur med ThingSpeak
- Trinn 3: Få CPU -temperaturen fra en Raspberry Pi ved hjelp av Python
- Trinn 4: Kontrollere viften basert på temperatur
- Trinn 5: Endelig Python -kode
- Trinn 6: Overvåke data via Thingspeak Cloud
- Trinn 7: Kjør Python -scriptet ved oppstart
Video: Smart kontroll av Raspberry Pi -vifte ved hjelp av Python & Thingspeak: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Kort overblikk
Som standard er viften koblet direkte til GPIO - dette innebærer konstant drift. Til tross for den relativt stille driften av viften, er dens kontinuerlige drift ikke en effektiv bruk av et aktivt kjølesystem. Samtidig kan den konstante driften av en vifte bare være irriterende. Hvis Raspberry Pi også er slått av, vil viften fortsatt fungere hvis strømmen er tilkoblet.
Denne artikkelen viser hvordan man ved hjelp av enkle og ikke kompliserte manipulasjoner gjør et eksisterende kjølesystem til et smart, som bare slås på når prosessoren virkelig trenger det. Viften vil bare slås på når det er mye bruk, og dermed redusere vifteens strømforbruk og støy. Forlenger også viftelivet ved å holde den av når den ikke trengs.
Hva du vil lære
Hvordan implementere et Python-script for å kontrollere en vifte basert på gjeldende temperatur på Raspberry CPU ved å bruke On-Off-kontroll med temperaturhysterese. Hvordan transportere data fra RaspberryPi til Things Speak Cloud.
Rekvisita
Komponentene du trenger for dette prosjektet er som følger
- Raspberry Pi 4 datamaskin modell B 4 GB
- NPN transistor S8050330ohms motstand
- Armour Aluminium Metal Case med doble vifter for Raspberry Pi
- Hoppekabler
- Brødbrett
Trinn 1: Bygg kretsen
Kretsen er ganske enkel. Strømmen til viften kuttes ved bruk av NPN -transistor. I denne konfigurasjonen fungerer transistoren som en lavsidesbryter. Motstand er bare nødvendig for å begrense strømmen gjennom GPIO. Raspberry Pi's GPIO har en maksimal strømutgang på 16mA. Jeg brukte 330 ohm som gir oss en basestrøm på ca (5-0,7)/330 = 13mA. Jeg valgte en NPN -transistor S8050, så det er ikke noe problem å bytte en 400mA belastning fra begge viftene.
Trinn 2: Logg CPU -temperatur med ThingSpeak
ThingSpeak er en plattform for prosjekter basert på Internet of Things -konseptet. Denne plattformen lar deg bygge applikasjoner basert på data samlet inn fra sensorer. Hovedtrekkene i ThingSpeak inkluderer: datasamling i sanntid, databehandling og visualisering. ThingSpeak API lar deg ikke bare sende, lagre og få tilgang til data, men gir også forskjellige statistiske metoder for å behandle dem.
ThingSpeak kan integrere populære enheter og tjenester som:
- Arduino
- Bringebær pii
- oBridge / RealTime.io
- Elektrisk imp
- Mobil- og webapplikasjoner
- Sosiale nettverk
- Dataanalyse i MATLAB
Før vi begynner, trenger du en konto hos ThingSpeak.
- Gå til følgende lenke og registrer deg for ThingSpeak.
- Etter at kontoen din er aktivert, logger du på.
- Gå til Kanaler -> Mine kanaler
- Klikk på Ny kanal -knappen.
- Skriv inn navn, beskrivelse og felt for dataene du vil laste opp
- Klikk på Lagre kanal -knappen for å lagre alle innstillingene dine.
Vi trenger en API -nøkkel, som vi senere vil legge til i python -koden for å laste opp CPU -temperaturen til Thingspeak -skyen.
Klikk på kategorien API -nøkler for å få skrive -API -nøkkelen
Når du har Write API -nøkkelen, er vi nesten klare til å laste opp dataene våre.
Trinn 3: Få CPU -temperaturen fra en Raspberry Pi ved hjelp av Python
Skriptet er basert på å hente prosessortemperaturen, som skjer hvert sekund. Den kan hentes fra terminalen ved å kjøre vcgencmd -kommandoen med parameteren Measure_temp.
vcgencmd måle_temp
Subprocess.check_output () bibliotek ble brukt til å utføre kommandoen og deretter bruke vanlig uttrykk for å trekke ut den faktiske verdien fra den returnerte strengen.
fra subprosessimport check_output
fra re import findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). dekode () temp = float (findall ('\ d+\. / d+', temp) [0]) retur (temp) print (get_temp ())
Etter at temperaturverdien er hentet, må data sendes til ThingSpeak -skyen. Bruk Write API -nøkkelen din til å endre myApi -variabelen i Python -koden nedenfor.
fra urllib importforespørsel
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]) retur (temp) prøv: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) unntatt KeyboardInterrupt: print ("Avslutt trykket Ctrl+C")
Trinn 4: Kontrollere viften basert på temperatur
Python -skriptet vist nedenfor implementerer logikk som slår på viften når temperaturen stiger over tempOn og av bare når temperaturen synker under terskelen. På denne måten slås viften ikke av og på raskt.
importer RPi. GPIO som 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]) retur (temp) prøv: GPIO.setwarnings (False) tempOn = 50 terskel = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) while True: temp = get_temp () if temp> tempOn og ikke pinState eller temp <tempOn - terskel og pinState: pinState = ikke pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) unntatt KeyboardInterrupt: print ("Exit presset Ctrl+C") unntatt: 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")
Trinn 5: Endelig Python -kode
Hovedpythonkoden finner du på min GitHub -konto i følgende lenke. Husk å sette din egen Write API -nøkkel.
- Logg deg på Raspberry PI -kortet
- Kjør følgende kommando på terminalen
python3 cpu.py
Trinn 6: Overvåke data via Thingspeak Cloud
Etter en stund åpner du kanalen din på ThingSpeak, og du bør se temperaturen lastes opp til Thingspeak-skyen i sanntid.
Trinn 7: Kjør Python -scriptet ved oppstart
For å gjøre dette, på slutten av filen /etc/rc.local:
sudo nano /etc/rc.local
Du må plassere skriptstartkommandoen foran linjeutgang 0:
sudo python /home/pi/cpu.py &
Tilstedeværelsen av & -symbolet på slutten av kommandoen er obligatorisk, siden det er et flagg for å starte prosessen i bakgrunnen. Etter omstarten kjøres skriptet automatisk og viften slås på når de angitte betingelsene er oppfylt.
Anbefalt:
DIY -- Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: 6 trinn
DIY || Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: Mens du lager en edderkopprobot, kan du lære så mange ting om robotikk. Som å lage roboter er både underholdende og utfordrende. I denne videoen skal vi vise deg hvordan du lager en Spider -robot, som vi kan bruke ved hjelp av smarttelefonen vår (Androi
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: 4 trinn
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: Hei, jeg er Rithik. Vi kommer til å lage en Internett -kontrollert LED ved hjelp av telefonen din. Vi kommer til å bruke programvare som Arduino IDE og Blynk. Det er enkelt, og hvis du lyktes kan du kontrollere så mange elektroniske komponenter du vilTing We Need: Hardware:
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Hvordan lage en drone ved hjelp av Arduino UNO - Lag en quadcopter ved hjelp av mikrokontroller: 8 trinn (med bilder)
Hvordan lage en drone ved hjelp av Arduino UNO | Lag en Quadcopter ved hjelp av mikrokontroller: Introduksjon Besøk min Youtube -kanal En Drone er en veldig dyr gadget (produkt) å kjøpe. I dette innlegget skal jeg diskutere hvordan jeg får det billig? Og hvordan kan du lage din egen slik til en billig pris … Vel, i India er alle materialer (motorer, ESCer
Lysstyrkekontroll PWM -basert LED -kontroll ved hjelp av trykknapper, Raspberry Pi og Scratch: 8 trinn (med bilder)
Lysstyrkekontroll PWM -basert LED -kontroll ved hjelp av trykknapper, Raspberry Pi og Scratch: Jeg prøvde å finne en måte å forklare hvordan PWM fungerte for elevene mine, så jeg satte meg i oppgave å prøve å kontrollere lysstyrken til en LED ved hjelp av 2 trykknapper - den ene knappen øker lysstyrken på en LED, og den andre demper den. For å utvikle