Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Skonfiguruj wentylator
- Krok 2: Utwórz regulator PI(D)
- Krok 3: Uruchom skrypt sterujący podczas uruchamiania
Wideo: Precyzyjna kontrola temperatury na Raspberry Pi 4: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Podkładka pod wentylator Pimoroni to świetne rozwiązanie do obniżania temperatury Twojego Pi, gdy jest gorące. Twórcy dostarczają nawet oprogramowanie, które uruchamia wentylator, gdy temperatura procesora wzrośnie powyżej pewnego progu (np. 65 stopni). Temperatura szybko spada poniżej dolnego progu i wyłącza wentylator. Jest to świetne, ale powoduje wzrost i spadek temperatury przy umiarkowanych obciążeniach i powoduje słyszalny hałas wentylatora. Ta instrukcja zmniejszy hałas wentylatora, jednocześnie ustalając temperaturę procesora do określonej wartości za pomocą czegoś zwanego kontrolerem PID. Wyższe progi (np. 65 stopni) będą skutkować znacznie cichszym wentylatorem, podczas gdy niższe progi (np. 50 stopni) będą skutkować głośniejszym wentylatorem, ale lepszą kontrolą temperatury.
Powyższy przykład pokazuje moje wyniki z uruchomienia regulatora PID i zmiany docelowej temperatury co 500 sekund. Dokładność wynosi +/- 1 stopień z pewnym przeregulowaniem przy nagłych zmianach temperatury.
Co ważne, test ten był wykonywany pod tym samym obciążeniem przez łączny czas testu (oglądanie BBC iPlayer).
Kieszonkowe dzieci
- Raspberry Pi 4
- Pimoroni Fan Shim
Krok 1: Skonfiguruj wentylator
Pierwszym krokiem jest skonfigurowanie wentylatora. Samouczek Pimorini jest świetny!
Następnie otwórz terminal na swoim Pi (ctrl alt t)
I zainstaluj kod dostarczony przez Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanhim-python sudo./install.sh
Krok 2: Utwórz regulator PI(D)
Regulator proporcjonalno-całkująco różniczkowy (PID) to system używany do sterowania wartością pewnego procesu (temperatura procesora) poprzez manipulowanie pewnym urządzeniem fizycznym (prędkość wentylatora). Możemy manipulować „prędkością” i hałasem wentylatora poprzez jego okresowe włączanie i wyłączanie (modulacja fali impulsowej). Czas, przez jaki jest włączony w danym okresie (np. 1 sekunda) określa, jak szybko i jak głośny jest wentylator (900 ms = głośno i szybko, 100 ms = cicho i wolno). Użyjemy PID do manipulowania prędkością wentylatora, a tym samym do kontrolowania temperatury.
Możemy podzielić użycie PID na liczbę kroków.
- Zdecyduj, jaką wartość zmiennej procesowej chcesz osiągnąć (np. temperatura procesora = 55). Nazywa się to twoją wartością zadaną.
- Oblicz błąd PID. Jeśli twoja wartość zadana wynosi 55 stopni, a rzeczywista temperatura wynosi 60 stopni, błąd wynosi 5 stopni (temperatura - wartość zadana)
- Zmień czas pracy wentylatora proporcjonalnie do błędu (duże błędy powodują duże zmiany prędkości wentylatora, małe błędy powodują małe zmiany prędkości wentylatora).
- Dostosuj wentylator proporcjonalnie do przeszłych wartości (Całka/suma wszystkich poprzednich błędów)
- Opcjonalnie możesz dostosować prędkość wentylatora na podstawie szybkości zmiany błędu (pochodna), ale nie zrobimy tego tutaj
Teraz, gdy masz już teorię, uruchom poniższy kod w IDE Thonny (lub innym IDE Pythona). Zmień wartość „target” w poniższym kodzie, aby zmienić temperaturę, w której chcesz utrzymać swoje Pi. Ustawiłem warunki „P” i „I” na nieco arbitralne wartości. Możesz je dostosować, jeśli nie działają dla Ciebie. zwiększenie „P” oznacza, że kontroler będzie szybko reagował na nowe błędy (ale może nie być stabilny). Zmiana „I” spowoduje, że sterownik będzie bardziej ważył swoją odpowiedź na przeszłe wartości. Nie próbowałbym czynić tych terminów zbyt dużymi, ponieważ gwałtowna zmiana prędkości wentylatora nie spowoduje gwałtownej zmiany temperatury. Ponadto, jeśli wykonujesz niewiarygodnie ciężką pracę nad swoim Pi, możesz nie osiągnąć pożądanej temperatury (wciąż obowiązują limity wentylatora).
from fanhim importuj FanShim
from time import sleep, time import os import math # Zwraca temperaturę procesora jako ciąg znaków def getCPUtemperature(): res = os.popen('vcgencmd Measure_temp').readline() return(res.replace("temp=", " ").replace("'C\n", "")) fanhim = FanShim() target = 55 # pożądana temperatura (pobaw się tym i zobacz co się stanie) period=1 # okres PWM on=.1 # inicjalizuj na 0 % wypełnienia cyklu off=okres włączenia # inicjalizacja do 0% wypełnienia cyklu P=.01 # proporcjonalny współczynnik wzmocnienia (pobaw się tym i zobacz, co się stanie) intErr=0 # błąd integralny I=.0001 # integralny współczynnik wzmocnienia (pobaw się tym i zobacz, co się stanie) podczas gdy True: # get temperaute temp=int(float(getCPUtemperature())) # oblicz błąd i wygładzić err = temp-target # oblicz błąd całki i ogranicz go intErr=intErr+err if intErr>10: intErr =10 if intErr=period: on=period off=0 else: on=on off = period-on # ustaw minimalny cykl pracy if on<.09: on=.09 else: on=on # PWM na szpilce fanhima if on ==okres: fanhim.set_fan(True) sleep(on) else: fanhim.set_fan(True) s leep(on) fanhim.set_fan(false) spanie(off)
Krok 3: Uruchom skrypt sterujący podczas uruchamiania
Możesz uruchomić ten skrypt za każdym razem, gdy uruchamiasz swoje pi lub możesz go automatycznie uruchomić po ponownym uruchomieniu. Jest to bardzo proste w crontab.
- otwórz terminal
- wpisz crontab-e w terminalu
- dodaj następujący wiersz kodu do pliku „@reboot python /home/pi/bootScripts/fanControl.py &”
- wyjdź i uruchom ponownie
Umieściłem skrypt (fanControl.py) w floderze zwanym bootScripts, ale możesz go umieścić w dowolnym miejscu, po prostu upewnij się, że podałeś poprawną ścieżkę w crontab.
Wszystko gotowe! Teraz twój wentylator będzie kontrolował temperaturę twojego procesora do określonej wartości, jednocześnie minimalizując słyszalny hałas, który wytwarza.
Zalecana:
Odczyt temperatury za pomocą czujnika temperatury LM35 z Arduino Uno: 4 kroki
Odczytywanie temperatury za pomocą czujnika temperatury LM35 z Arduino Uno: Cześć, w tej instrukcji dowiemy się, jak używać LM35 z Arduino. Lm35 to czujnik temperatury, który może odczytywać wartości temperatury od -55°C do 150°C. Jest to 3-zaciskowe urządzenie, które dostarcza napięcie analogowe proporcjonalne do temperatury. Cześć G
Tupperware z kontrolą temperatury: 4 kroki
Tupperware z kontrolowaną temperaturą: Chcieliśmy mieć schłodzony pojemnik do przechowywania różnych przedmiotów. Zdecydowaliśmy się użyć MSP432 do zasilania i sterowania systemem, ze względu na jego wszechstronność. Użyliśmy tranzystora, aby umożliwić nam wykorzystanie PWM do zasilania wentylatora. Jeśli masz 3-przewodowy wentylator PWM
Kontrola temperatury w domu za pomocą PID i Labview: 4 kroki
Kontroluj temperaturę w domu za pomocą PID i Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan control PID pada pengatur suhu run menggunakan labview
Precyzyjna pompa perystaltyczna: 13 kroków
Precyzyjna pompa perystaltyczna: Jesteśmy zespołem studenckim z różnych dyscyplin Uniwersytetu RWTH Aachen i stworzyliśmy ten projekt w kontekście konkursu iGEM 2017. Po całej pracy, która została włożona w naszą pompę, chcielibyśmy podzielić się z Państwem naszymi wynikami !Budujemy
Inteligentna wtyczka z kontrolą temperatury z obsługą Wi-Fi: 4 kroki
Inteligentna wtyczka sterowana temperaturą z obsługą WiFi: W tym zestawie instrukcji przyjrzymy się, jak zbudować sondę temperatury obsługującą WiFi za pomocą prostego ESP8266 do podnoszenia ciężkich przedmiotów i czujnika temperatury/wilgotności DHT11. Będziemy również używać płytki drukowanej, którą stworzyłem i