Obsah:

Inteligentné ovládanie ventilátora Raspberry Pi pomocou systému Python a Thingspeak: 7 krokov
Inteligentné ovládanie ventilátora Raspberry Pi pomocou systému Python a Thingspeak: 7 krokov

Video: Inteligentné ovládanie ventilátora Raspberry Pi pomocou systému Python a Thingspeak: 7 krokov

Video: Inteligentné ovládanie ventilátora Raspberry Pi pomocou systému Python a Thingspeak: 7 krokov
Video: CS50 2015 - Week 8, continued 2024, November
Anonim
Inteligentné ovládanie ventilátora Raspberry Pi pomocou systému Python a Thingspeak
Inteligentné ovládanie ventilátora Raspberry Pi pomocou systému Python a Thingspeak

Stručný prehľad

V predvolenom nastavení je ventilátor priamo pripojený k GPIO - to znamená, že je neustále v prevádzke. Napriek relatívne tichému chodu ventilátora nie je jeho nepretržitá prevádzka efektívnym využitím aktívneho chladiaceho systému. Nepretržitá prevádzka ventilátora môže byť zároveň nepríjemná. Aj keď je Raspberry Pi vypnutý, ventilátor bude fungovať, ak je pripojené napájanie.

Tento článok ukáže, ako pomocou jednoduchých a nie komplikovaných manipulácií zmeniť existujúci chladiaci systém na inteligentný, ktorý sa zapne iba vtedy, keď to procesor skutočne potrebuje. Ventilátor by sa zapínal iba vtedy, ak je intenzívne používaný, čím sa zníži spotreba energie a hluk ventilátora. Tiež predlžuje životnosť ventilátora tým, že ho vypne, keď nie je potrebný.

Čo sa naučíte

Ako implementovať skript Pythonu na ovládanie ventilátora na základe aktuálnej teploty CPU Raspberry pomocou ovládania On-Off s teplotnou hysteréziou. Ako prenášať údaje z vášho RaspberryPi do programu Things Speak Cloud.

Zásoby

Komponenty, ktoré budete potrebovať pre tento projekt, sú nasledujúce

  • Počítač Raspberry Pi 4, model B 4 GB
  • NPN tranzistor S8050330ohms odpor
  • Hliníkové kovové puzdro Armor s dvoma ventilátormi pre Raspberry Pi
  • Prepojovacie káble
  • Breadboard

Krok 1: Budovanie obvodu

Budovanie okruhu
Budovanie okruhu
Budovanie okruhu
Budovanie okruhu

Obvod je veľmi jednoduchý. Napájanie ventilátora je prerušené pomocou tranzistora NPN. V tejto konfigurácii tranzistor funguje ako prepínač spodnej strany. Rezistor je potrebný iba na obmedzenie prúdu prostredníctvom GPIO. GPIO Raspberry Pi má maximálny prúdový výstup 16mA. Použil som 330 ohmov, čo nám dáva základný prúd asi (5-0,7)/330 = 13mA. Vybral som NPN tranzistor S8050, takže prepínať 400mA záťaž z oboch ventilátorov nie je problém.

Krok 2: Zaznamenajte teplotu procesora pomocou ThingSpeak

Zaznamenajte teplotu CPU pomocou ThingSpeak
Zaznamenajte teplotu CPU pomocou ThingSpeak

ThingSpeak je platforma pre projekty založené na koncepte internetu vecí. Táto platforma vám umožňuje vytvárať aplikácie na základe údajov zhromaždených zo senzorov. Medzi hlavné vlastnosti ThingSpeak patrí: zber údajov v reálnom čase, spracovanie údajov a vizualizácia. ThingSpeak API vám umožňuje nielen odosielať, ukladať a pristupovať k údajom, ale poskytuje aj rôzne štatistické metódy na ich spracovanie.

ThingSpeak môže integrovať obľúbené zariadenia a služby, ako napríklad:

  • Arduino
  • Malina pii
  • oBridge / RealTime.io
  • Elektrický imp
  • Mobilné a webové aplikácie
  • Sociálne siete
  • Analýza údajov v MATLABe

