Оглавление:
- Запасы
- Шаг 1. Настройте вентилятор
- Шаг 2: Создайте контроллер PI (D)
- Шаг 3. Запуск сценария управления при запуске
Видео: Точный контроль температуры на Raspberry Pi 4: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Pimoroni Fan Shim - отличное решение для снижения температуры вашего Pi, когда он нагревается. Производители даже предоставляют программное обеспечение, которое запускает вентилятор, когда температура процессора поднимается выше определенного порога (например, 65 градусов). Температура быстро снижается ниже нижнего порога и отключается вентилятор. Это замечательно, но при умеренных нагрузках температура поднимается и опускается, а вентилятор слышит шум. Эта инструкция снизит шум вентилятора при фиксировании температуры процессора на определенном значении с помощью так называемого ПИД-регулятора. Более высокие пороги (например, 65 градусов) приведут к гораздо более тихому вентилятору, а более низкие пороги (например, 50 градусов) приведут к более громкому вентилятору, но лучшему контролю температуры.
В приведенном выше примере показаны мои результаты запуска ПИД-регулятора и изменения целевой температуры каждые 500 секунд. Точность составляет +/- 1 градус с некоторым выбросом при резких изменениях температуры.
Важно отметить, что этот тест проводился под одной и той же нагрузкой в течение всего времени тестирования (просмотр BBC iPlayer).
Запасы
- Raspberry Pi 4
- Пиморони Фан Шим
Шаг 1. Настройте вентилятор
Первый шаг - настроить вентилятор. Учебник Пиморини великолепен!
Затем откройте терминал на своем Pi (ctrl alt t)
И установите код, предоставленный Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanhim-python sudo./install.sh
Шаг 2: Создайте контроллер PI (D)
Пропорционально-интегрально-производный (ПИД) контроллер - это система, используемая для управления значением определенного процесса (температура процессора) путем управления каким-либо физическим устройством (скоростью вращения вентилятора). Мы можем управлять «скоростью» и шумом вентилятора, периодически включая и выключая его (импульсная модуляция). Время, в течение которого он включен в определенный период (например, 1 секунда), определяет, насколько быстро и насколько громко вентилятор (900 мс = громко и быстро, 100 мс = тихо и медленно). Мы будем использовать PID, чтобы управлять скоростью вентилятора и, таким образом, контролировать температуру.
Мы можем разделить использование PID на количество шагов.
- Определите значение переменной процесса, которое вы хотите достичь (например, температура процессора = 55). Это называется вашей уставкой.
- Рассчитайте ошибку PID. Если ваше заданное значение составляет 55 градусов, а фактическая температура составляет 60 градусов, ваша ошибка составляет 5 градусов (Температура - заданное значение).
- Измените время включения вентилятора пропорционально ошибке (большие ошибки приводят к большим изменениям скорости вентилятора, небольшие ошибки вызывают небольшие изменения скорости вентилятора).
- Отрегулируйте вентилятор пропорционально прошлым значениям (интеграл / сумма всех предыдущих ошибок)
- При желании вы можете регулировать скорость вращения вентилятора в зависимости от скорости изменения погрешности (производной), но мы не будем этого делать здесь.
Теперь, когда у вас есть теория, запустите приведенный ниже код в Thonny IDE (или в какой-либо другой среде IDE Python). Измените значение 'target' в приведенном ниже коде, чтобы изменить температуру, на которой вы хотите поддерживать свой Pi. Я установил термины «P» и «I» на несколько произвольные значения. Не стесняйтесь настраивать их, если они вам не подходят. увеличение «P» означает, что контроллер будет быстро реагировать на новые ошибки (но может быть нестабильным). Изменение «I» заставит контроллер больше взвешивать свою реакцию на прошлые значения. Я бы не стал делать эти термины слишком большими, так как быстрое изменение скорости вентилятора не приведет к быстрому изменению температуры. Кроме того, если вы делаете невероятно тяжелую работу на своем Pi, вы можете не достичь желаемой температуры (ограничения вентилятора все еще применяются).
из фансим импорт ФанШим
from time import sleep, time import os import math # Возвращать температуру процессора в виде символьной строки def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) FanShim = FanShim () target = 55 # желаемая температура (поиграйте с этим и посмотрите, что произойдет) period = 1 # период ШИМ вкл =.1 # инициализировать до 0 % рабочего цикла выключен = период включен # инициализация до 0% рабочего цикла P =.01 # пропорциональный коэффициент усиления (поиграйте с этим и посмотрите, что произойдет) intErr = 0 # интегральная ошибка I =.0001 # интегральный коэффициент усиления (поиграйте с этим и посмотрим, что произойдет) while True: # get temperaute temp = int (float (getCPUtemperature ())) # вычислить ошибку и сгладить err = temp-target # вычислить интегральную ошибку и ограничить ее intErr = intErr + err if intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # установить минимальный рабочий цикл, если включен <.09: on =.09 else: on = on # ШИМ на выводе шибера вентилятора, если on == period: fanhim.set_fan (True) sleep (on) else: fanhim.set_fan (True) s leep (on) fanhim.set_fan (False) sleep (off)
Шаг 3. Запуск сценария управления при запуске
Вы можете запускать этот скрипт каждый раз, когда запускаете свой пи, или он может автоматически запускаться при перезагрузке. Это очень просто сделать с помощью crontab.
- открыть терминал
- введите crontab-e в терминал
- добавьте следующую строку кода в файл '@reboot python /home/pi/bootScripts/fanControl.py &'
- выйти и перезагрузиться
Я поместил скрипт (fanControl.py) во флудер с именем bootScripts, но вы можете поместить его куда угодно, просто убедитесь, что вы указали правильный путь в crontab.
Все сделано! Теперь ваш вентилятор будет регулировать температуру вашего процессора до определенного значения, минимизируя при этом создаваемый им слышимый шум.
Рекомендуемые:
Точный и точный вольтметр Arduino (0-90 В постоянного тока): 3 шага
Arduino Precise & Accurate Volt Meter (0-90V DC): в этой инструкции я построил вольтметр для измерения высокого напряжения постоянного тока (0-90v) с относительной точностью и точностью с помощью Arduino Nano. Проведенные мной тестовые измерения были достаточно точными, в основном в пределах 0,3 В от фактического напряжения, измеренного с помощью
Контроль температуры, Umidade E Amônia Em Aviário Com Arduino Uno: 6 шагов
Monitoramento De Temperatura, Umidade E Amônia Em Aviário Com Arduino Uno: O Consumo de produtos de frango cresce continamente no mercado mundial, sendo o Brasil um grande produtor com aviários. Desta forma, algumas dificuldades ainda encontradas pelos produtores como morte prematura dos animais e difficiências causam perd
Контроль температуры в помещении на основе IOT: 5 шагов
Управление температурой в помещении на основе IOT: это инструктируется в проекте управления температурой в помещении на основе IOT. Особенности: -1. Автоматическое включение вентилятора при превышении заданной комнатной температуры 2. Автоматически ВЫКЛЮЧИТЕ вентилятор ниже заданной температуры в помещении 3. Ручное управление в любой момент
Контроль температуры дома с помощью PID и Labview: 4 шага
Контроль температуры дома с помощью PID и Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan kontrolloer PID pada pengatur suhu ruangan lab menggunak
Контроль температуры с помощью вентиляторов Arduino и PWM: 6 шагов (с изображениями)
Контроль температуры с помощью вентиляторов Arduino и PWM: регулирование температуры с помощью PID на Arduino и вентиляторы PWM для охлаждения самостоятельной серверной / сетевой стойки Несколько недель назад мне нужно было установить стойку с сетевыми устройствами и несколькими серверами. Стойка размещена в закрытом гараже, так что диапазон температур между зимой и