Obsah:

Chytré ovládání ventilátoru Raspberry Pi pomocí Pythonu a Thingspeak: 7 kroků
Chytré ovládání ventilátoru Raspberry Pi pomocí Pythonu a Thingspeak: 7 kroků

Video: Chytré ovládání ventilátoru Raspberry Pi pomocí Pythonu a Thingspeak: 7 kroků

Video: Chytré ovládání ventilátoru Raspberry Pi pomocí Pythonu a Thingspeak: 7 kroků
Video: Arduino návody | Raspberry Pi: Úvod a výběr desky 2024, Červenec
Anonim
Inteligentní ovládání ventilátoru Raspberry Pi pomocí Pythonu a Thingspeak
Inteligentní ovládání ventilátoru Raspberry Pi pomocí Pythonu a Thingspeak

Stručné shrnutí

Ve výchozím nastavení je ventilátor přímo připojen k GPIO - to znamená jeho neustálý provoz. I přes relativně tichý provoz ventilátoru není jeho nepřetržitý provoz efektivním využitím aktivního chladicího systému. Přitom neustálý provoz ventilátoru může být jen otravný. Pokud je Raspberry Pi vypnuto, ventilátor bude i nadále fungovat, pokud je připojeno napájení.

Tento článek ukáže, jak pomocí jednoduchých a nekomplikovaných manipulací proměnit stávající chladicí systém na chytrý, který se zapne, jen když to procesor opravdu potřebuje. Ventilátor by se zapínal pouze při intenzivním používání, čímž by se snížila spotřeba energie a hluk ventilátoru. Také prodlužuje životnost ventilátoru tím, že jej vypne, když není potřeba.

Co se naučíte

Jak implementovat skript Pythonu pro ovládání ventilátoru na základě aktuální teploty CPU Raspberry pomocí ovládání On-Off s teplotní hysterezí. Jak přenášet data z vašeho RaspberryPi do Things Speak Cloud.

Zásoby

Komponenty, které budete pro tento projekt požadovat, jsou následující

  • Počítač Raspberry Pi 4, model B 4 GB
  • NPN tranzistor S8050330ohms odpor
  • Hliníkové kovové pouzdro Armor s duálními ventilátory pro Raspberry Pi
  • Propojovací kabely
  • Prkénko

Krok 1: Budování obvodu

Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu

Obvod je docela jednoduchý. Napájení ventilátoru je přerušeno pomocí tranzistoru NPN. V této konfiguraci tranzistor funguje jako spínač na spodní straně. Odpor je vyžadován pouze k omezení proudu přes GPIO. GPIO Raspberry Pi má maximální proudový výstup 16mA. Použil jsem 330 ohmů, což nám dává základní proud asi (5-0,7)/330 = 13mA. Vybral jsem NPN tranzistor S8050, takže přepnutí zátěže 400mA z obou ventilátorů není žádný problém.

Krok 2: Zaznamenejte teplotu CPU pomocí ThingSpeak

Zaznamenávejte teplotu CPU pomocí ThingSpeak
Zaznamenávejte teplotu CPU pomocí ThingSpeak

ThingSpeak je platforma pro projekty založené na konceptu internetu věcí. Tato platforma vám umožňuje vytvářet aplikace na základě dat shromážděných ze senzorů. Mezi hlavní funkce ThingSpeak patří: sběr dat v reálném čase, zpracování dat a vizualizace. ThingSpeak API vám umožňuje nejen odesílat, ukládat a přistupovat k datům, ale také poskytuje různé statistické metody pro jejich zpracování.

ThingSpeak může integrovat populární zařízení a služby, jako jsou:

  • Arduino
  • Malina pii
  • oBridge / RealTime.io
  • Elektrický imp
  • Mobilní a webové aplikace
  • Sociální sítě
  • Analýza dat v MATLABu

Než začneme, potřebujete účet na ThingSpeak.

  1. Přejděte na následující odkaz a zaregistrujte se do ThingSpeak.
  2. Po aktivaci účtu se přihlaste.
  3. Přejděte na Kanály -> Moje kanály
  4. Klikněte na tlačítko Nový kanál.
  5. Zadejte název, popis a pole dat, která chcete nahrát
  6. Kliknutím na tlačítko Uložit kanál uložíte všechna svá nastavení.

Potřebujeme klíč API, který později přidáme do kódu pythonu, abychom mohli nahrát teplotu CPU do cloudu Thingspeak.

Kliknutím na kartu API Keys získáte klíč API pro zápis

Jakmile budete mít klíč API pro zápis, jsme téměř připraveni nahrát naše data.

Krok 3: Získání teploty CPU z Raspberry Pi pomocí Pythonu

Skript je založen na načítání teploty procesoru, ke kterému dochází každou sekundu. Lze jej získat z terminálu spuštěním příkazu vcgencmd s parametrem opatření_temp.

vcgencmd opatření_teplota

K provedení příkazu byla použita knihovna Subprocess.check_output () a poté pomocí regulárního výrazu extrahována skutečná hodnota z vráceného řetězce.

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čtení hodnoty teploty je třeba data odeslat do cloudu ThingSpeak. Pomocí klíče API pro zápis změňte proměnnou myApi v níže uvedeném kódu Pythonu.

z požadavku na import urllib

od re importu findall od č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 ("ExitPress Ctrl+C")

Krok 4: Ovládání ventilátoru na základě teploty

Níže uvedený skript Pythonu implementuje logiku, která zapne ventilátor, když teplota stoupne nad tempOn, a vypne se, jen když teplota klesne pod prahovou hodnotu. Tímto způsobem se ventilátor nebude rychle zapínat a vypínat.

importujte RPi. GPIO jako 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 práh = 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)) sleep (1) kromě KeyboardInterrupt: print ("ExitPress Ctrl+C") kromě: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") konečně: print ("CleanUp") GPIO.cleanup () print ("End of program")

Krok 5: Konečný kód Pythonu

Hlavní kód pythonu najdete na mém účtu GitHub v následujícím odkazu. Nezapomeňte zadat vlastní klíč API pro zápis.

  1. Přihlaste se na desku Raspberry PI
  2. Na terminálu spusťte následující příkaz

python3 cpu.py

Krok 6: Monitorování dat prostřednictvím cloudu Thingspeak

Monitorování dat prostřednictvím cloudu Thingspeak
Monitorování dat prostřednictvím cloudu Thingspeak

Po chvíli otevřete svůj kanál na ThingSpeak a měli byste vidět, jak se teplota nahrává do cloudu Thingspeak v reálném čase.

Krok 7: Spusťte skript Python při spuštění

Chcete -li to provést, na konci souboru /etc/rc.local:

sudo nano /etc/rc.local

Musíte umístit příkaz start skriptu před konec řádku 0:

sudo python /home/pi/cpu.py &

Přítomnost symbolu & na konci příkazu je povinná, protože se jedná o příznak pro spuštění procesu na pozadí. Po restartu se skript automaticky spustí a ventilátor se zapne, když jsou splněny stanovené podmínky.

Doporučuje: