Sisukord:

Vaarika Pi ventilaatori nutikas juhtimine Pythoni ja Thingspeaki abil: 7 sammu
Vaarika Pi ventilaatori nutikas juhtimine Pythoni ja Thingspeaki abil: 7 sammu

Video: Vaarika Pi ventilaatori nutikas juhtimine Pythoni ja Thingspeaki abil: 7 sammu

Video: Vaarika Pi ventilaatori nutikas juhtimine Pythoni ja Thingspeaki abil: 7 sammu
Video: Fysetc Spider v1.1 - Basics 2024, November
Anonim
Vaarika Pi ventilaatori nutikas juhtimine Pythoni ja Thingspeaki abil
Vaarika Pi ventilaatori nutikas juhtimine Pythoni ja Thingspeaki abil

Lühiülevaade

Vaikimisi on ventilaator otse GPIO -ga ühendatud - see tähendab selle pidevat tööd. Vaatamata ventilaatori suhteliselt vaiksele tööle ei ole selle pidev töö aktiivse jahutussüsteemi tõhus kasutamine. Samal ajal võib ventilaatori pidev töö lihtsalt häirida. Samuti, kui Raspberry Pi on välja lülitatud, töötab ventilaator endiselt, kui toide on ühendatud.

See artikkel näitab, kuidas lihtsate ja mitte keeruliste manipulatsioonide abil muuta olemasolev jahutussüsteem nutikaks, mis lülitatakse sisse ainult siis, kui protsessor seda tõesti vajab. Ventilaator lülitatakse sisse ainult intensiivse kasutamise korral, vähendades seega ventilaatori energiatarvet ja müra. Samuti pikendate ventilaatori eluiga, hoides selle välja, kui seda pole vaja.

Mida õpid

Kuidas rakendada Pythoni skripti ventilaatori juhtimiseks, lähtudes Raspberry CPU praegusest temperatuurist, kasutades sisse- ja väljalülitamist koos temperatuuri hüstereesiga. Kuidas andmeid RaspberryPi-st edastada asjadesse Speak Cloud.

Tarvikud

Selle projekti jaoks vajalikud komponendid on järgmised

  • Raspberry Pi 4 arvutimudel B 4 GB
  • NPN transistori takisti S8050330ohms
  • Armor alumiiniumist metallkarp koos kahe ventilaatoriga Raspberry Pi jaoks
  • Jumper kaablid
  • Leivalaud

Samm: vooluringi ehitamine

Ringraja ehitamine
Ringraja ehitamine
Ringraja ehitamine
Ringraja ehitamine

Ahel on üsna lihtne. Ventilaatori toide katkestatakse NPN -transistori abil. Selles konfiguratsioonis toimib transistor madala külje lülitina. Takisti on vajalik ainult GPIO kaudu voolu piiramiseks. Raspberry Pi GPIO maksimaalne voolutugevus on 16 mA. Ma kasutasin 330 oomi, mis annab meile baasvoolu umbes (5-0,7)/330 = 13mA. Valisin NPN transistori S8050, nii et 400mA koormuse vahetamine mõlemalt ventilaatorilt pole probleem.

Samm: logige protsessori temperatuur üles ThingSpeak abil

Logige protsessori temperatuur üles ThingSpeak abil
Logige protsessori temperatuur üles ThingSpeak abil

ThingSpeak on platvorm projektidele, mis põhinevad asjade Interneti kontseptsioonil. See platvorm võimaldab teil luua rakendusi, mis põhinevad anduritelt kogutud andmetel. ThingSpeaki põhijooned on järgmised: reaalajas andmete kogumine, andmetöötlus ja visualiseerimine. ThingSpeak API võimaldab mitte ainult andmeid saata, salvestada ja neile juurde pääseda, vaid pakub ka erinevaid statistilisi meetodeid nende töötlemiseks.

ThingSpeak saab integreerida populaarseid seadmeid ja teenuseid, näiteks:

  • Arduino
  • Vaarika pii
  • oBridge / RealTime.io
  • Elektriline imp
  • Mobiili- ja veebirakendused
  • Sotsiaalsed võrgustikud
  • Andmete analüüs MATLABis