Predtým, ako začneme, potrebujete účet v ThingSpeak.

  1. Prejdite na nasledujúci odkaz a zaregistrujte sa do ThingSpeak.
  2. Po aktivácii účtu sa prihláste.
  3. Prejdite na Kanály -> Moje kanály
  4. Kliknite na tlačidlo Nový kanál.
  5. Zadajte názov, popis a polia údajov, ktoré chcete nahrať
  6. Kliknutím na tlačidlo Uložiť kanál uložíte všetky svoje nastavenia.

Potrebujeme kľúč API, ktorý neskôr pridáme do kódu pythonu, aby sme mohli nahrať teplotu svojho procesora do cloudu Thingspeak.

Kliknutím na kartu API Keys získate kľúč Write API

Keď budete mať kľúč API rozhrania Write, sme takmer pripravení nahrať naše údaje.

Krok 3: Získanie teploty CPU z Raspberry Pi pomocou Pythonu

Skript je založený na načítaní teploty procesora, ktorá sa vyskytuje každú sekundu. Môžete ho získať z terminálu spustením príkazu vcgencmd s parametrom opatření_temp.

vcgencmd meraj_teplotu

Na vykonanie príkazu bola použitá knižnica Subprocess.check_output () a potom pomocou regulárneho výrazu extrahovaná aktuálna hodnota z vráteného reťazca.

z importu podprocesu check_output

from re import findalldef get_temp (): temp = check_output (["vcgencmd", "opatření_temp"]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) return (temp) print (get_temp ())

Po načítaní hodnoty teploty je potrebné odoslať údaje do cloudu ThingSpeak. Na zmenu premennej myApi v nižšie uvedenom kóde Pythonu použite svoj kľúč API API.

z žiadosti o import adresy URL

z opätovného importu findall z času import spánku z podprocesu 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) okrem KeyboardInterrupt: print ("Ukončiť stlačením Ctrl+C")

Krok 4: Ovládanie ventilátora na základe teploty

Skript Python zobrazený nižšie implementuje logiku, ktorá zapne ventilátor, keď teplota vystúpi nad teplotu tempOn, a vypne sa iba vtedy, keď teplota klesne pod prahovú hodnotu. Ventilátor sa tak nebude rýchlo zapínať a vypínať.

importujte RPi. GPIO ako GPIO

import sys from re import findall from time import sleep from subprocess import check_output def get_temp (): temp = check_output (["vcgencmd", "opatření_temp"]). decode () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 prah = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) while True: temp = get_temp () if temp> tempOn and not pinState or temp <tempOn - threshold and pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) spánok (1) okrem KeyboardInterrupt: print ("ExitPress Ctrl+C") okrem: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") konečne: print ("CleanUp") GPIO.cleanup () print ("End of program")

Krok 5: Finálny kód Pythonu

Hlavný kód pythonu nájdete na mojom účte GitHub v nasledujúcom odkaze. Nezabudnite zadať svoj vlastný kľúč API rozhrania Write.

  1. Prihláste sa na svoju dosku Raspberry PI
  2. Na termináli spustite nasledujúci príkaz

python3 cpu.py

Krok 6: Monitorovanie údajov prostredníctvom cloudu Thingspeak

Monitorovanie údajov prostredníctvom cloudu Thingspeak
Monitorovanie údajov prostredníctvom cloudu Thingspeak

Po chvíli otvorte svoj kanál na ThingSpeak a mali by ste vidieť, ako sa teplota nahráva do cloudu Thingspeak v reálnom čase.

Krok 7: Spustite skript Python pri spustení

Ak to chcete urobiť, na konci súboru /etc/rc.local:

sudo nano /etc/rc.local

Pred ukončenie riadka 0 musíte umiestniť príkaz na spustenie skriptu:

sudo python /home/pi/cpu.py &

Prítomnosť symbolu & na konci príkazu je povinná, pretože ide o príznak na spustenie procesu na pozadí. Po reštarte sa skript automaticky spustí a ventilátor sa zapne, keď sú splnené stanovené podmienky.

Odporúča: