Turinys:
- Prekės
- 1 žingsnis: sukurkite grandinę
- 2 veiksmas: registruokite procesoriaus temperatūrą naudodami „ThingSpeak“
- 3 žingsnis: CPU temperatūros nustatymas iš „Raspberry Pi“naudojant „Python“
- 4 žingsnis: Ventiliatoriaus valdymas pagal temperatūrą
- 5 veiksmas: galutinis „Python“kodas
- 6 veiksmas: duomenų stebėjimas naudojant „Thingspeak Cloud“
- 7 veiksmas: paleisdami paleiskite „Python“scenarijų
Video: Išmanusis „Raspberry Pi“ventiliatoriaus valdymas naudojant „Python“ir „Thingspeak“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Trumpa apžvalga
Pagal numatytuosius nustatymus ventiliatorius yra tiesiogiai prijungtas prie GPIO - tai reiškia nuolatinį jo veikimą. Nepaisant santykinai tylaus ventiliatoriaus veikimo, nuolatinis jo veikimas nėra veiksmingas aktyvios aušinimo sistemos naudojimas. Tuo pačiu metu nuolatinis ventiliatoriaus veikimas gali tiesiog erzinti. Be to, jei „Raspberry Pi“yra išjungtas, ventiliatorius vis tiek veiks, jei maitinimas bus prijungtas.
Šis straipsnis parodys, kaip, naudojant paprastas ir nesudėtingas manipuliacijas, esamą aušinimo sistemą paversti išmaniąja, kuri bus įjungta tik tada, kai procesoriui to tikrai reikia. Ventiliatorius būtų įjungtas tik tada, kai yra intensyviai naudojamas, taip sumažinant ventiliatoriaus energijos sąnaudas ir triukšmą. Taip pat pailginkite ventiliatoriaus tarnavimo laiką, išjungdami jį, kai to nereikia.
Ko išmoksi
Kaip įdiegti „Python“scenarijų, kad būtų galima valdyti ventiliatorių pagal esamą „Raspberry“procesoriaus temperatūrą, naudojant įjungimo-išjungimo valdiklį su temperatūros histereze. Kaip perkelti duomenis iš „RaspberryPi“į „Things Speak Cloud“.
Prekės
Komponentai, kurių jums reikės šiam projektui, yra šie
- „Raspberry Pi 4“kompiuterio modelis B 4 GB
- NPN tranzistorius S8050330ohms rezistorius
- „Armor“aliuminio metalinis dėklas su dviem ventiliatoriais „Raspberry Pi“
- Trumpieji kabeliai
- Bandomoji Lenta
1 žingsnis: sukurkite grandinę
Grandinė yra gana paprasta. Ventiliatoriaus maitinimas nutraukiamas naudojant NPN tranzistorių. Šioje konfigūracijoje tranzistorius veikia kaip žemos pusės jungiklis. Rezistorius reikalingas tik norint apriboti srovę per GPIO. „Raspberry Pi“GPIO maksimali srovės išvestis yra 16 mA. Aš naudojau 330 omų, todėl bazinė srovė yra maždaug (5-0,7)/330 = 13 mA. Aš pasirinkau NPN tranzistorių S8050, todėl perjungti 400 mA apkrovą iš abiejų ventiliatorių nėra problema.
2 veiksmas: registruokite procesoriaus temperatūrą naudodami „ThingSpeak“
„ThingSpeak“yra platforma projektams, paremtiems daiktų interneto koncepcija. Ši platforma leidžia kurti programas pagal duomenis, surinktus iš jutiklių. Pagrindinės „ThingSpeak“savybės: duomenų rinkimas realiuoju laiku, duomenų apdorojimas ir vizualizavimas. „ThingSpeak“API ne tik leidžia siųsti, saugoti ir pasiekti duomenis, bet ir pateikia įvairius statistinius jų apdorojimo metodus.
„ThingSpeak“gali integruoti tokius populiarius įrenginius ir paslaugas kaip:
- Arduino
- Aviečių pii
- oBridge / RealTime.io
- Elektros imp
- Mobiliosios ir žiniatinklio programos
- Socialiniai tinklai
- Duomenų analizė MATLAB
Prieš pradėdami, jums reikia „ThingSpeak“paskyros.
- Eikite į šią nuorodą ir prisiregistruokite prie „ThingSpeak“.
- Po paskyros aktyvinimo prisijunkite.
- Eikite į Kanalai -> Mano kanalai
- Spustelėkite mygtuką Naujas kanalas.
- Įveskite norimų įkelti duomenų pavadinimą, aprašymą ir laukus
- Norėdami išsaugoti visus nustatymus, spustelėkite mygtuką Išsaugoti kanalą.
Mums reikia API rakto, kurį vėliau pridėsime prie python kodo, kad galėtume įkelti procesoriaus temperatūrą į „Thingspeak“debesį.
Spustelėkite skirtuką API raktai, kad gautumėte „Write API Key“
Kai turėsite „Write API Key“, mes beveik pasiruošę įkelti savo duomenis.
3 žingsnis: CPU temperatūros nustatymas iš „Raspberry Pi“naudojant „Python“
Scenarijus yra pagrįstas procesoriaus temperatūros nustatymu, kuris vyksta kiekvieną sekundę. Jį galima gauti iš terminalo vykdant komandą vcgencmd su parametru meet_temp.
vcgencmd matavimo_tempas
Subprocess.check_output () biblioteka buvo naudojama komandai vykdyti, o paskui naudojant įprastą išraišką išgaunamai iš grąžintos eilutės išgauti faktinę vertę.
iš subproceso importo check_output
Iš naujo importuoti) spausdinti (get_temp ())
Gaunant temperatūros vertę, duomenys turi būti siunčiami į „ThingSpeak“debesį. Naudokite „Write API“raktą, kad pakeistumėte „myApi“kintamąjį žemiau esančiame „Python“kode.
iš „urllib“importo užklausos
iš naujo importuoti findall iš laiko importuoti miego režimą iš papildomo proceso importuoti check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). dekoduoti () temp = float (findall (' / d+\. / d+', temp) [0]) return (temp) pabandykite: nors tiesa: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () miego režimas (1), išskyrus klaviatūrąInterrupt: print („Išeiti paspaudus Ctrl+C“)
4 žingsnis: Ventiliatoriaus valdymas pagal temperatūrą
Žemiau pateiktas „Python“scenarijus įgyvendina logiką, kuri įjungia ventiliatorių, kai temperatūra pakyla virš tempOn, ir išsijungia tik tada, kai temperatūra nukrenta žemiau slenksčio. Tokiu būdu ventiliatorius greitai neįsijungs ir neišsijungs.
importuoti RPi. GPIO kaip GPIO
importuoti sys iš naujo importuoti findall iš laiko importuoti miego režimą iš papildomo proceso importuoti check_output def get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). dekoduoti () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 limit = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, inicialus = 0), nors tiesa: temp = get_temp (), jei temp> tempOn, o ne pinState arba temp <tempOn - slenkstis ir pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) miego režimas (1), išskyrus KeyboardInterrupt: print („Išeiti paspaudus Ctrl+C“), išskyrus: print („Kita išimtis“) print („--- Pradėti išimties duomenis:“) traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") pagaliau: print ("CleanUp") GPIO.cleanup () print ("Programos pabaiga")
5 veiksmas: galutinis „Python“kodas
Pagrindinį „Python“kodą galite rasti mano „GitHub“paskyroje šioje nuorodoje. Nepamirškite įdėti savo „Write API“rakto.
- Prisijunkite prie savo Raspberry PI plokštės
- Terminale paleiskite šią komandą
python3 cpu.py
6 veiksmas: duomenų stebėjimas naudojant „Thingspeak Cloud“
Po kurio laiko atidarykite savo kanalą „ThingSpeak“ir turėtumėte pamatyti, kaip temperatūra įkeliama į „Thingspeak“debesį realiuoju laiku.
7 veiksmas: paleisdami paleiskite „Python“scenarijų
Norėdami tai padaryti, failo /etc/rc.local pabaigoje:
sudo nano /etc/rc.local
Turite įdėti scenarijaus pradžios komandą prieš eilutės išėjimą 0:
sudo python /home/pi/cpu.py &
& Simbolis komandos pabaigoje yra privalomas, nes tai yra vėliava pradėti procesą fone. Po perkrovimo scenarijus bus automatiškai paleistas, o ventiliatorius įsijungs, kai bus įvykdytos nurodytos sąlygos.
Rekomenduojamas:
„Arduino Attiny85“išmanusis ventiliatoriaus valdiklis: 3 žingsniai
„Arduino Attiny85“išmanusis ventiliatoriaus valdiklis:
Išmanusis žadintuvas: išmanusis žadintuvas, pagamintas naudojant „Raspberry Pi“: 10 žingsnių (su nuotraukomis)
Išmanusis žadintuvas: išmanusis žadintuvas, pagamintas naudojant „Raspberry Pi“: ar kada nors norėjote išmaniojo laikrodžio? Jei taip, tai yra sprendimas jums! Aš sukūriau išmanųjį žadintuvą, tai laikrodis, kuriuo galite pakeisti žadintuvo laiką pagal svetainę. Kai žadintuvas išsijungs, pasigirs garsas (švilpukas) ir 2 lemputės
Judėjimo valdymas naudojant „Raspberry Pi“ir LIS3DHTR, 3 ašių akselerometras, naudojant „Python“: 6 žingsniai
Judėjimo valdymas naudojant „Raspberry Pi“ir „LIS3DHTR“, 3 ašių akselerometrą, naudojant „Python“: grožis supa mus, tačiau paprastai turime vaikščioti sode, kad tai žinotume. - „RumiAs“kaip išsilavinusi grupė, kuri, panašu, esame, didžiąją savo energijos dalį investuojame į darbą prieš kompiuterius ir mobiliuosius telefonus. Todėl mes dažnai leidžiame savo gerovei
Daiktu internetu pagrįstas išmanusis sodininkystė ir išmanusis žemės ūkis naudojant ESP32: 7 žingsniai
Daiktu internetu pagrįstas išmanusis sodininkystė ir išmanusis žemės ūkis naudojant ESP32: pasaulis keičiasi kaip laikas ir žemės ūkis. Šiais laikais žmonės integruoja elektroniką visose srityse, o žemės ūkis nėra išimtis. Šis elektronikos sujungimas žemės ūkyje padeda ūkininkams ir žmonėms, kurie tvarko sodus. Tai
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: 8 žingsniai (su nuotraukomis)
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: bandžiau rasti būdą, kaip paaiškinti, kaip PWM veikė mano mokiniams, todėl iškėliau sau užduotį pabandyti valdyti šviesos diodo ryškumą naudojant du mygtukus - vienas mygtukas padidina šviesos diodo ryškumą, o kitas - jį pritemdo. Programa