Obsah:

Přesná regulace teploty na krocích Raspberry Pi 4: 3
Přesná regulace teploty na krocích Raspberry Pi 4: 3

Video: Přesná regulace teploty na krocích Raspberry Pi 4: 3

Video: Přesná regulace teploty na krocích Raspberry Pi 4: 3
Video: Smartdata - Moderní technologie hrou – 11. díl – Měření teploty pomocí Raspberry PI 2024, Listopad
Anonim
Přesné ovládání teploty na Raspberry Pi 4
Přesné ovládání teploty na Raspberry Pi 4

Pimoroni Fan Shim je skvělým řešením pro snížení teploty vašeho Pi, když je horký. Tvůrci dokonce poskytují software, který spouští ventilátor, když teplota procesoru stoupne nad určitou prahovou hodnotu (např. 65 stupňů). Teplota se rychle sníží pod spodní práh a vypne ventilátor. To je skvělé, ale způsobuje to, že teplota stoupá a klesá při mírném zatížení a vytváří slyšitelný hluk ventilátoru. Tento instruktáž sníží hluk ventilátoru při fixaci teploty CPU na konkrétní hodnotu pomocí něčeho, co se nazývá PID regulátor. Vyšší prahové hodnoty (např.65 stupňů) budou mít za následek mnohem tišší ventilátor, zatímco nižší prahové hodnoty (např.50 stupňů) budou mít za následek hlasitější ventilátor, ale lepší regulaci teploty.

Výše uvedený příklad ukazuje mé výsledky ze spuštění PID regulátoru a změny cílové teploty každých 500 sekund. Přesnost je +/- 1 stupeň s určitým překročením při náhlých změnách teploty.

Důležité je, že tento test byl proveden při stejné zátěži po celou dobu testu (sledování BBC iPlayer).

Zásoby

  • Raspberry Pi 4
  • Pimoroni Fan Shim

Krok 1: Nastavte si ventilátor

Nastavte si ventilátor
Nastavte si ventilátor

Prvním krokem je nastavení ventilátoru. Výukový program na Pimorini je skvělý!

Poté otevřete terminál na vašem Pi (ctrl alt t)

A nainstalujte kód poskytovaný společností Pimoroni

git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

Krok 2: Vytvořte ovladač PI (D)

Vytvořte řadič PI (D)
Vytvořte řadič PI (D)

Proporcionální integrovaný derivát (PID) je systém, který se používá k řízení hodnoty určitého procesu (teploty CPU) manipulací s nějakým fyzickým zařízením (rychlost ventilátoru). Můžeme manipulovat s 'rychlostí' a hlukem ventilátoru pravidelným zapínáním a vypínáním (Pulse Wave Modulation). Doba, po kterou je v daném období zapnutá (např. 1 sekunda), určuje, jak rychlý a hlasitý je ventilátor (900 ms = hlasitý a rychlý, 100 ms = tichý a pomalý). PID využijeme k manipulaci s otáčkami ventilátoru a tím k ovládání teploty.

Použití PID můžeme rozdělit na několik kroků.

  1. Rozhodněte se o hodnotě procesní proměnné, které chcete dosáhnout (např. Teplota CPU = 55). Toto se nazývá vaše požadovaná hodnota.
  2. Vypočítejte chybu PID. Pokud je vaše požadovaná hodnota 55 stupňů a skutečná teplota 60 stupňů, vaše chyba je 5 stupňů (teplota - požadovaná hodnota)
  3. Změňte čas zapnutí ventilátoru úměrně k chybě (Velké chyby způsobují velké změny rychlosti ventilátoru, malé chyby způsobují malé změny rychlosti ventilátoru).
  4. Upravte ventilátor v poměru k minulým hodnotám (integrál/součet všech předchozích chyb)
  5. Volitelně můžete upravit rychlost ventilátoru na základě rychlosti změny chyby (derivace), ale zde to neuděláme

Nyní, když máte teorii, spusťte níže uvedený kód v IDE Thonny (nebo jiném IDE pythonu). Změňte hodnotu „cíle“v níže uvedeném kódu, abyste změnili, na jaké teplotě chcete udržovat Pi. Nastavil jsem podmínky 'P' a 'I' na poněkud libovolné hodnoty. Pokud vám nefungují, můžete je upravit. zvětšení „P“znamená, že ovladač bude rychle reagovat na nové chyby (ale nemusí být stabilní). Změna „I“způsobí, že ovladač váží svou reakci více na minulé hodnoty. Nesnažil bych se, aby tyto termíny byly příliš velké, protože rychlá změna rychlosti ventilátoru rychle nezmění teplotu. Pokud na svém Pi provádíte neuvěřitelně těžkou práci, možná nedosáhnete požadované teploty (limity ventilátoru stále platí).

od fanshim importovat FanShim

z času importu spánku, importu času os importu matematiky # Vrátit teplotu CPU jako řetězec znaků def getCPUtemperature (): res = os.popen ('vcgencmd opatření_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," "))) fanshim = FanShim () cíl = 55 # požadovaná teplota (pohrajte si s tím a uvidíte, co se stane) perioda = 1 # perioda PWM zapnuta =.1 # inicializace na 0 % pracovního cyklu vypnuto = zapnuto # zapnuto # inicializováno na 0% pracovní cyklus P = 0,01 # proporcionální Gain term (pohrajte si s tím a uvidíte, co se stane) intErr = 0 # integrální chyba I =, 0001 # intergral gain term (hrajte s tímto a uvidíme, co se stane) zatímco True: # get temperaute temp = int (float (getCPUtemperature ())) # vypočítat chybu a vyhladit err = temp-target # vypočítat integrační chybu a omezit ji intErr = intErr+err pokud intErr> 10: intErr = 10 if intErr = perioda: on = period off = 0 else: on = on off = period-on # nastavte minimální pracovní cyklus pokud zapnuto <.09: on =.09 else: on = on # PWM na pinu ventilátoru pokud on == period: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (zapnuto) fanshim.set_fan (falešný) spánek (vypnuto)

Krok 3: Spusťte ovládací skript při spuštění

Při spuštění spusťte ovládací skript
Při spuštění spusťte ovládací skript

Tento skript můžete spustit vždy, když spustíte pi, nebo jej můžete nechat spustit automaticky při restartu. S crontabem je to velmi jednoduché.

  1. otevřete terminál
  2. do terminálu zadejte crontab-e
  3. přidejte následující řádek kódu do souboru '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. ukončete a restartujte

Vložil jsem skript (fanControl.py) do floderu s názvem bootScripts, ale můžete jej umístit kamkoli, jen se ujistěte, že zadáte správnou cestu v crontab.

Vše hotovo! Nyní bude váš ventilátor řídit teplotu vašeho procesoru na konkrétní hodnotu a zároveň minimalizovat slyšitelný hluk, který vydává.

Doporučuje: