Перейти к содержимому

Плита - контроль горения

Оглавление

Время чтения 8 минут

Обновлено - 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

  1. Скачать:
    • Перейти на сайт: https://www.arduino.cc/en/software
    • Скачать „Arduino IDE 2.x“ для macOS
    • Выберите .dmg для Intel или .dmg для Apple Silicon (M1/M2/M3)
  2. Установка:
    • .dmg Открыть файл
    • Перетащите Arduino IDE в папку с программой
    • Запустите Arduino IDE

Установите поддержку платы ESP32

  1. Откройте IDE Arduino
  2. Управляющий открытой доской:
    • Меню: Arduino IDEНастройки (или Cmd + ,)
    • Введите URL-адреса в разделе „Дополнительные URL-адреса менеджера плат“:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Нажмите на OK
  3. Установите платы ESP32:
    • Нажмите на значок доски слева (или в Строка меню ИнструментыПравлениеМенеджер по работе с досками)
    • Искать: эсп32
    • Установите: „esp32 by Espressif Systems“ (Версия 2.0.17 или новее)
    • Дождитесь окончания установки (может занять 5-10 минут).

Драйвер USB (до OS 10.14)

Если ESP32 не распознается:

  1. Скачать: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
  2. Файл: macOS_VCP_Driver.zip скачать
  3. Установите и перезагрузите Mac

Для чипа CH340:

Подключение ESP32

  1. Подключите ESP32 через USB
  2. Проверьте порт:
    • Arduino IDE Строка меню: ИнструментыПорт
    • Выберите порт, похожий на:
      • /dev/cu.usbserial-0001 или
      • /dev/cu.SLAB_USBtoUART или
      • /dev/cu.wchusbserial*

Выборная комиссия

  1. Arduino IDE:
    • Строка меню ИнструментыПравлениеэсп32„Модуль ESP32 Dev“
  2. Настройки:
    • Скорость загрузки: 115200
    • Частота вспышек: 80 МГц
    • Режим вспышки: QIO
    • Размер вспышки: 4 Мб (32 Мб)
    • Схема раздела: По умолчанию 4 МБ с шипами

Тестовая загрузка

  1. Откройте код примера:
    • Строка меню ФайлПримеры01.основыМигание
  2. Код загрузки:
    • Нажмите на кнопку загрузки (→)
    • Дождитесь появления надписи „Подключение...“.
    • Если сообщение „Подключение...“ зависло: Нажмите и удерживайте кнопку BOOT на ESP32
  3. Успех:
    • „Hard resetting via RTS pin...“ = Загрузка прошла успешно!
    • Светодиод на ESP32 должен мигать

WINDOWS

Установите среду разработки Arduino IDE

  1. Скачать:
    • Перейти на сайт: https://www.arduino.cc/en/software
    • Скачать „Arduino IDE 2.x“ для Windows
    • Выберите .exe Монтажник
  2. Установка:
    • Запустите программу установки (от имени администратора)
    • Оставьте все опции активированными
    • Завершите установку

Установите поддержку платы ESP32

  1. Откройте IDE Arduino
  2. Настройте Board Manager:
    • Строка меню ФайлПредпочтенияВведите URL-адреса в разделе „Дополнительные URL-адреса менеджера плат“:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Нажмите на OK
  3. Установите платы ESP32:
    • Строка меню ИнструментыПравлениеМенеджер по работе с досками
    • Поиск: эсп32
    • Установите: „esp32 by Espressif Systems“ (Версия 2.0.17+)
    • Дождитесь окончания установки

Установите драйвер USB

Windows часто НЕ распознает ESP32 автоматически!

Для микросхем CP2102/CP2104 (наиболее распространенные):
  1. Скачать:
  2. Установка:
    • Распакуйте ZIP
    • CP210xVCPInstaller_x64.exe Запустите от имени администратора
    • Завершите установку
    • Перезагрузите Windows
