Sadržaj:

Pametno upravljanje ventilatorom Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka
Pametno upravljanje ventilatorom Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka

Video: Pametno upravljanje ventilatorom Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka

Video: Pametno upravljanje ventilatorom Raspberry Pi pomoću programa Python & Thingspeak: 7 koraka
Video: Leap Motion SDK 2024, Srpanj
Anonim
Pametno upravljanje ventilatorom Raspberry Pi pomoću Pythona i Thingspeaka
Pametno upravljanje ventilatorom Raspberry Pi pomoću Pythona i Thingspeaka

Kratak pregled

Prema zadanim postavkama, ventilator je izravno spojen na GPIO - to podrazumijeva njegov stalni rad. Unatoč relativno tihom radu ventilatora, njegov kontinuirani rad nije učinkovita uporaba aktivnog rashladnog sustava. Istodobno, stalni rad ventilatora može samo smetati. Također, ako je Raspberry Pi isključen, ventilator će i dalje raditi ako je napajanje priključeno.

Ovaj će članak pokazati kako jednostavnim, a ne kompliciranim manipulacijama, postojeći sustav hlađenja pretvoriti u pametan, koji će se uključiti samo kada procesoru stvarno treba. Ventilator bi se uključio samo kad se intenzivno koristi, čime bi se smanjila potrošnja energije i buka ventilatora. Također produžava vijek trajanja ventilatora držeći ga isključenim kada nije potrebno.

Što ćete naučiti

Kako implementirati Python skriptu za upravljanje ventilatorom na temelju trenutne temperature Raspberry CPU-a pomoću On-Off kontrole s temperaturnom histerezom. Kako prenijeti podatke s vašeg RaspberryPi-a u Things Speak Cloud.

Pribor

Komponente koje ćete trebati za ovaj projekt su sljedeće

  • Raspberry Pi 4 Model računala B 4GB
  • NPN tranzistorski otpornik S8050330ohms
  • Armor Aluminijsko metalno kućište s dvostrukim ventilatorima za Raspberry Pi
  • Kratki kabeli
  • Oglasna ploča

Korak 1: Izgradnja kruga

Izgradnja kruga
Izgradnja kruga
Izgradnja kruga
Izgradnja kruga

Krug je prilično jednostavan. Napajanje ventilatora isključeno je pomoću NPN tranzistora. U ovoj konfiguraciji, tranzistor djeluje kao prekidač s niske strane. Otpornik je potreban samo za ograničavanje struje kroz GPIO. GPIO Raspberry Pi ima maksimalni trenutni izlaz od 16 mA. 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: Zabilježite temperaturu CPU -a pomoću ThingSpeak -a

Zabilježite temperaturu procesora pomoću ThingSpeak -a
Zabilježite temperaturu procesora pomoću ThingSpeak -a

ThingSpeak je platforma za projekte temeljene na konceptu Interneta stvari. Ova platforma omogućuje vam izradu aplikacija na temelju podataka prikupljenih sa senzora. Glavne značajke ThingSpeaka uključuju: prikupljanje podataka u stvarnom 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
  • Pii od maline
  • oBridge / RealTime.io
  • Električni 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. Pritisnite gumb Novi kanal.
  5. Unesite naziv, opis i polja podataka koje želite prenijeti
  6. Pritisnite Spremi kanal da biste spremili 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

Nakon što dobijete API API ključ, gotovo smo spremni za prijenos naših podataka.

Korak 3: Dobivanje temperature procesora s Raspberry Pi pomoću Pythona

Skripta se temelji na dohvaćanju temperature procesora, koja se javlja svake sekunde. Može se dobiti s terminala pokretanjem naredbe vcgencmd s parametrom mjera_temp.

vcgencmd mjera_templa

Biblioteka Subprocess.check_output () korištena je za izvršavanje naredbe, a zatim pomoću regularnog izraza za izdvajanje stvarne vrijednosti iz vraćenog niza.

iz uvoza podprocesa check_output

from re import findalldef get_temp (): temp = check_output (["vcgencmd", "mjera_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 ("Izlaz je pritisnut Ctrl+C")

Korak 4: Upravljanje ventilatorom na temelju temperature

Python skripta prikazana u nastavku implementira logiku koja uključuje ventilator kada temperatura poraste iznad tempOn i isključi se tek kad temperatura padne ispod praga. Na ovaj način ventilator se neće brzo uključiti i isključiti.

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, initial = 0) while True: temp = get_temp () if temp> tempOn, a ne pinState ili temp <tempOn - prag i pinState: pinState = ne pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) osim KeyboardInterrupt: print ("Izlaz pritisnut Ctrl+C") osim: print ("Druga iznimka") print ("--- Pokreni podatke o iznimkama:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") konačno: print ("CleanUp") GPIO.cleanup () print ("Kraj programa")

Korak 5: Završni Python kod

Glavni Python kod možete pronaći na mom GitHub računu na sljedećoj poveznici. 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 oblaka Thingspeak

Praćenje podataka putem oblaka Thingspeak
Praćenje podataka putem oblaka Thingspeak

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 datoteke /etc/rc.local:

sudo nano /etc/rc.local

Morate postaviti naredbu pokretanja skripte ispred izlaza retka 0:

sudo python /home/pi/cpu.py &

Prisutnost & simbola na kraju naredbe obavezna je 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čeni: