Контроллер системы охлаждения
Назначение
Контроллер собственной разработки для управления иммерсионной системой охлаждения.
Основные функции
1. Мониторинг температуры
Система использует цифровые датчики DS18B20 для контроля температуры в ключевых точках:
- Температура жидкости в нижней точке подачи и верхней точке забора жидкости в ванне.
- температура жидкости на входе и выходе радиатора каждого цпу и гпу.
- температура воздуха в помещении.
2. Мониторинг потоков
- Использование датчиков потока (Flow meters) на основе эффекта Холла в каждом контуре циркуляции цпу и гпу. Подробное описание и схема 3D-печатного модуля приведено в Документации по модулю датчика потока.
- Модули работают как цифровые узлы (Smart Nodes) на общей шине (1-Wire или I2C), передавая главному контроллеру уже готовые оцифрованные данные о силе потока.
- Давление и поток теплоносителя от главной помпы (перед радиатором АКПП) для оценки эффективности теплосброса и диагностики. Датчик давления в магистрали позволяет системе понять: проблема в остановке помпы (давление падает) или в "засоре" фильтра/радиатора (помпа гудит, давление растет, поток падает).
3. Мониторинг уровня жидкости (Liquid Level)
- Падение уровня масла ниже критической отметки (оголение верхних чипов видеокарт) представляет фатальную угрозу, даже если помпа продолжает качать масло и датчик потока показывает норму.
- В баке устанавливается отдельный датчик уровня (Оптический на просвет, магнито-поплавковый или емкостной на стенке резервуара).
- При срабатывании датчика уровня контроллер немедленно инициирует аппаратный
Power Cut-off, не дожидаясь перегрева или остановки потока.
4. Управление помпами (Децентрализованное)
- Цифровая шина: Вместо отправки аналогового ШИМ-сигнала и чтения импульсов тахометра напрямую с каждой помпы (что требует десятков проводов), управление выносится на общую цифровую шину (RS-485 Modbus или I2C через расширители).
- Мониторинг: Главный контроллер отправляет целевые обороты по шине и по ней же получает телеметрию (фактические RPM, ошибки) от каждой помпы. Если помпа не отвечает на цифровую команду — регистрируется отказ аппаратуры.
5. Аварийная защита (Hardware & Software)
- Программная защита: Плавное повышение оборотов помп при росте температуры. Сигнализация через зуммер и светодиоды.
- Аппаратная защита (Cut-off): Возможность аппаратно обесточить систему (перехват сигнала
PS_ONблока питания ATX или управление мощными контакторами) при критическом перегреве или остановке потока. - Watchdog: Сторожевой таймер самого микроконтроллера. При зависании контроллера система переходит в безопасный режим (помпы на 100%, отключение питания GPU).
6. Сервисный режим
- Система позволяет включить главную помпу при выключенном сервере для фильтрации масла от микрочастиц (прогон через in-line масляный фильтр) или для быстрого сервисного обслуживания. Через шланги с "сухими" быстросъемами (ISO 16028 flat face Quick Disconnects) главная помпа может безопасно откачать жидкость из бака напрямую в канистры без проливания.
7. Локальный дисплей (HMI) и Программная архитектура
Для визуального мониторинга статуса системы на лицевой панели контроллера устанавливается экран. Отрисовка сложной графики и жесткий real-time опрос датчиков разнесены по разным физическим ядрам контроллера RP2040 для обеспечения отказоустойчивости.
- Технологии экранов: TFT LCD по шине SPI (чипы ST7789 1.3"-2.0" IPS или ILI9341 2.4"-2.8" TN).
- Физический ввод: Блок из 2-4 навигационных кнопок для листания вкладок (Дашборд, Графики, Настройки).
- Библиотеки интерфейса: TFT_eSPI (драйвер) + LVGL (графический фреймворк для современных UI).
- Архитектура (Dual-Core):
- Core 0: Отрисовка UI (LVGL), обработка кнопок, общение по USB с Linux-демоном.
- Core 1: Жесткий Real-Time (опрос DS18B20 1-Wire, датчиков потока, вычисление ПИД, генерация ШИМ для помп). Подробное описание аппаратного подключения экрана, программных библиотек и логики ядер приведено в Документации по HMI дисплею.
7. Конфигурация и интеграция с ОС (Linux Daemon)
Из-за сложностей с сертификацией радиоустройств (Wi-Fi), основной упор делается на проводную работу. Контроллер подключается к серверу/материнской плате фермы по USB (Serial). На стороне ОС (Linux) должен работать специализированный системный сервис (Daemon).
- Функции Linux-демона:
- Периодический опрос контроллера (получение телеметрии температур и помп для софтверных дашбордов Grafana/Prometheus).
- Отправка конфигурационных параметров в контроллер (лимиты температур, оборотов, потока).
- Софтовая реакция фермы: демон может инициировать корректный
shutdownилиhibernateсерверов до того, как контроллер аппаратно отрубит питание по критическому перегреву.
- Резервирование: Если USB-кабель отключен или демон завис, контроллер продолжает полностью автономную работу, опираясь на зашитые в энергонезависимую память (EEPROM) уставки.
Ключевые уставки системы (задаваемые через демон или локальное меню):
- Температурные лимиты: Порог агрессивного охлаждения (100% ШИМ помп) и порог аппаратного отключения (Hardware Cut-off) для спасения GPU.
- Кривая охлаждения (PWM): Базовые обороты при простое (для поддержания потока) и кривая набора при нагреве.
- Лимиты потока (Flow): Порог срабатывания защиты при падении потока жидкости ниже безопасного (засор, утечка или заклинивание).
8. Взаимодействие и аппаратные кнопки (Power, Reset)
Контроллер выступает прослойкой между пользователем и материнской платой.
- Power: При нажатии кнопки контроллер сначала запускает помпы, ожидает несколько секунд для создания давления и подтверждения потока, и только затем замыкает контакты
Power_SWна материнской плате. - Reset: Длинное нажатие — перезагрузка самого контроллера. Короткое — трансляция сигнала
Resetна материнскую плату.
Выбор микроконтроллера (MCU): Глубокий анализ
Исходя из архитектуры, системе требуется опрашивать минимум 5-10 датчиков DS18B20 (1-Wire), минимум 3-5 датчиков потока (импульсы) и управлять 3-5 помпами (ШИМ 25 кГц + тахометры-импульсы). Чтение 6-10 высокочастотных импульсных сигналов одновременно с тайминг-чувствительным протоколом 1-Wire создает высокую нагрузку на обработчики прерываний (Interrupts) слабого процессора.
Рассмотренные платформы:
| Характеристика | Raspberry Pi Pico (RP2040) | Teensy 4.0 / 4.1 | ESP32-S3 | STM32 (Black Pill - F411) |
|---|---|---|---|---|
| Архитектура | 32-bit ARM Cortex-M0+ (Dual-core, 133 МГц) | 32-bit ARM Cortex-M7 (600 МГц) | 32-bit Xtensa (Dual-core, 240 МГц) | 32-bit ARM Cortex-M4 (100 МГц) |
| Главная фишка | PIO (Programmable I/O) | Огромная производительность | Встроенный Wi-Fi / BT, Native USB | Мощная система DMA |
| Плюсы | PIO может аппаратно считать импульсы помп и потока вообще без участия основного ядра. Одно ядро под ПИД и логику, второе под графику. Native USB. | Огромное количество аппаратных таймеров для ШИМ и пинов с аппаратными прерываниями. Надежность. | Огромный объем ОЗУ/Flash, Native USB. Может притворяться клавиатурой/COM-портом. | Низкая цена. Данные с датчиков складываются в память без участия процессора через DMA. |
| Минусы | Нет встроенного Wi-Fi (для данной концепции это скорее плюс, чем минус). | Высокая цена (~$20-30). Избыточная мощь. | Нет PIO. Чтение 10 импульсных датчиков потребует аккуратной фильтрации прерываний во избежание конфликтов. | Сложность программирования (CubeIDE/HAL). Потенциал теряется при использовании Arduino IDE. |
| Вердикт | 10/10. Идеальный выбор. | 9/10. Промышленный стандарт. | 8/10. Сильный кандидат. | 7/10. Классика жесткого RT. |
Итоговый выбор: Raspberry Pi Pico (чип RP2040). Наличие PIO является решающим фактором: микро-сопроцессоры аппаратно считают импульсы от всех датчиков потока и тахометров помп, разгружая основное ядро от "прерываний". Базовая версия (без Wi-Fi) идеально ложится в концепцию безопасного контроллера с локальной настройкой и связью с Linux-демоном через стабильный аппаратный USB. Программная база: C/C++ (Raspberry Pi Pico SDK) или Arduino IDE (ядро от Earle Philhower для полной поддержки PIO и многопоточности).
Дальнейшие задачи
- Разработка принципиальной электрической схемы (Схемотехника)
- Трассировка печатной платы (PCB) под выбранный MCU
- Написание базовой прошивки (чтение датчиков, генерация ШИМ)
- Разработка веб-интерфейса / API для мониторинга