Enne alustamist vajate ThingSpeaki kontot.

  1. Minge järgmisele lingile ja registreeruge ThingSpeaki.
  2. Pärast konto aktiveerimist logige sisse.
  3. Minge jaotisse Kanalid -> Minu kanalid
  4. Klõpsake nuppu Uus kanal.
  5. Sisestage üleslaaditavate andmete nimi, kirjeldus ja väljad
  6. Kõigi seadete salvestamiseks klõpsake nuppu Salvesta kanal.

Vajame API -võtit, mille lisame hiljem pythoni koodi, et laadida oma protsessori temperatuur Thingspeaki pilve.

Kirjutamise API võtme saamiseks klõpsake vahekaarti API võtmed

Kui teil on Write API võti, oleme peaaegu valmis oma andmed üles laadima.

Samm: protsessori temperatuuri hankimine Raspberry Pi -lt Pythoni abil

Skript põhineb protsessori temperatuuri toomisel, mis toimub iga sekund. Selle saab terminalist, käivitades vcgencmd käsu parameetriga meet_temp.

vcgencmd mõõtmistemperatuur

Käsu täitmiseks kasutati raamatukogu Subprocess.check_output () ja seejärel kasutati tavalise avaldise abil tagastatud stringist tegelikku väärtust.

alamprotsessist import check_output

uuesti importimisel findalldef get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). dekodeerida () temp = float (findall ('\ d+\. / d+', temp) [0]) return (temp) print (get_temp ())

Pärast temperatuuri väärtuse toomist tuleb andmed saata ThingSpeaki pilve. Kasutage oma Write API võtit, et muuta myApi muutujat allpool olevas Pythoni koodis.

urllibi imporditaotlusest

uuesti impordist leida kõik ajast importimise unerežiim alamprotsessist import check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). dekodeerida () 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 () uni (1), v.a klaviatuurInterrupt: print ("Väljumiseks vajutage Ctrl+C")

4. samm: ventilaatori juhtimine temperatuuri alusel

Allpool näidatud Pythoni skript rakendab loogikat, mis lülitab ventilaatori sisse, kui temperatuur tõuseb üle tempOn, ja lülitub välja ainult siis, kui temperatuur langeb allapoole künnist. Sel viisil ei lülitu ventilaator kiiresti sisse ja välja.

RPi. GPIO importimine GPIO -na

impordi sys uuesti impordist findall ajast importimise unerežiim alamprotsessist import check_output def get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). dekodeeri () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 künnis = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, Initial = 0) samas True: temp = get_temp () kui temp> tempOn ja mitte pinState või temp <tempOn - künnis ja pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) uni (1) välja arvatud KeyboardInterrupt: print ("Välju vajutades Ctrl+C"), välja arvatud: print ("Muu erand") print ("--- Alusta erandi andmeid:") traceback.print_exc (limiit = 2, file = sys.stdout) print ("--- End Exception Data:") lõpuks: print ("CleanUp") GPIO.cleanup () print ("Programmi lõpp")

Samm: viimane Pythoni kood

Peamise püütoni koodi leiate minu GitHubi kontolt järgmiselt lingilt. Ärge unustage panna oma Write API võtit.

  1. Logige sisse oma Raspberry PI -plaadile
  2. Käivitage terminalis järgmine käsk

python3 cpu.py

6. samm: andmete jälgimine Thingspeak Cloudi kaudu

Andmete jälgimine Thingspeak Cloudi kaudu
Andmete jälgimine Thingspeak Cloudi kaudu

Mõne aja pärast avage oma kanal ThingSpeakis ja näete temperatuuri reaalajas üleslaadimist Thingspeaki pilve.

Samm: käivitage käivitamisel Pythoni skript

Selleks tehke faili /etc/rc.local lõpus:

sudo nano /etc/rc.local

Peate paigutama skripti käivitamise käsu rea väljapääsu 0 ette:

sudo python /home/pi/cpu.py &

& Sümboli olemasolu käsu lõpus on kohustuslik, kuna see on lipp protsessi alustamiseks taustal. Pärast taaskäivitamist käivitatakse skript automaatselt ja ventilaator lülitub sisse, kui määratud tingimused on täidetud.

Soovitan: