Tabla de contenido
Actualizado - 3 de febrero de 2026
Una estufa de leña moderna suele llevar integrado un sistema de control de la combustión. Si todavía tienes una estufa de leña sin este sistema automático, puedes construir tu propio sistema de control en combinación con Smarthome (Raspberry Pi).
Aunque todavía no es posible automatizar la carga de la leña, aparte de las estufas de pellets, la automatización consigue un quemado más uniforme, temperaturas constantes y un menor consumo de leña de hasta 30 % con mayor eficiencia.
Si no te „atreves“ de inmediato, puedo decirte que una vez me sentí de la misma manera. Pero si profundizas en el tema y en las posibilidades que ofrece RaspberryMatic en una Raspberry Pi, por ejemplo, ¡pronto te convencerás de que puedes „hacerlo“!
Y como tantas veces en la vida: ¡mejor juntos! ¡A por ello!
Teoría
Lo que podemos ver a simple vista del patrón de la llama y el color de la llama lo detecta un sensor de alta temperatura enroscado en el tubo de gases de combustión a unos 20 cm por encima de la cámara de combustión.
En función de la temperatura que debe mantenerse, de unos 200 °C, utiliza un sencillo programa en la Raspberry Pi para abrir y cerrar la trampilla de aire de impulsión, lo que antes había que hacer manualmente ...
En principio, un mecanismo sencillo. El mecanismo, en el sentido más estricto de la palabra, se realiza aquí mediante un accionamiento lineal que es movido por un motor paso a paso. En función del valor real de la temperatura comparado con el valor nominal, el motor paso a paso recibe la información sobre si debe aumentar o disminuir el aire de impulsión si la temperatura es demasiado baja. En consecuencia, la palanca de accionamiento (manual) de la compuerta de aire de impulsión, que está acoplada mecánicamente al carro lineal, se mueve hacia delante o hacia atrás y la compuerta se abre o se cierra.
Como RaspberryMatic no ofrece la posibilidad de direccionar directamente un motor paso a paso, nos conformamos con un ESP32-IDF, un pequeño ordenador que ofrece la conexión de un controlador de motor paso a paso y puede así hacerse cargo del control del mismo.
La comunicación entre la RaspberryMatic y el ESP32-IDF se realiza a través de WLAN, que ya está integrado en el ESP32-IDF. El ESP32-IDF está programado en C++, Arduino IDE y se incluye en este artículo para una fácil transferencia después de cambiar algunos parámetros.
También se suministra el programa para registrar la temperatura y el posicionamiento del motor paso a paso lineal para facilitar su transferencia.
Lista de la compra
- Raspberry Pi 4 Modelo B Juego con carcasa, ventilador y fuente de alimentación - aprox. 95 euros
- Tarjeta SD 16 GB (para instalación RaspberryMatic) - aprox. 10,- Euro
- frambuesamatic (Descargar) - gratis
(con Raspberry Pi Baker (Mac) o Raspberry Pi Imager (Windows) Copiar a tarjeta SD;
Crear variables Estado_de_quema (Tipo Cadena); Burning_flap_actual (Tipo Número); Quemar aleta deseada (Tipo Número); 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 Resultado en la penúltima línea de salida, por ejemplo „".19827“) - Placa de desarrollo ESP32 (por ejemplo, ESP32 DevKit V1) - aprox. 12,- Euro
Descarga de Arduino IDE 2.x (Mac) (ventanas) - CL86Y Controlador de motor paso a paso (o TB6600)*
- Motor paso a paso NEMA 17 (200 pasos/rev)* - Juego aprox. 80,- Euro
- Accionamiento lineal 100 mm, 150 mm adecuado para el tipo de motor paso a paso arriba mencionado aprox. 50,- Euro
- 2x final de carrera (mecánico) - aprox. 4,- Euro
- Fuente de alimentación de 48 V CC (para motor 12A) - aprox. 39,- Euro
- Fuente de alimentación 5 V CC (para ESP32, p. ej. USB) - aprox. 7,- Euro
- Sonda de alta temperatura ELV PT1000 4 hilos Art. Nº 258570 - aprox. 24,- Euro
- Interfaz del sensor de temperatura de platino ELV - Art. Nº 162126 - aprox. 45,- Euro
- Racor de latón M10 x 6 mm para el sensor de temperatura PT1000 - aprox. 4,- Euro
Por un total de unos 370 euros, se trata de una alternativa completa y también muy económica a un kit de reequipamiento -si es que existe para la estufa- que suele costar entre 750 y 1.500 euros.
Preparativos
La instalación de RaspberryMatic en la tarjeta SD para la Raspberry Pi 4 B es la siguiente aquí descrito en detalle, incluida la instalación de la carcasa si no se ha adquirido un kit.
ESP32 - Configuración
macOS
Paso 1: Instalar Arduino IDE
- Descargar:
- Visite: https://www.arduino.cc/en/software
- Descargar „Arduino IDE 2.x“ para macOS
- Elija
.dmgpara Intel o.dmgpara Apple Silicon (M1/M2/M3)
- Instalación:
.dmgAbrir expediente- Arrastre el IDE Arduino a la carpeta del programa
- Iniciar Arduino IDE
Instalar el soporte de la placa ESP32
- Abrir Arduino IDE
- Director del Consejo Abierto:
- Menú:
IDE Arduino→Ajustes(oCmd + ,) - Introduzca las URL en „URL adicionales del administrador de tableros“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Haga clic en
OK
- Menú:
- Instala las placas ESP32:
- Haga clic en el icono del tablero de la izquierda (o en el icono Barra de menús
Herramientas→Junta→Director de los Consejos) - Buscar:
esp32 - Instalar: „esp32 de Espressif Systems“ (Versión 2.0.17 o posterior)
- Espere a que finalice la instalación (puede tardar entre 5 y 10 minutos).
- Haga clic en el icono del tablero de la izquierda (o en el icono Barra de menús
Controlador USB (hasta OS 10.14)
Si no se reconoce el ESP32:
- Descargar: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Archivo:
macOS_VCP_Driver.zipdescargar - Instalar y reiniciar el Mac
Para el chip CH340:
- Descargar: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Instalar y reiniciar el Mac
Conexión del ESP32
- Conectar ESP32 por USB
- Comprueba el puerto:
- IDE Arduino Barra de menús:
Herramientas→puerto - Seleccione puerto similar a:
/dev/cu.usbserial-0001o/dev/cu.SLAB_USBtoUARTo/dev/cu.wchusbserial*
- IDE Arduino Barra de menús:
Seleccionar junta
- Arduino IDE:
- Barra de menús
Herramientas→Junta→esp32→ „ESP32 Dev Module“
- Barra de menús
- Ajustes:
- Velocidad de subida: 115200
- Frecuencia de flash: 80 MHz
- Modo Flash: QIO
- Tamaño del flash: 4MB (32Mb)
- Esquema de partición: Por defecto 4MB con spiffs
Prueba de carga
- Abrir código de muestra:
- Barra de menús
Archivo→Ejemplos→01.básicos→Parpadeo
- Barra de menús
- Sube el código:
- Haz clic en el botón de carga (→)
- Espere hasta que aparezca „Conectando...“.
- Si „Conectando...“ se cuelga: Mantenga pulsado el botón BOOT en el ESP32
- Un éxito:
- „Hard resetting via RTS pin...“ = ¡Carga realizada!
- El LED del ESP32 debería parpadear
WINDOWS
Instalar Arduino IDE
- Descargar:
- Visite: https://www.arduino.cc/en/software
- Descargar „Arduino IDE 2.x“ para Windows
- Elija
.exeInstalador
- Instalación:
- Ejecute el instalador (como administrador)
- Dejar todas las opciones activadas
- Finalizar la instalación
Instalar el soporte de la placa ESP32
- Abrir Arduino IDE
- Configurar Board Manager:
- Barra de menús
Archivo→PreferenciasIntroduzca las URL en „URL adicionales del administrador de tableros“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Haga clic en
OK
- Barra de menús
- Instala las placas ESP32:
- Barra de menús
Herramientas→Junta→Director de los Consejos - Busca:
esp32 - Instalar: „esp32 de Espressif Systems“ (Versión 2.0.17+)
- Espere a que finalice la instalación
- Barra de menús
Instalar controlador USB
A menudo, Windows NO reconoce el ESP32 automáticamente.
Para chip CP2102/CP2104 (el más común):
- Descargar:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Archivo:
CP210x_Universal_Windows_Driver.zip
- Instalación:
- Descomprimir ZIP
CP210xVCPInstaller_x64.exeEjecutar como administrador- Finalizar la instalación
- Reiniciar Windows
Para chip CH340/CH341:
- Descargar:
- Instalación:
- Descomprimir ZIP
CH341SER.EXEEjecutar como administrador- Haga clic en „INSTALAR“.“
- Reiniciar Windows
Averigua el tipo de chip:
- Conexión del ESP32
- Abra el Administrador de dispositivos:
Windows + X→Administrador de dispositivos - Conexiones (COM y LPT) desplegar
- Buscar:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIAL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
Conectar ESP32 y comprobar el puerto
- Conectar ESP32 por USB
- Averigua el puerto:
- Barra de menús
Herramientas→puerto - Selecciona: COM3, COM4, COM5 etc.
- (el número varía en función del sistema)
- Barra de menús
¿No se ve ningún puerto? → ¡Controlador no instalado o controlador incorrecto!
Seleccionar junta
- Seleccione la junta:
Barra de menúHerramientas→Junta→esp32→ „ESP32 Dev Module“
- Configuraciones de carga:
- Velocidad de subida: 115200
- Frecuencia de flash: 80 MHz
- Modo Flash: QIO
- Tamaño del flash: 4MB (32Mb)
- Esquema de partición: Por defecto 4MB con spiffs
Prueba de carga
- Ejemplo de carga:
- Barra de menús
Archivo→Ejemplos→01.básicos→Parpadeo
- Barra de menús
- Sube:
- Haz clic en el botón de carga (→)
- Para „Conectando...“ posiblemente. Botón BOOT mantener en el ESP32
- Un éxito:
- „Hard resetting...“ = ✅ ¡Subida realizada con éxito!
Bibliotecas para el control de la combustión
Incluido automáticamente (ESP32 Core):
- WiFi.h
- HTTPClient.h
- ServidorWeb.h
- Preferencias.h
- esp_task_wdt.h
Solución de problemas
Problema: „Puerto no encontrado“
Mac:
# Abra el terminal y compruebe:
ls /dev/cu.*
# Debería mostrar:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART
Ventanas:
- Abrir el Administrador de dispositivos
- Compruebe las conexiones (COM y LPT)
- Reinstalar el controlador
- Reiniciar Windows
„Conectando...“ cuelga
Solución:
- Botón BOOT Mantenga pulsado en el ESP32
- A continuación, haga clic en el botón de carga
- Mantenga pulsado el botón BOOT hasta que aparezca „Escribiendo...“.
- Botón de desbloqueo
Alternativa:
- Pulse brevemente la tecla EN (reset)
- A continuación, intente cargar de nuevo
„Error de compilación“
Causas comunes:
- Tarjeta seleccionada incorrecta
- Soporte de placa ESP32 no instalado
- Error de sintaxis en el código
Solución:
- Comprueba de nuevo el tablero:
Módulo de desarrollo ESP32 - Abrir Board Manager → reinstalar esp32
La carga funciona, pero el monitor serie está vacío
Solución:
- Comprueba la velocidad en baudios:
- Código:
Serial.begin(115200); - Monitor serie: También 115200 Establecer
- Código:
- Comprueba el puerto:
- ¿Se ha seleccionado el puerto COM correcto?
- Pulse el botón EN:
- Reiniciar después de cargar
Lista de comprobación antes de la primera carga
- [ ] Arduino IDE instalado
- [ ] Soporte de placa ESP32 instalado (Versión 2.0.17+)
- [ ] Controlador USB instalado (Windows)
- [ ] ESP32 conectado por USB
- [ ] Puerto visible en Arduino IDE
- [ ] Placa: „ESP32 Dev Module“ seleccionada
- [ ] Velocidad de carga: 115200
- [ ] Tamaño Flash: 4MB
- [ ] Monitor serie Velocidad en baudios: 115200
- [ ] Liberación NTP del router
Publicación NTP
Algunos routers están configurados por defecto sin compartir NTP, lo que significa que las peticiones a través del puerto NTP 123 no se reenvían, con el resultado de que no se pueden solicitar datos al servidor NTP direccionado.
Por lo tanto, hay que definir la norma correspondiente:

Recursos didácticos
Documentación oficial:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Referencia Arduino: https://www.arduino.cc/reference/en/
Cargar código
- Abrir expediente:
- En Contenido de texto de este archivo en la ventana vacía de Arduino IDE
- Personaliza el WiFi:
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - Introduzca el token XML-API:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
El complemento XML API debe estar instalado en RaspberryMatic. A continuación, puede cambiar la configuración del complemento API XML haciendo clic en tokenregister.cgi se puede generar un token. El token es válido para todos los futuros inicios de sesión GUI y consiste en una secuencia de 16 dígitos de letras mayúsculas y minúsculas. Debe insertarse en el código ESP32 en el lugar adecuado. - Sube:
- Verificar (✓) → Comprobar código
- Cargar (→) → Cargar en ESP32
- Abrir Monitor Serial:
Herramientas→Monitor serie- Velocidad en baudios: 115200 (aparece en el menú HERRAMIENTAS - Velocidad de subida: .... descatalogado)
- ¡Cuidado con la salida!
Puesta en servicio
Una vez configurado correctamente:
- Probar la conexión WiFi
- Cargar código de control de quemado
- Conectar el motor y el final de carrera
- Generar token RaspberryMatic
- Sistema de pruebas
Código ESP32
El código necesario está totalmente comentado y, por tanto, es rastreable y personalizable en caso necesario. (Descargar)
ESP32 GUI
En la interfaz gráfica de usuario, esto se puede ajustar manualmente y de forma continua con fines de prueba para determinar la dependencia de la temperatura de los gases de escape en la apertura de la compuerta.
Se observa el patrón de la llama y se ajusta el valor porcentual visualmente „adecuado“ de la apertura de la compuerta en el momento correspondiente. El valor de temperatura leído del RaspberryMatic en ese momento se asigna al valor porcentual ajustado de la apertura de la compuerta como valor inicial para el cambio. El valor de temperatura a resulta de la siguiente corrección visualmente „necesaria“ de la apertura de la compuerta.
Si, por ejemplo, se ha reconocido 150°C como punto de partida (a partir de ...) para la apertura a 80% y 200°C como valor para la reducción a 45%, la constelación mostrada en la primera función OTRO SI da como resultado el programa „Control de la temperatura“como se ilustra.

„Modo de prueba“ aparece si todavía no se ha conectado ningún periférico al ESP32 y la variable "const bool MODO_PRUEBA =" aún en „verdadero“ se levanta.
Cambiar a „falso“ cancela el modo de prueba e inicializa la marcha de referencia del motor conectado para determinar las posiciones inicial y final definidas por los finales de carrera.
Registro en directo

Diagnóstico

Tratamiento automatizado de errores
Interceptar posibles estados de error es esencial para un funcionamiento continuo y sin problemas. Por ello, el código dispone de las siguientes rutinas para reconocer errores y rectificarlos con las medidas adecuadas:
- Tratamiento del desbordamiento de pila
- Detección de caídas de tensión
- División por CERO
- Final de carrera de emergencia
- Gestión de errores HTTP
- Gestión de excepciones HTTP
- Comprobación de desbordamiento de enteros
- Supervisión de la memoria
- Desbordamiento de millis()
- Detección de alarma del motor
- Recuperación de preferencias
- Restricciones de posición
- Protección contra operaciones de bloqueo muy largas
- Gestión de clientes Telnet
- Puntero NULL Telnet
- Seguridad
- Validación de tokens
- Temporizador Watchdog
- Reconexión automática de WiFi
RaspberryMatic - Programas
Control de quemado
programa
SI estado del sistema Burnup_Damper_Setpoint en el rango de valores de 0 y menos de 101 (por ciento)
ENTONCES SCRIPT ... INMEDIATAMENTE
¡! Dirección IP del ESP32 (¡ PERSONALÍCELA AQUÍ !)
string esp32_ip = "IP_Adresse_ESP32_eingeben";
¡! Obtener el valor actual de la variable del sistema
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();
¡! Construir URL para ESP32 callback
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;
¡! Llamar a ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);
¡! Salida de registro (opcional, para depuración)
WriteLine("Quemado: Enviar " # consigna # "% a ESP32 " # esp32_ip);
Control de la temperatura
programa
SI selección de dispositivo "PT1000_temperature_sensor_flue_gas" PARA temperatura REAL de ... hasta ...
THEN Estado del sistema Burn-off_Damper_Setpoint IMMEDIATELY xxx*
DE LO CONTRARIO SI ...
Aquí, las dos líneas superiores se complementan continuamente con diferentes rangos de temperatura y valores porcentuales mediante una función OTROS SI hasta que se cubren todos los rangos requeridos.
* xxx„ es el valor porcentual deseado de apertura de la trampilla.

Conjunto de actuador lineal y final de carrera
En función del espacio disponible debajo del mecanismo de trampilla, el accionamiento lineal equipado con el motor se monta debajo. En el carro se fija una „horquilla“ que se desplaza hacia delante o hacia atrás mediante el husillo, en el que se encaja el mecanismo accionado manualmente.
La „palanca“ suele estar diseñada de forma que pueda moverse ligeramente hacia arriba y hacia abajo. La longitud de las „horquillas“ se ajusta en consecuencia para que la palanca todavía se puede mover fuera de este manualmente y empujar completamente ABIERTO.
Por un lado, esto sirve para generar un calado máximo al añadir combustible si el control electrónico aún no está totalmente ajustado a 100%.
Por otro lado, la opción de funcionamiento puramente mecánico sigue estando disponible, por ejemplo, en caso de fallo del suministro eléctrico.