Índice
Atualizado - fevereiro 3, 2026
Um fogão a lenha moderno tem normalmente um sistema integrado de controlo da combustão. Se ainda tiver um fogão a lenha sem este sistema automático, pode construir o seu próprio sistema de controlo em combinação com o Smarthome (Raspberry Pi).
Mesmo que ainda não seja possível automatizar o carregamento da lenha, para além das salamandras a pellets, a automatização permite obter uma combustão mais homogénea, temperaturas constantes e um menor consumo de lenha até 30 % com maior eficiência.
Se não se „atrever“ de imediato, posso dizer-lhe que já me senti da mesma maneira. Mas se olhar mais de perto para o assunto e para as possibilidades oferecidas pela RaspberryMatic num Raspberry Pi, por exemplo, ficará rapidamente convencido de que pode „fazê-lo“!
E como tantas vezes na vida: é melhor juntos! Vamos a isso!
Teoria
O que podemos ver a olho nu a partir do padrão da chama e da cor da chama é detectado por um sensor de alta temperatura aparafusado no tubo de gás de combustão cerca de 20 cm acima da câmara de combustão.
Em função da temperatura a manter, de cerca de 200 °C, utiliza um programa simples no Raspberry Pi para abrir e fechar a tampa do ar de alimentação, o que anteriormente tinha de ser feito manualmente - se estivesse a olhar para o forno ...
Em princípio, um mecanismo simples. O mecanismo, no verdadeiro sentido da palavra, é aqui realizado através de um acionamento linear que é movido por um motor de passo. Dependendo do valor real da temperatura em comparação com o valor de referência, o motor de passo recebe a informação sobre se deve aumentar ou diminuir o ar de alimentação se a temperatura for demasiado baixa. Consequentemente, a alavanca de acionamento (manual) do registo de ar de alimentação, que está mecanicamente acoplada à corrediça linear, é movida para a frente ou para trás e o registo é aberto ou fechado.
Como o RaspberryMatic não oferece a possibilidade de abordar diretamente um motor de passo, contentamo-nos com um ESP32-IDF, um pequeno computador que oferece a ligação de um controlador de motor de passo e pode assim assumir o controlo do mesmo.
A comunicação entre o RaspberryMatic e o ESP32-IDF é efectuada através de WLAN, que já está integrada no ESP32-IDF. O ESP32-IDF é programado em C++, Arduino IDE e está incluído neste artigo para uma transferência fácil após a alteração de alguns parâmetros.
O programa para registar a temperatura e o posicionamento do motor de passo linear também é fornecido para uma fácil transferência.
Lista de compras
- Raspberry Pi 4 Modelo B Conjunto com caixa, ventilador, fonte de alimentação - aprox. 95 euros
- Cartão SD 16 GB (para instalação RaspberryMatic) - aprox. 10,- Euro
- FramboesaMatic (Download) - gratuito
(com Padeiro Raspberry Pi (Mac) ou Gerador de imagens Raspberry Pi (Windows) Copiar para o cartão SD;
Criar variáveis Estado_da_queima (Tipo Corda); Queimadura_flap_actual (Tipo Número); Queimadura da aba desejada (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 pode ser encontrado na penúltima linha de saída, por exemplo, „19827“) - Placa de desenvolvimento ESP32 (por exemplo, ESP32 DevKit V1) - aprox. 12,- Euro
Arduino IDE 2.x Download (Mac) (Windows) - CL86Y Controlador de motor passo a passo (ou TB6600)*
- Motor de passo NEMA 17 (200 passos/rotação)* - Conjunto aprox. 80,- Euro
- Acionamento linear 100 mm, 150 mm adequado para o tipo de motor de passo acima mencionado aprox. 50,- Euro
- 2x interrutor de fim de curso (mecânica) - aprox. 4,- Euro
- Unidade de alimentação eléctrica de 48V DC (para motor 12A) - aprox. 39,- Euro
- Unidade de alimentação eléctrica 5V DC (para ESP32, por exemplo, USB) - aprox. 7,- Euro
- Sensor de alta temperatura ELV PT1000 4 fios Art. N.º 258570 - aprox. 24,- Euro
- Interface do sensor de temperatura de platina ELV - Art. No. 162126 - aprox. 45,- Euro
- Encaixe para tubo de latão M10 x 6 mm para o sensor de temperatura PT1000 - aprox. 4,- Euro
Por um total de cerca de 370 euros, esta é uma alternativa completa e também muito económica a um kit de reequipamento - se é que existe um para o fogão - que custa normalmente entre 750 e 1.500 euros!
Preparativos
A instalação do RaspberryMatic no cartão SD do Raspberry Pi 4 B é aqui descrito em pormenor, incluindo a instalação da caixa, caso não tenha sido adquirido um kit.
ESP32 - Configuração
macOS
Passo 1: Instalar o IDE Arduino
- Descarregar:
- Aceder a: https://www.arduino.cc/en/software
- Descarregar „Arduino IDE 2.x“ para macOS
- Escolher
.dmgpara Intel ou.dmgpara Apple Silicon (M1/M2/M3)
- Instalação:
.dmgAbrir ficheiro- Arraste o Arduino IDE para a pasta do programa
- Iniciar o IDE Arduino
Instalar o suporte da placa ESP32
- Abrir o Arduino IDE
- Gestor do Quadro Aberto:
- Menu:
IDE Arduino→Configurações(ouCmd + ,) - Introduza os URLs em „URLs adicionais do gestor de quadros“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Clique em
OK
- Menu:
- Instalar as placas ESP32:
- Clique no ícone do quadro à esquerda (ou no Barra de menus
Ferramentas→Direção→Gestor de Conselhos de Administração) - Procurar por:
esp32 - Instalar: „esp32 da Espressif Systems“ (Versão 2.0.17 ou mais recente)
- Aguarde até a instalação estar concluída (pode demorar 5-10 minutos)
- Clique no ícone do quadro à esquerda (ou no Barra de menus
Controlador USB (até OS 10.14)
Se o ESP32 não for reconhecido:
- Descarregar: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Ficheiro:
macOS_VCP_Driver.zipdescarregar - Instalar e reiniciar o Mac
Para o chip CH340:
- Descarregar: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Instalar e reiniciar o Mac
Ligar o ESP32
- Ligar o ESP32 através de USB
- Porta de controlo:
- IDE Arduino Barra de menus:
Ferramentas→porta - Selecionar porta semelhante a:
/dev/cu.usbserial-0001ou/dev/cu.SLAB_USBtoUARTou/dev/cu.wchusbserial*
- IDE Arduino Barra de menus:
Selecionar o conselho
- IDE Arduino:
- Barra de menus
Ferramentas→Direção→esp32→ „Módulo de desenvolvimento ESP32“
- Barra de menus
- Definições:
- Velocidade de carregamento: 115200
- Frequência de flash: 80MHz
- Modo de flash: QIO
- Tamanho do flash: 4MB (32Mb)
- Esquema de partição: Predefinição de 4 MB com spiffs
Teste de carregamento
- Abrir código de amostra:
- Barra de menus
Ficheiro→Exemplos→01.básico→Piscar os olhos
- Barra de menus
- Código de carregamento:
- Clique no botão de carregamento (→)
- Aguarde até aparecer „A ligar...“
- Se a mensagem „A ligar...“ for interrompida: Prima e mantenha premido o botão BOOT no ESP32
- Sucesso:
- „Hard resetting via RTS pin...“ = Upload bem sucedido!
- O LED no ESP32 deve piscar
JANELAS
Instalar o Arduino IDE
- Descarregar:
- Aceder a: https://www.arduino.cc/en/software
- Descarregar „Arduino IDE 2.x“ para Windows
- Escolher
.exeInstalador
- Instalação:
- Executar o instalador (como administrador)
- Deixar todas as opções activadas
- Finalizar a instalação
Instalar o suporte da placa ESP32
- Abrir o Arduino IDE
- Configurar o Board Manager:
- Barra de menus
Ficheiro→PreferênciasIntroduza os URLs em „URLs adicionais do gestor de quadros“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Clique em
OK
- Barra de menus
- Instalar as placas ESP32:
- Barra de menus
Ferramentas→Direção→Gestor de Conselhos de Administração - Procurar:
esp32 - Instalar: „esp32 da Espressif Systems“ (Versão 2.0.17+)
- Aguardar até a instalação estar concluída
- Barra de menus
Instalar o controlador USB
Muitas vezes o Windows NÃO reconhece o ESP32 automaticamente!
Para o chip CP2102/CP2104 (mais comum):
- Descarregar:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Ficheiro:
CP210x_Universal_Windows_Driver.zip
- Instalação:
- Descompactar ZIP
CP210xVCPInstaller_x64.exeExecutar como administrador- Finalizar a instalação
- Reiniciar o Windows
Para o chip CH340/CH341:
- Descarregar:
- Instalação:
- Descompactar ZIP
CH341SER.EXEExecutar como administrador- Clique em „INSTALAR“
- Reiniciar o Windows
Descubra o tipo de chip:
- Ligar o ESP32
- Abra o Gestor de Dispositivos:
Windows + X→Gestor de dispositivos - Ligações (COM e LPT) desdobrar-se
- Procurar por:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIAL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
Ligar o ESP32 e verificar a porta
- Ligar o ESP32 através de USB
- Descobrir o porto:
- Barra de menus
Ferramentas→porta - Selecionar: COM3, COM4, COM5 etc.
- (o número varia consoante o sistema)
- Barra de menus
Não há nenhuma porta visível? → Driver não instalado ou driver errado!
Selecionar o conselho
- Selecionar o conselho:
Barra de menusFerramentas→Direção→esp32→ „Módulo de desenvolvimento ESP32“
- Carregar definições:
- Velocidade de carregamento: 115200
- Frequência de flash: 80MHz
- Modo de flash: QIO
- Tamanho do flash: 4MB (32Mb)
- Esquema de partição: Predefinição de 4 MB com spiffs
Teste de carregamento
- Exemplo de carga:
- Barra de menus
Ficheiro→Exemplos→01.básico→Piscar os olhos
- Barra de menus
- Carregar:
- Clique no botão de carregamento (→)
- Para „Ligar...“ possivelmente. Botão BOOT segurar no ESP32
- Sucesso:
- „Hard resetting...“ = Tradução: Equipa PT-Subs Sincronização: PT-Subs
Bibliotecas para controlo da combustão
Incluído automaticamente (Núcleo ESP32):
- WiFi.h
- HTTPClient.h
- WebServer.h
- Preferências.h
- esp_task_wdt.h
Solução de problemas
Problema: „Porta não encontrada“
Mac:
# Abrir o terminal e verificar:
ls /dev/cu.*
# Deve mostrar:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART
Janelas:
- Abrir o Gestor de Dispositivos
- Verificar as ligações (COM e LPT)
- Reinstalar o controlador
- Reiniciar o Windows
„A ligar...“ desliga-se
Solução:
- Botão BOOT Prima e mantenha premido o ESP32
- Em seguida, clique no botão de carregamento
- Manter premido o botão BOOT até aparecer „Writing...“
- Botão de libertação
Alternativa:
- Premir brevemente o botão EN (reiniciar)
- Em seguida, tente carregar novamente
„Erro de compilação“
Causas comuns:
- Quadro errado selecionado
- Suporte da placa ESP32 não instalado
- Erro de sintaxe no código
Solução:
- Verificar novamente o quadro:
Módulo de desenvolvimento ESP32 - Abrir o Board Manager → reinstalar o esp32
O carregamento funciona, mas o monitor de série está vazio
Solução:
- Verificar a taxa de transmissão:
- Código:
Serial.begin(115200); - Monitor de série: também 115200 Conjunto
- Código:
- Porta de controlo:
- Porta COM correta selecionada?
- Premir o botão EN:
- Repor após carregamento
Lista de controlo antes da primeira transferência
- [ ] IDE Arduino instalado
- [Suporte da placa ESP32 instalado (Versão 2.0.17+)
- [ ] Controlador USB instalado (Windows!)
- [ ] ESP32 ligado via USB
- [Porta visível no Arduino IDE
- [Placa: „ESP32 Dev Module“ selecionada
- [ ] Velocidade de carregamento: 115200
- [ ] Tamanho do flash: 4MB
- [ ] Monitor de série Velocidade de transmissão: 115200
- [ ] Versão NTP do router
Lançamento do NTP
Alguns routers estão configurados por defeito sem partilha NTP, o que significa que os pedidos através da porta NTP 123 não são encaminhados, pelo que não é possível pedir dados ao servidor NTP endereçado.
Por conseguinte, deve ser definida uma regra correspondente:

Recursos de aprendizagem
Documentação oficial:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Referência Arduino: https://www.arduino.cc/reference/en/
Carregar código
- Abrir ficheiro:
- O Conteúdo do texto deste ficheiro na janela vazia(!) do Arduino IDE
- Personalizar o WiFi:
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - Introduzir o token XML-API:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
O complemento XML API deve ser instalado no RaspberryMatic. Pode então alterar as definições do suplemento XML API clicando em registo de fichas.cgi pode ser gerado um token. O token é válido para todos os futuros logins GUI e consiste numa sequência de 16 dígitos de letras maiúsculas e minúsculas. Deve ser inserido no código do ESP32 no sítio adequado. - Carregar:
- Verificar (✓) → Verificar código
- Carregar (→) → Carregar para o ESP32
- Abrir o Monitor de série:
Ferramentas→Monitor de série- Taxa de transmissão: 115200 (é apresentado no menu FERRAMENTAS - Velocidade de carregamento: .... descontinuado)
- Ver a saída!
Comissionamento
Após a configuração bem sucedida:
- Testar a ligação WiFi
- Carregar o código de controlo da combustão
- Ligar o motor e o interrutor de fim de curso
- Gerar o token RaspberryMatic
- Sistema de teste
Código ESP32
O código necessário é totalmente comentado e, por conseguinte, rastreável e personalizável, se necessário. (Download)
GUI DO ESP32
Na GUI, isto pode ser regulado manual e continuamente para fins de teste, para determinar a dependência da temperatura dos gases de escape da abertura do registo.
O padrão da chama é observado e o valor percentual visualmente „adequado“ da abertura do registo é ajustado no momento relevante. O valor de temperatura lido no RaspberryMatic nesse momento é atribuído ao valor percentual definido da abertura do registo como valor inicial para a alteração. O valor de temperatura a ser atingido resulta da próxima correção visualmente „necessária“ da abertura do registo.
Se, por exemplo, 150°C foi reconhecido como o ponto de partida (de ...) para a abertura a 80% e 200°C como o valor para a redução a 45%, então a constelação mostrada na primeira função OTHER IF resulta no programa „Controlo de queima - Controlo da temperatura“, conforme ilustrado.

„É apresentado “Modo de teste" se ainda não tiverem sido ligados quaisquer periféricos ao ESP32 e a variável "const bool TEST_MODE =" ainda em „verdadeiro“ está de pé.
Alterar para „falso.falso“anula o modo de teste e inicializa a marcha de referência do motor ligado para determinar as posições de início e fim definidas pelos fins de curso.
Registo em direto

Diagnóstico

Tratamento automatizado de erros
A interceção de possíveis estados de erro é essencial para um funcionamento contínuo e sem problemas. O código é, portanto, fornecido com as seguintes rotinas para reconhecer erros e corrigi-los usando medidas adequadas:
- Tratamento do transbordo da pilha
- Deteção de falha de energia
- Divisão por ZERO
- Desligamento de emergência do interrutor de fim de curso
- Tratamento de erros HTTP
- Tratamento de excepções HTTP
- Controlo de excesso de número inteiro
- Monitorização da memória
- millis() Estouro
- Deteção de alarme do motor
- Recuperação de preferências
- Restrições de posição
- Proteção contra operações de bloqueio muito longas
- Gestão de clientes Telnet
- Ponteiro NULL da Telnet
- Segurança da linha
- Validação de token
- Temporizador Watchdog
- Ligação automática WiFi
RaspberryMatic - Programas
Controlo da combustão
programa
IF estado do sistema Burnup_Damper_Setpoint no intervalo de valores de 0 e inferior a 101 (por cento)
DEPOIS O GUIÃO ... IMEDIATAMENTE
! Endereço IP do ESP32 (PERSONALIZAR AQUI!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";
! Obter o valor atual da variável de sistema
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();
! Construir URL para a chamada de retorno do ESP32
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;
! Chamar o ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);
! Saída de registo (opcional, para depuração)
WriteLine("Burn-up: Enviar " # setpoint # "% para ESP32 " # esp32_ip);
Controlo de queima - Controlo da temperatura
programa
SE a seleção do dispositivo "PT1000_temperature_sensor_flue_gas" FOR ACTUAL temperature from ... a ...
ENTÃO Estado do sistema Ponto_de_deflagração_de_amortecedor IMEDIATAMENTE xxx*
CASO CONTRÁRIO, SE ...
Aqui, as duas linhas superiores são continuamente complementadas com diferentes gamas de temperatura e valores percentuais por uma função OUTRO SE até que todas as gamas necessárias sejam cobertas.
* xxx„ é o valor percentual pretendido para a abertura da aba.

Conjunto de atuador linear e interrutor de fim de curso
Consoante o espaço disponível por baixo do mecanismo de retalho, o acionamento linear equipado com o motor é montado por baixo. Ao carro está acoplado um „garfo“, que é deslocado para a frente ou para trás pelo fuso, no qual se encaixa o mecanismo de acionamento manual.
A „alavanca“ é normalmente concebida de modo a poder ser movida ligeiramente para cima e para baixo. O comprimento das „forquilhas“ é ajustado em conformidade, de modo a que a alavanca possa ser deslocada manualmente e empurrada totalmente para ABRIR.
Por um lado, isto serve para gerar um calado máximo quando se adiciona combustível, se o controlo eletrónico ainda não estiver totalmente regulado para 100%.
Por outro lado, a opção de funcionamento puramente mecânico continua a estar disponível, por exemplo, no caso de uma falha de alimentação eléctrica.