Sadržaj:

Pametna kontrola ventilatora Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka
Pametna kontrola ventilatora Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka

Video: Pametna kontrola ventilatora Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka

Video: Pametna kontrola ventilatora Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka
Video: CS50 2015 - Week 8, continued 2024, Juli
Anonim
Pametno upravljanje ventilatorom Raspberry Pi pomoću programa Python & Thingspeak
Pametno upravljanje ventilatorom Raspberry Pi pomoću programa Python & Thingspeak

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

Izgradnja kola
Izgradnja kola
Izgradnja kola
Izgradnja kola

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

Zapišite temperaturu CPU -a pomoću ThingSpeak -a
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.

  1. Idite na sljedeću vezu i prijavite se na ThingSpeak.
  2. Nakon aktivacije računa prijavite se.
  3. Idite na Kanali -> Moji kanali
  4. Kliknite na dugme Novi kanal.
  5. Unesite naziv, opis i polja podataka koje želite učitati
  6. 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č.

  1. Prijavite se na svoju Raspberry PI ploču
  2. Pokrenite sljedeću naredbu na terminalu

python3 cpu.py

Korak 6: Nadgledanje podataka putem Thingspeak oblaka

Nadgledanje podataka putem Thingspeak Cloud -a
Nadgledanje podataka putem Thingspeak Cloud -a

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: