Obsah:
- Zásoby
- Krok 1: Budování obvodu
- Krok 2: Zaznamenejte teplotu CPU pomocí ThingSpeak
- Krok 3: Získání teploty CPU z Raspberry Pi pomocí Pythonu
- Krok 4: Ovládání ventilátoru na základě teploty
- Krok 5: Konečný kód Pythonu
- Krok 6: Monitorování dat prostřednictvím cloudu Thingspeak
- Krok 7: Spusťte skript Python při spuštění
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
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
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
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.
- Přejděte na následující odkaz a zaregistrujte se do ThingSpeak.
- Po aktivaci účtu se přihlaste.
- Přejděte na Kanály -> Moje kanály
- Klikněte na tlačítko Nový kanál.
- Zadejte název, popis a pole dat, která chcete nahrát
- 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.
- Přihlaste se na desku Raspberry PI
- Na terminálu spusťte následující příkaz
python3 cpu.py
Krok 6: 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.