Obsah:

Presné ovládanie teploty na krokoch Raspberry Pi 4: 3
Presné ovládanie teploty na krokoch Raspberry Pi 4: 3

Video: Presné ovládanie teploty na krokoch Raspberry Pi 4: 3

Video: Presné ovládanie teploty na krokoch Raspberry Pi 4: 3
Video: BTT - Manta E3EZ - CB1 with EMMc install 2024, November
Anonim
Presné ovládanie teploty na Raspberry Pi 4
Presné ovládanie teploty na Raspberry Pi 4

Pimoroni Fan Shim je skvelým riešením na zníženie teploty vášho Pi, keď je horúci. Výrobcovia dokonca poskytujú softvér, ktorý spúšťa ventilátor, keď teplota procesora stúpne nad určitú prahovú hodnotu (napr. 65 stupňov). Teplota sa rýchlo zníži pod dolnú prahovú hodnotu a vypne ventilátor. Je to skvelé, ale teplota pri miernom zaťažení stúpa a klesá a vytvára počuteľný hluk ventilátora. Tento pokyn zníži hluk ventilátora pri fixácii teploty CPU na konkrétnu hodnotu pomocou niečoho, čo sa nazýva PID regulátor. Vyššie prahy (napr. 65 stupňov) budú mať za následok oveľa tichší ventilátor, zatiaľ čo nižšie prahové hodnoty (napr. 50 stupňov) budú mať za následok hlasnejší ventilátor, ale lepšiu kontrolu teploty.

Vyššie uvedený príklad ukazuje moje výsledky zo spustenia PID regulátora a zmeny cieľovej teploty každých 500 sekúnd. Presnosť je +/- 1 stupeň s určitým prekročením pri náhlych zmenách teploty.

Čo je dôležité, tento test bol vykonaný pri rovnakom zaťažení po celý čas testu (sledovanie BBC iPlayer).

Zásoby

  • Raspberry Pi 4
  • Pimoroni Fan Shim

Krok 1: Nastavte si ventilátor

Nastavte si ventilátor
Nastavte si ventilátor

Prvým krokom je nastavenie ventilátora. Výučba Pimorini je skvelá!

Potom otvorte terminál na svojom Pi (ctrl alt t)

A nainštalujte kód poskytovaný spoločnosťou Pimoroni

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

Krok 2: Vytvorte ovládač PI (D)

Vytvorte ovládač PI (D)
Vytvorte ovládač PI (D)

Proporcionálny integrálny derivát (PID) je systém, ktorý sa používa na riadenie hodnoty určitého procesu (teplota CPU) manipuláciou s nejakým fyzickým zariadením (rýchlosť ventilátora). „Rýchlosťou“a hlukom ventilátora môžeme manipulovať pravidelným zapínaním a vypínaním (modulácia pulznou vlnou). Doba, počas ktorej je zapnutý v danom období (napr. 1 sekunda), určuje, ako rýchly a hlasný je ventilátor (900 ms = hlasný a rýchly, 100 ms = tichý a pomalý). PID budeme používať na manipuláciu s otáčkami ventilátora a tým na ovládanie teploty.

Použitie PID môžeme rozdeliť na niekoľko krokov.

  1. Rozhodnite sa pre hodnotu procesnej premennej, ktorú chcete dosiahnuť (napr. Teplota CPU = 55). Toto sa nazýva vaša požadovaná hodnota.
  2. Vypočítajte chybu PID. Ak je vaša požadovaná hodnota 55 stupňov a skutočná teplota 60 stupňov, vaša chyba je 5 stupňov (teplota - požadovaná hodnota)
  3. Zmeňte dobu zapnutia ventilátora v pomere k chybe (Veľké chyby majú za následok veľké zmeny rýchlosti ventilátora, malé chyby spôsobujú malé zmeny rýchlosti ventilátora).
  4. Upravte ventilátor v pomere k predchádzajúcim hodnotám (integrál/súčet všetkých predchádzajúcich chýb)
  5. Voliteľne môžete nastaviť rýchlosť ventilátora na základe rýchlosti zmeny chyby (odvodenej), ale tu to neurobíme

Teraz, keď máte teóriu, spustite nižšie uvedený kód v Thonny IDE (alebo v inom python IDE). Zmeňte hodnotu „cieľa“v nižšie uvedenom kóde a zmeňte teplotu, na ktorej chcete udržiavať svoje Pi. Nastavil som termíny 'P' a 'I' na trochu ľubovoľné hodnoty. Ak vám nefungujú, pokojne ich upravte. zväčšenie „P“znamená, že regulátor bude rýchlo reagovať na nové chyby (ale nemusí byť stabilný). Zmena „I“spôsobí, že regulátor váži svoju reakciu na predchádzajúce hodnoty. Nesnažil by som sa, aby boli tieto výrazy príliš veľké, pretože rýchla zmena rýchlosti ventilátora rýchlo nezmení teplotu. Tiež, ak robíte na svojom Pi neskutočne ťažkú prácu, možno nedosiahnete požadovanú teplotu (limity ventilátora stále platia).

od fanshim importovať FanShim

z času importu spánku, importu času os importu matematiky # Vrátiť teplotu CPU ako reťazec znakov def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," "))) fanshim = FanShim () cieľ = 55 # požadovaná teplota (pohrajte sa s tým a uvidíte, čo sa stane) obdobie = 1 # perióda PWM zapnutá =.1 # inicializácia na 0 % pracovného cyklu vypnuté = perióda zapnutia # inicializácia na 0% pracovný cyklus P = 0,01 # proporcionálne Zisk (s týmto sa pohrajte a uvidíte, čo sa stane) intErr = 0 # integrálna chyba I =, 0001 # medziregulačný zisk (s týmto a uvidíme, čo sa stane), zatiaľ čo True: # get temperaute temp = int (float (getCPUtemperature ())) # vypočítať chybu a vyhladiť err = temp-target # vypočítať integračnú chybu a obmedziť ju intErr = intErr+err, ak intErr> 10: intErr = 10 if intErr = perioda: on = period off = 0 else: on = on off = period-on # set minimum minimum cycle if on <0,09: on =.09 else: on = on # PWM on the fanshim pin if if zapnuté == bodka: fanshim.set_fan (True) spánok (zapnutý) else: fanshim.set_fan (True) s leep (zapnutý) fanshim.set_fan (falošný) spánok (vypnutý)

Krok 3: Spustite ovládací skript pri spustení

Pri spustení spustite Control Script
Pri spustení spustite Control Script

Tento skript môžete spustiť vždy, keď spustíte svoje pi, alebo ho môžete nechať automaticky spustiť pri reštarte. S crontabom je to veľmi jednoduché.

  1. otvor terminál
  2. zadajte do terminálu crontab-e
  3. pridajte nasledujúci riadok kódu do súboru „@reboot python /home/pi/bootScripts/fanControl.py &“
  4. ukončiť a reštartovať

Vložil som skript (fanControl.py) do priečinka s názvom bootScripts, ale môžete ho vložiť kdekoľvek, len sa uistite, že v crontab zadáte správnu cestu.

Všetko hotové! Teraz bude váš ventilátor ovládať teplotu vášho procesora na konkrétnu hodnotu a zároveň minimalizovať počuteľný hluk, ktorý vytvára.

Odporúča: