Оглавление
Обновлено - 3 февраля 2026 года
Современная дровяная печь обычно имеет встроенную систему контроля горения. Если у вас до сих пор есть дровяная печь без такой автоматики, вы можете создать свою собственную систему управления в сочетании со Smarthome (Raspberry Pi).
Даже если пока нет возможности автоматизировать загрузку дров, кроме пеллетных печей, автоматизация позволяет добиться более равномерного прогорания, постоянной температуры и снижения расхода дров до 30 % при большей эффективности.
Если вы не сразу решитесь, могу сказать, что и я когда-то чувствовал то же самое. Но если вы присмотритесь к предмету и возможностям, которые предоставляет, например, RaspberryMatic на Raspberry Pi, то вскоре убедитесь, что вы можете „сделать это“!
И как часто бывает в жизни: вместе лучше! Давайте возьмемся за дело!
Теория
То, что мы можем увидеть невооруженным глазом по рисунку пламени и цвету пламени, определяется высокотемпературным датчиком, ввинченным в трубу дымовых газов на высоте около 20 см над камерой сгорания.
В зависимости от поддерживаемой температуры (около 200 °C) он использует простую программу на Raspberry Pi для открытия и закрытия заслонки подачи воздуха, что раньше приходилось делать вручную - если вы смотрели на печь...
В принципе, простой механизм. Механизм, в прямом смысле этого слова, здесь реализован с помощью линейного привода, который перемещается шаговым двигателем. В зависимости от фактического значения температуры по сравнению с заданным значением шаговый двигатель получает информацию о том, следует ли ему увеличить или уменьшить подачу воздуха, если температура слишком низкая. Соответственно, рычаг (ручной) привода заслонки приточного воздуха, механически связанный с линейной заслонкой, перемещается вперед или назад, и заслонка открывается или закрывается.
Поскольку RaspberryMatic не предлагает возможности прямого обращения к шаговому двигателю, мы обойдемся ESP32-IDF, небольшим компьютером, который предлагает подключение контроллера шагового двигателя и, таким образом, может взять на себя управление им.
Связь между RaspberryMatic и ESP32-IDF осуществляется через WLAN, который уже интегрирован в ESP32-IDF. ESP32-IDF запрограммирован на C++, Arduino IDE и включен в эту статью для легкого переноса после изменения нескольких параметров.
Программа для регистрации температуры и позиционирования линейного шагового двигателя также прилагается для удобства переноса.
Список покупок
- Raspberry Pi 4 Model B Комплект с корпусом, вентилятором, блоком питания - около 95 евро
- SD-карта 16 ГБ (для установки RaspberryMatic) - около 10,- евро
- RaspberryMatic (скачать) - бесплатно
(с Пекарь Raspberry Pi (Mac) или Raspberry Pi Imager (Windows) Копирование на SD-карту;
Создайте переменные Burning_status (Тип Строка символов); Горящий_лоскут_фактический (Тип Номер); Ожог_от_заслонки_желаемый (Тип Номер); ISD-ID der drei Variablen ermitteln und im Code unter VAR_STATUS, VAR_IST und VAR_SOLL eintragen (Ermitteln der ISE-ID -> „http://IP_RaspberrPi:8181/rega.exe?x=dom.GetObject(%22Variablen_Name%22).ID()“ – das Результат можно найти в предпоследней строке вывода, например, „19827“) - Плата разработки ESP32 (например, ESP32 DevKit V1) - около 12,- евро
Arduino IDE 2.x Скачать (Mac) (Windows) - CL86Y Драйвер шагового двигателя (или TB6600)*
- Шаговый двигатель NEMA 17 (200 шагов/об)* - Комплект ок. 80,- евро
- Линейный привод 100 мм, 150 мм подходит для вышеуказанного типа шагового двигателя ок. 50,- евро
- 2х концевой выключатель (механический) - ок. 4,- евро
- Блок питания 48 В постоянного тока (для двигателя 12A) - ок. 39,- евро
- Блок питания 5 В постоянного тока (для ESP32, например, USB) - ок. 7,- евро
- Высокотемпературный датчик ELV PT1000 4-проводной арт. № 258570 - ок. 24,- евро
- Интерфейс платинового датчика температуры ELV - Арт. № 162126 - ок. 45,- евро
- Латунный фитинг для труб M10 x 6 мм для датчика температуры PT1000 - ок. 4,- евро
При общей стоимости около 370 евро это полноценная и очень недорогая альтернатива комплекту для модернизации, который обычно стоит от 750 до 1 500 евро, если таковой вообще имеется для данной печи!
Препараты
Установка программы RaspberryMatic на SD-карту для Raspberry Pi 4 B выглядит следующим образом здесь подробно описаны, включая установку корпуса, если комплект не был приобретен.
ESP32 - Настройка
macOS
Шаг 1: Установите среду разработки Arduino IDE
- Скачать:
- Перейти на сайт: https://www.arduino.cc/en/software
- Скачать „Arduino IDE 2.x“ для macOS
- Выберите
.dmgдля Intel или.dmgдля Apple Silicon (M1/M2/M3)
- Установка:
.dmgОткрыть файл- Перетащите Arduino IDE в папку с программой
- Запустите Arduino IDE
Установите поддержку платы ESP32
- Откройте IDE Arduino
- Управляющий открытой доской:
- Меню:
Arduino IDE→Настройки(илиCmd + ,) - Введите URL-адреса в разделе „Дополнительные URL-адреса менеджера плат“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Нажмите на
OK
- Меню:
- Установите платы ESP32:
- Нажмите на значок доски слева (или в Строка меню
Инструменты→Правление→Менеджер по работе с досками) - Искать:
эсп32 - Установите: „esp32 by Espressif Systems“ (Версия 2.0.17 или новее)
- Дождитесь окончания установки (может занять 5-10 минут).
- Нажмите на значок доски слева (или в Строка меню
Драйвер USB (до OS 10.14)
Если ESP32 не распознается:
- Скачать: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Файл:
macOS_VCP_Driver.zipскачать - Установите и перезагрузите Mac
Для чипа CH340:
- Скачать: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Установите и перезагрузите Mac
Подключение ESP32
- Подключите ESP32 через USB
- Проверьте порт:
- Arduino IDE Строка меню:
Инструменты→Порт - Выберите порт, похожий на:
/dev/cu.usbserial-0001или/dev/cu.SLAB_USBtoUARTили/dev/cu.wchusbserial*
- Arduino IDE Строка меню:
Выборная комиссия
- Arduino IDE:
- Строка меню
Инструменты→Правление→эсп32→ „Модуль ESP32 Dev“
- Строка меню
- Настройки:
- Скорость загрузки: 115200
- Частота вспышек: 80 МГц
- Режим вспышки: QIO
- Размер вспышки: 4 Мб (32 Мб)
- Схема раздела: По умолчанию 4 МБ с шипами
Тестовая загрузка
- Откройте код примера:
- Строка меню
Файл→Примеры→01.основы→Мигание
- Строка меню
- Код загрузки:
- Нажмите на кнопку загрузки (→)
- Дождитесь появления надписи „Подключение...“.
- Если сообщение „Подключение...“ зависло: Нажмите и удерживайте кнопку BOOT на ESP32
- Успех:
- „Hard resetting via RTS pin...“ = Загрузка прошла успешно!
- Светодиод на ESP32 должен мигать
WINDOWS
Установите среду разработки Arduino IDE
- Скачать:
- Перейти на сайт: https://www.arduino.cc/en/software
- Скачать „Arduino IDE 2.x“ для Windows
- Выберите
.exeМонтажник
- Установка:
- Запустите программу установки (от имени администратора)
- Оставьте все опции активированными
- Завершите установку
Установите поддержку платы ESP32
- Откройте IDE Arduino
- Настройте Board Manager:
- Строка меню
Файл→ПредпочтенияВведите URL-адреса в разделе „Дополнительные URL-адреса менеджера плат“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Нажмите на
OK
- Строка меню
- Установите платы ESP32:
- Строка меню
Инструменты→Правление→Менеджер по работе с досками - Поиск:
эсп32 - Установите: „esp32 by Espressif Systems“ (Версия 2.0.17+)
- Дождитесь окончания установки
- Строка меню
Установите драйвер USB
Windows часто НЕ распознает ESP32 автоматически!
Для микросхем CP2102/CP2104 (наиболее распространенные):
- Скачать:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Файл:
CP210x_Universal_Windows_Driver.zip
- Установка:
- Распакуйте ZIP
CP210xVCPInstaller_x64.exeЗапустите от имени администратора- Завершите установку
- Перезагрузите Windows
Для микросхем CH340/CH341:
- Скачать:
- Установка:
- Распакуйте ZIP
CH341SER.EXEЗапустите от имени администратора- Нажмите на кнопку „УСТАНОВИТЬ“.“
- Перезагрузите Windows
Узнайте тип микросхемы:
- Подключение ESP32
- Откройте диспетчер устройств:
Windows + X→Диспетчер устройств - Разъемы (COM и LPT) развернуть
- Искать:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIAL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
Подключите ESP32 и проверьте порт
- Подключите ESP32 через USB
- Узнайте порт:
- Строка меню
Инструменты→Порт - Выберите: COM3, COM4, COM5 и т.д.
- (количество зависит от системы)
- Строка меню
Порт не виден? → Драйвер не установлен или установлен неправильный драйвер!
Выборная комиссия
- Избранный совет:
Панель менюИнструменты→Правление→эсп32→ „Модуль ESP32 Dev“
- Настройки загрузки:
- Скорость загрузки: 115200
- Частота вспышек: 80 МГц
- Режим вспышки: QIO
- Размер вспышки: 4 Мб (32 Мб)
- Схема раздела: По умолчанию 4 МБ с шипами
Тестовая загрузка
- Пример загрузки:
- Строка меню
Файл→Примеры→01.основы→Мигание
- Строка меню
- Загрузка:
- Нажмите кнопку загрузки (→)
- Возможно, для „Подключение...“. Кнопка BOOT удерживать на ESP32
- Успех:
- „Hard resetting...“ = ✅ Загрузка прошла успешно!
Библиотеки для контроля горения
Автоматически включается (ESP32 Core):
- WiFi.h
- HTTPClient.h
- WebServer.h
- Preferences.h
- esp_task_wdt.h
Устранение неполадок
Проблема: „Порт не найден“.“
Мак:
# Откройте терминал и проверьте:
ls /dev/cu.*
# Должно отобразиться:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART
Окна:
- Откройте диспетчер устройств
- Проверьте соединения (COM и LPT)
- Переустановите драйвер
- Перезагрузите Windows
„Подключение...“ зависает.
Решение:
- Кнопка BOOT Нажмите и удерживайте кнопку на ESP32
- Затем нажмите кнопку загрузки
- Удерживайте кнопку BOOT, пока не появится надпись „Writing...“.
- Кнопка отпускания
Альтернатива:
- Кратковременно нажмите кнопку EN (сброс).
- Затем попробуйте загрузить снова
„Ошибка компиляции“
Общие причины:
- Выбрана неправильная плата
- Поддержка платы ESP32 не установлена
- Синтаксическая ошибка в коде
Решение:
- Проверьте плату еще раз:
Модуль ESP32 Dev - Откройте Board Manager → переустановите esp32
Загрузка работает, но последовательный монитор пуст
Решение:
- Проверьте скорость передачи данных:
- Код:
Serial.begin(115200); - Последовательный монитор: также 115200 Установите
- Код:
- Проверьте порт:
- Выбран правильный COM-порт?
- Нажмите кнопку EN:
- Сброс после загрузки
Контрольный список перед первой загрузкой
- [ ] Установлена среда Arduino IDE
- [ ] Установлена поддержка платы ESP32 (версия 2.0.17+)
- [ ] Установлен драйвер USB (Windows!)
- [ ] ESP32, подключенный через USB
- [ ] Порт, видимый в Arduino IDE
- [ ] Выбрана плата: „ESP32 Dev Module“
- [ ] Скорость загрузки: 115200
- [ ] Размер флэш-памяти: 4 МБ
- [ ] Последовательный монитор Скорость передачи данных: 115200
- [ ] Выпуск маршрутизатора NTP
Выпуск NTP
Некоторые маршрутизаторы по умолчанию настроены без совместного использования NTP, что означает, что запросы через порт NTP 123 не пересылаются, в результате чего данные не могут быть запрошены с адресованного NTP-сервера.
Поэтому необходимо определить соответствующее правило:

Учебные ресурсы
Официальная документация:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Ссылка на Arduino: https://www.arduino.cc/reference/en/
Код загрузки
- Открыть файл:
- Сайт Текстовое содержимое этого файла в пустом(!) окне Arduino IDE
- Настройте WiFi:
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - Введите маркер XML-API:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
Дополнение XML API должно быть установлено в RaspberryMatic. Затем вы можете изменить настройки дополнения XML API, нажав на кнопку tokenregister.cgi может быть сгенерирован токен. Токен действителен для всех последующих входов в GUI и состоит из 16-значной последовательности букв верхнего и нижнего регистра. Его необходимо вставить в код ESP32 в соответствующем месте. - Загрузка:
- Проверить (✓) → Проверить код
- Загрузка (→) → Загрузка в ESP32
- Откройте монитор последовательного интерфейса:
Инструменты→Последовательный монитор- Скорость передачи данных: 115200 (отображается в меню ИНСТРУМЕНТЫ - Скорость загрузки: .... прекращена)
- Следите за выходом!
Ввод в эксплуатацию
После успешной настройки:
- Проверьте подключение к WiFi
- Загрузка кода управления отключением горения
- Подключите двигатель и концевой выключатель
- Сгенерируйте токен RaspberryMatic
- Тестовая система
Код ESP32
Требуемый код полностью прокомментирован, поэтому его можно отследить и при необходимости настроить. (скачать)
ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ESP32
В графическом интерфейсе его можно настроить вручную и непрерывно в тестовых целях, чтобы определить зависимость температуры выхлопных газов от открытия заслонки.
Наблюдается картина пламени, и в соответствующий момент времени устанавливается визуально „подходящее“ процентное значение открытия заслонки. Значение температуры, считанное с RaspberryMatic в этот момент, присваивается установленному процентному значению открытия заслонки в качестве начального значения для изменения. Значение температуры будет получено в результате следующей визуально „нужной“ корректировки открытия заслонки.
Если, например, 150°C было признано в качестве начальной точки (от ...) для открытия до 80%, а 200°C - в качестве значения для снижения до 45%, то констелляция, показанная в первой функции ДРУГОЕ ЕСЛИ, приводит к программе „Контроль выжигания - Контроль температуры“, как показано на иллюстрации.

„Тестовый режим“ отображается, если к ESP32 еще не подключены периферийные устройства и переменная "const bool TEST_MODE =" все еще на „правда“ стоит.
Изменить на „ложь“ отменяет тестовый режим и инициализирует контрольный запуск подключенного двигателя для определения начального и конечного положений, заданных концевыми выключателями.
Ведение журнала в реальном времени

Диагностика

Автоматизированная обработка ошибок
Перехват возможных состояний ошибки необходим для непрерывной и бесперебойной работы. Поэтому в коде предусмотрены следующие процедуры для распознавания ошибок и их устранения с помощью соответствующих мер:
- Очистка перелива сточных вод
- Обнаружение перебоев в работе
- Деление на ноль
- Аварийное отключение концевого выключателя
- Обработка ошибок HTTP
- Обработка исключений HTTP
- Проверка целочисленного переполнения
- Мониторинг памяти
- millis() Переполнение
- Обнаружение аварийного сигнала двигателя
- Восстановление предпочтений
- Ограничения по должности
- Защита от очень длинных операций блокировки
- Управление клиентами Telnet
- NULL-указатель Telnet
- Сохранность нитей
- Проверка подлинности токенов
- Сторожевой таймер
- Автоматическое подключение к WiFi
RaspberryMatic - Программы
Контроль выжигания
Программа
IF состояние системы Burnup_Damper_Setpoint в диапазоне значений 0 и менее 101 (процентов)
ЗАТЕМ СЦЕНАРИЙ... НЕМЕДЛЕННО
! IP-адрес ESP32 (ПРИДУМАЙТЕ ЗДЕСЬ!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";
! Получение текущего значения системной переменной
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();
! Создайте URL для обратного вызова ESP32
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;
! Вызовите ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);
! Вывод журнала (необязательно, для отладки)
WriteLine("Burn-up: Send " # setpoint # "% to ESP32 " # esp32_ip);
Контроль выжигания - Контроль температуры
Программа
ЕСЛИ выбор устройства "PT1000_temperature_sensor_flue_gas" ДЛЯ АКТУАЛЬНОЙ температуры от ... до ...
THEN Состояние системы Выгорание_Демпфер_Установленная точка НЕИЗБЕЖНО xxx*
ИНАЧЕ ЕСЛИ ...
Здесь две верхние строки постоянно дополняются различными температурными диапазонами и процентными значениями с помощью функции ДРУГОЕ ЕСЛИ, пока не будут охвачены все необходимые диапазоны.
* xxx„ - это желаемое процентное значение открытия заслонки.

Линейный привод и концевой выключатель в сборе
В зависимости от наличия свободного места под механизмом заслонки под ним устанавливается линейный привод с двигателем. К каретке прикреплена „вилка“, которая перемещается вперед или назад с помощью шпинделя, в который зацепляется механизм с ручным управлением.
Обычно „рычаг“ сконструирован таким образом, что его можно слегка перемещать вверх и вниз. Длина „вилки“ регулируется соответствующим образом, чтобы рычаг можно было вывести из этого положения вручную и полностью открыть.
С одной стороны, это служит для создания максимальной тяги при добавлении топлива, если электронное управление еще не полностью настроено на 100%.
С другой стороны, остается возможность чисто механического управления, например, в случае отключения электропитания.