Для микросхем CH340/CH341:
  1. Скачать:
  2. Установка:
    • Распакуйте ZIP
    • CH341SER.EXE Запустите от имени администратора
    • Нажмите на кнопку „УСТАНОВИТЬ“.“
    • Перезагрузите Windows
Узнайте тип микросхемы:
  • Подключение ESP32
  • Откройте диспетчер устройств: Windows + XДиспетчер устройств
  • Разъемы (COM и LPT) развернуть
  • Искать:
    • „Silicon Labs CP210x...“ = CP2102
    • „USB-SERIAL CH340“ = CH340
    • „SLAB_USBtoUART“ = CP2102

Подключите ESP32 и проверьте порт

  1. Подключите ESP32 через USB
  2. Узнайте порт:
    • Строка меню ИнструментыПорт
    • Выберите: COM3, COM4, COM5 и т.д.
    • (количество зависит от системы)

Порт не виден? → Драйвер не установлен или установлен неправильный драйвер!

Выборная комиссия

  1. Избранный совет:
    • Панель меню ИнструментыПравлениеэсп32„Модуль ESP32 Dev“
  2. Настройки загрузки:
    • Скорость загрузки: 115200
    • Частота вспышек: 80 МГц
    • Режим вспышки: QIO
    • Размер вспышки: 4 Мб (32 Мб)
    • Схема раздела: По умолчанию 4 МБ с шипами

Тестовая загрузка

  1. Пример загрузки:
    • Строка меню ФайлПримеры01.основыМигание
  2. Загрузка:
    • Нажмите кнопку загрузки (→)
    • Возможно, для „Подключение...“. Кнопка BOOT удерживать на ESP32
  3. Успех:
    • „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

„Подключение...“ зависает.

Решение:

  1. Кнопка BOOT Нажмите и удерживайте кнопку на ESP32
  2. Затем нажмите кнопку загрузки
  3. Удерживайте кнопку BOOT, пока не появится надпись „Writing...“.
  4. Кнопка отпускания

Альтернатива:

  • Кратковременно нажмите кнопку EN (сброс).
  • Затем попробуйте загрузить снова

„Ошибка компиляции“

Общие причины:

  • Выбрана неправильная плата
  • Поддержка платы ESP32 не установлена
  • Синтаксическая ошибка в коде

Решение:

  • Проверьте плату еще раз: Модуль ESP32 Dev
  • Откройте Board Manager → переустановите esp32

Загрузка работает, но последовательный монитор пуст

Решение:

  1. Проверьте скорость передачи данных:
    • Код: Serial.begin(115200);
    • Последовательный монитор: также 115200 Установите
  2. Проверьте порт:
    • Выбран правильный COM-порт?
  3. Нажмите кнопку 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-сервера.

Поэтому необходимо определить соответствующее правило:

Учебные ресурсы

Официальная документация:

Код загрузки

  1. Открыть файл:
  2. Настройте WiFi: const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT";
  3. Введите маркер XML-API: const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
    Дополнение XML API должно быть установлено в RaspberryMatic. Затем вы можете изменить настройки дополнения XML API, нажав на кнопку tokenregister.cgi может быть сгенерирован токен. Токен действителен для всех последующих входов в GUI и состоит из 16-значной последовательности букв верхнего и нижнего регистра. Его необходимо вставить в код ESP32 в соответствующем месте.
  4. Загрузка:
    • Проверить (✓) → Проверить код
    • Загрузка (→) → Загрузка в ESP32
  5. Откройте монитор последовательного интерфейса:
    • ИнструментыПоследовательный монитор
    • Скорость передачи данных: 115200 (отображается в меню ИНСТРУМЕНТЫ - Скорость загрузки: .... прекращена)
    • Следите за выходом!

Ввод в эксплуатацию

После успешной настройки:

  1. Проверьте подключение к WiFi
  2. Загрузка кода управления отключением горения
  3. Подключите двигатель и концевой выключатель
  4. Сгенерируйте токен RaspberryMatic
  5. Тестовая система

Код 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%.

С другой стороны, остается возможность чисто механического управления, например, в случае отключения электропитания.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ru_RURussian