Съдържание:
- Консумативи
- Стъпка 1: Настройте вентилатора си
- Стъпка 2: Създайте PI (D) контролер
- Стъпка 3: Стартирайте контролния скрипт при стартиране
Видео: Прецизен контрол на температурата на Raspberry Pi 4: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Pimoroni Fan Shim е чудесно решение за намаляване на температурата на вашия Pi, когато той е горещ. Производителите дори предоставят софтуер, който задейства вентилатора, когато температурата на процесора се повиши над определен праг (например 65 градуса). Температурата бързо намалява под по -нисък праг и изключва вентилатора. Това е страхотно, но причинява покачване и понижаване на температурата при умерено натоварване и създава звуков шум от вентилатора. Тази инструкция ще намали шума на вентилатора, докато фиксира температурата на процесора до определена стойност, използвайки нещо, наречено PID контролер. По -високите прагове (например 65 градуса) ще доведат до много по -тих вентилатор, докато по -ниските прагове (например 50 градуса) ще доведат до по -силен вентилатор, но по -добър контрол на температурата.
Горният пример показва моите резултати от пускането на PID контролера и промяната на целевата термична температура на всеки 500 секунди. Точността е +/- 1 градус с известно превишаване при внезапни промени в температурата.
Важното е, че този тест беше изпълнен при същото натоварване за общото време на тестване (гледане на BBC iPlayer).
Консумативи
- Малина Пи 4
- Pimoroni Fan Shim
Стъпка 1: Настройте вентилатора си
Първата стъпка е да настроите своя вентилатор. Урокът по Пиморини е страхотен!
След това отворете терминала на вашия Pi (ctrl alt t)
И инсталирайте кода, предоставен от Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
Стъпка 2: Създайте PI (D) контролер
Пропорционален интегрален производен контролер (PID) е система, използвана за контрол на стойността на определен процес (температура на процесора) чрез манипулиране на някакво физическо устройство (скорост на вентилатора). Можем да манипулираме „скоростта“и шума на вентилатора, като го включваме и изключваме периодично (Pulse Wave Modulation). Продължителността на времето, през което е включено в даден период (например 1 секунда), определя колко бърз и силен е вентилаторът (900ms = силен и бърз, 100ms = тих и бавен). Ще използваме PID, за да манипулираме скоростта на вентилатора и по този начин да контролираме температурата.
Можем да разделим използването на PID на няколко стъпки.
- Решете стойността на променливата на процеса, която искате да постигнете (напр. Температура на процесора = 55). Това се нарича вашата зададена точка.
- Изчислете PID грешката. Ако вашата зададена стойност е 55 градуса, а действителната температура е 60 градуса, грешката ви е 5 градуса (Температура - зададена точка)
- Променете времето на включване на вентилатора пропорционално на грешката (Големите грешки водят до големи промени в скоростта на вентилатора, малките грешки причиняват малки промени в скоростта на вентилатора).
- Регулирайте вентилатора в собствено отношение към минали стойности (Интегрален/сума от всички предишни грешки)
- По желание можете да регулирате скоростта на вентилатора въз основа на скоростта на промяна на грешката (производна), но тук няма да направим това
Сега, когато имате теорията, изпълнете кода по -долу в IDE на Thonny (или някаква друга IDE на python). Променете стойността на „target“в кода по -долу, за да промените на каква температура искате да поддържате вашия Pi. Задал съм термините „P“и „I“на малко произволни стойности. Не се колебайте да ги коригирате, ако не работят за вас. увеличаването на „P“означава, че контролерът ще реагира бързо на нови грешки (но може да не е стабилен). Промяната на „I“ще накара контролера да претегли отговора си повече към минали стойности. Не бих се опитал да направя тези термини твърде големи, тъй като бързото променяне на скоростта на вентилатора няма бързо да промени сроковете. Също така, ако вършите изключително тежка работа с вашия Pi, може да не постигнете желаната от вас температура (границите на вентилатора все още важат).
от fanshim внос FanShim
от време за импортиране на сън, време за импортиране os импортиране на математика # Връщане на температурата на процесора като символен низ def getCPUtemperature (): res = os.popen ('vcgencmd измервателна_темпа'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," "))) fanshim = FanShim () target = 55 # желана температура (играйте с това и вижте какво се случва) period = 1 # PWM период на =.1 # инициализирайте на 0 % цикъл на изключване = период на включване # инициализиране до 0% работен цикъл P =.01 # пропорционален термин на усилване (играйте с това и вижте какво се случва) intErr = 0 # интегрална грешка I =.0001 # интергрален термин на усилване (играйте с това и вижте какво се случва) докато True: # get temperaute temp = int (float (getCPUtemperature ())) # изчисляване на грешка и гладко err = temp-target # compute integra lerror и го ограничете intErr = intErr+err, ако intErr> 10: intErr = 10, ако intErr = период: включен = период на изключване = 0 иначе: включен = включен изключен = период-включен # задайте минимален работен цикъл, ако е включен <.09: включен =.09 иначе: включен = включен # PWM на щифта на вентилатора, ако на == период: fanshim.set_fan (True) сън (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)
Стъпка 3: Стартирайте контролния скрипт при стартиране
Можете да стартирате този скрипт всеки път, когато стартирате вашия pi, или можете да го активирате автоматично при рестартиране. Това е супер лесно да се направи с crontab.
- отворете терминала
- въведете crontab-e в терминала
- добавете следния ред код към файла „@reboot python /home/pi/bootScripts/fanControl.py &“
- излезте и рестартирайте
Сложих скрипта (fanControl.py) във флодер, наречен bootScripts, но можете да го поставите навсякъде, просто се уверете, че сте посочили правилния път в crontab.
Готово! Сега вашият вентилатор ще контролира температурата на вашия процесор до определена стойност, като същевременно минимизира шума, който произвежда.
Препоръчано:
Домашна автоматизация с NodeMCU сензор за докосване LDR реле за контрол на температурата: 16 стъпки
Домашна автоматизация с NodeMCU сензор за докосване LDR реле за контрол на температурата: В моите минали проекти на NodeMCU съм управлявал две домакински уреди от приложението Blynk. Получих много коментари и съобщения за надграждане на проекта с ръчно управление и добавяне на още функции. Затова проектирах тази кутия за удължаване на дома
RC автомобил с Bluetooth контрол с контрол на скоростта и измерване на разстоянието: 8 стъпки
RC автомобил с Bluetooth контрол с контрол на скоростта и измерване на разстоянието: Като дете винаги съм бил очарован от RC колите. В днешно време можете да намерите много уроци, за да направите сами евтини RC автомобили с Bluetooth, с помощта на Arduino. Нека направим още една крачка напред и използваме нашите практически познания по кинематика, за да изчислим
Система за контрол на влажността и температурата за терариум: 11 стъпки (със снимки)
Система за контрол на влажността и температурата за Терариум: ВЪВЕДЕНИЕ: Тази инструкция е за разработване на модулна система за контрол на влажността и температурата, използваща Arduino Uno. Тази система използва водоустойчива сонда за влажност и температура за наблюдение на параметрите на околната среда и връзка Arduino Uno
Контрол на яркостта ШИМ базиран LED контрол с помощта на бутони, Raspberry Pi и надраскване: 8 стъпки (със снимки)
Контрол на яркостта PWM управление на LED управление с помощта на бутони, Raspberry Pi и Scratch: Опитвах се да намеря начин да обясня как PWM работи на моите ученици, затова си поставих задачата да се опитам да контролирам яркостта на светодиода с помощта на 2 бутона - единият бутон увеличава яркостта на светодиода, а другият го затъмнява. Към програмата
Контрол на температурата вкъщи с PID и Labview: 4 стъпки
Control Temperature Home с PID и Labview: PID merupakan suatu система pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan controlloer PID пада pengatur suhu ruangan menggunakan labview