Sadržaj:
- Supplies
- Korak 1: Izgradnja kruga
- Korak 2: Zapišite temperaturu CPU -a pomoću ThingSpeak -a
- Korak 3: Dobijanje temperature procesora sa Raspberry Pi -a pomoću Pythona
- Korak 4: Upravljanje ventilatorom na osnovu temperature
- Korak 5: Završni Python kod
- Korak 6: Nadgledanje podataka putem Thingspeak oblaka
- Korak 7: Pokrenite Python skriptu pri pokretanju
Video: Pametna kontrola ventilatora Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Kratak pregled
Prema zadanim postavkama, ventilator je direktno povezan s GPIO - to podrazumijeva njegov stalni rad. Uprkos relativno tihom radu ventilatora, njegov kontinuirani rad nije efikasna upotreba aktivnog sistema hlađenja. Istovremeno, konstantan rad ventilatora može biti samo neugodan. Također, ako je Raspberry Pi isključen, ventilator će i dalje raditi ako je napajanje priključeno.
Ovaj članak će pokazati kako jednostavnim, a ne kompliciranim manipulacijama, postojeći sustav hlađenja pretvoriti u pametan, koji će se uključiti samo kada procesoru zaista treba. Ventilator bi se uključio samo kada se intenzivno koristi, čime bi se smanjila potrošnja energije i buka ventilatora. Takođe produžava život ventilatora tako što ga isključuje kada nije potrebno.
Šta ćete naučiti
Kako implementirati Python skriptu za kontrolu ventilatora na osnovu trenutne temperature Raspberry CPU-a pomoću On-Off kontrole sa temperaturnom histerezom. Kako prenijeti podatke sa vašeg RaspberryPi-a u Things Speak Cloud.
Supplies
Komponente koje će vam biti potrebne za ovaj projekt su sljedeće
- Raspberry Pi 4 Model računara B 4GB
- NPN tranzistorski otpornik S8050330ohms
- Armor aluminijsko metalno kućište s dvostrukim ventilatorima za Raspberry Pi
- Premosni kablovi
- Breadboard
Korak 1: Izgradnja kruga
Krug je prilično jednostavan. Napajanje ventilatora isključeno je pomoću NPN tranzistora. U ovoj konfiguraciji, tranzistor djeluje kao prekidač sa niske strane. Otpornik je potreban samo za ograničavanje struje kroz GPIO. GPIO Raspberry Pi ima maksimalni trenutni izlaz od 16mA. Koristio sam 330 ohma što nam daje baznu struju od oko (5-0,7)/330 = 13mA. Odabrao sam NPN tranzistor S8050, pa prebacivanje opterećenja od 400 mA s oba ventilatora nije problem.
Korak 2: Zapišite temperaturu CPU -a pomoću ThingSpeak -a
ThingSpeak je platforma za projekte zasnovane na konceptu Interneta stvari. Ova platforma omogućuje vam izradu aplikacija na temelju podataka prikupljenih sa senzora. Glavne karakteristike ThingSpeaka uključuju: prikupljanje podataka u realnom vremenu, obradu podataka i vizualizaciju. ThingSpeak API ne samo da vam omogućuje slanje, pohranu i pristup podacima, već nudi i različite statističke metode za njihovu obradu.
ThingSpeak može integrirati popularne uređaje i usluge kao što su:
- Arduino
- Malina pii
- oBridge / RealTime.io
- Electric imp
- Mobilne i web aplikacije
- Društvene mreže
- Analiza podataka u MATLAB -u
Prije nego počnemo, potreban vam je račun na ThingSpeaku.
- Idite na sljedeću vezu i prijavite se na ThingSpeak.
- Nakon aktivacije računa prijavite se.
- Idite na Kanali -> Moji kanali
- Kliknite na dugme Novi kanal.
- Unesite naziv, opis i polja podataka koje želite učitati
- Kliknite na dugme Sačuvaj kanal da biste sačuvali sve svoje postavke.
Potreban nam je API ključ, koji ćemo kasnije dodati python kodu kako bismo prenijeli temperaturu procesora u oblak Thingspeak.
Pritisnite karticu API Keys (Ključevi API -ja) da biste dobili API API Key
Kada dobijete API API ključ, gotovo smo spremni za učitavanje naših podataka.
Korak 3: Dobijanje temperature procesora sa Raspberry Pi -a pomoću Pythona
Skripta se temelji na preuzimanju temperature procesora, koja se javlja svake sekunde. Može se dobiti iz terminala pokretanjem naredbe vcgencmd s parametrom mjera_temp.
vcgencmd mjera_temp
Biblioteka Subprocess.check_output () je korištena za izvršavanje naredbe, a zatim je korištenjem regularnog izraza izdvojila stvarnu vrijednost iz vraćenog niza.
iz uvoza podprocesa check_output
od ponovnog uvoza findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) return (temp) print (get_temp ())
Nakon što se dohvati vrijednost temperature, podatke je potrebno poslati u oblak ThingSpeak. Koristite svoj API API ključ za promjenu varijable myApi u donjem Python kodu.
iz zahtjeva za uvoz urllib
from re import findall from time import sleep 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) osim KeyboardInterrupt: print ("Izađi pritisnut Ctrl+C")
Korak 4: Upravljanje ventilatorom na osnovu temperature
Python skripta prikazana ispod implementira logiku koja uključuje ventilator kada temperatura poraste iznad tempOn i isključuje se tek kada temperatura padne ispod praga. Na ovaj način ventilator se neće brzo uključivati i isključivati.
uvezite RPi. GPIO kao GPIO
import sys from re import findall from time import sleep iz potprocesa import check_output def get_temp (): temp = check_output (["vcgencmd", "mjera_temp"]). decode () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 prag = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, početno = 0) dok je True: temp = get_temp () if temp> tempOn, a ne pinState ili temp <tempOn - prag i pinState: pinState = nije pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) osim KeyboardInterrupt: print ("Izlaz je pritisnut Ctrl+C") osim: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") konačno: print ("CleanUp") GPIO.cleanup () print ("End of program")
Korak 5: Završni Python kod
Glavni python kod možete pronaći na mom GitHub računu na sljedećoj vezi. Ne zaboravite staviti vlastiti API API ključ.
- Prijavite se na svoju Raspberry PI ploču
- Pokrenite sljedeću naredbu na terminalu
python3 cpu.py
Korak 6: Nadgledanje podataka putem Thingspeak oblaka
Nakon nekog vremena otvorite svoj kanal na ThingSpeaku i trebali biste vidjeti kako se temperatura prenosi u oblak Thingspeak u stvarnom vremenu.
Korak 7: Pokrenite Python skriptu pri pokretanju
Da biste to učinili, na kraju /etc/rc.local datoteke:
sudo nano /etc/rc.local
Morate postaviti naredbu za pokretanje skripte ispred izlaza retka 0:
sudo python /home/pi/cpu.py &
Prisustvo & simbola na kraju naredbe je obavezno, jer je to zastavica za pokretanje procesa u pozadini. Nakon ponovnog pokretanja, skripta će se automatski pokrenuti i ventilator će se uključiti kada su ispunjeni navedeni uvjeti.
Preporučuje se:
Pametna kuća s niskim troškovima - kontrola s bilo kojeg mjesta u SVIJETU: 6 koraka
Povoljna pametna kuća - kontrola s bilo kojeg mjesta u SVIJETU: OOdavno oba roditelja rade na tome da imaju ugodan život za porodicu. Tako da u svom domu imamo puno elektroničkih uređaja poput grijača, klima uređaja, perilice rublja itd. Kada se vrate kući trebali bi se osjećati vrlo ugodno u ter
Kontrola svjetline PWM LED kontrola zasnovana na tipkama, Raspberry Pi i grebanju: 8 koraka (sa slikama)
Kontrola svjetline Kontrola LED -a zasnovana na PWM -u pomoću tipki, Raspberry Pi i grebanja: Pokušavao sam pronaći način da svojim učenicima objasnim kako PWM radi, pa sam sebi postavio zadatak da pokušam kontrolirati svjetlinu LED -a pomoću 2 tipke - jedno dugme povećava svjetlinu LED -a, a drugo ga prigušuje. Za program
RF 433MHZ Radio kontrola pomoću HT12D HT12E - Izrada daljinskog upravljača RF pomoću HT12E & HT12D s 433 mHz: 5 koraka
RF 433MHZ Radio kontrola pomoću HT12D HT12E | Izrada Rf daljinskog upravljača pomoću HT12E & HT12D sa 433 MHz: U ovom uputstvu ću vam pokazati kako napraviti RADIO daljinski upravljač pomoću prijemnog modula odašiljača od 433 MHz sa kodiranjem HT12E & IC dekoder HT12D. U ovom uputstvu možete slati i primati podatke koristeći vrlo vrlo jeftine KOMPONENTE KAO: HT
Arduino kontroler ventilatora stonog ventilatora: 4 koraka
Arduino Desk Fan Controller: Kada sam nedavno promijenio uloge u kompaniji, premjestio sam web stranice, preselivši se iz Bradforda u našu sjedište u Wakefieldu. Rekao sam zbogom svom vjernom starom stolu sa obaveznim ventilatorom za stol koji me hladi dok sam svuda oko mene ……. U svakom slučaju, trend u našem
Kontrola istosmjernog ventilatora na bazi senzora kretanja bez arduina: 4 koraka
Kontrola istosmjernog ventilatora na bazi senzora pokreta zasnovana na senzoru pokreta bez Arduina: Pozdrav braćo i sestre svijeta, napravio sam mali projekt za kontrolu vašeg istosmjernog ventilatora za ispuh (ako ovome dodate jedan relej, možete kontrolirati i ventilator izmjenične struje). Ovo se može koristiti u mirovanju prostor za sušenje mokrih ruku. a koristili ste i drugu aplikaciju