Inhoudsopgave
Bijgewerkt - 3 februari 2026
Een moderne houtkachel heeft meestal een geïntegreerd verbrandingscontrolesysteem. Als je nog een houtkachel hebt zonder dit automatische systeem, kun je je eigen regelsysteem bouwen in combinatie met Smarthome (Raspberry Pi).
Ook al is het nog niet mogelijk om het laden van het hout te automatiseren, behalve bij pelletkachels zorgt automatisering voor een gelijkmatigere verbranding, constante temperaturen en een lager houtverbruik tot 30 % met een hoger rendement.
Als je het niet meteen „durft“, kan ik je vertellen dat ik er ooit ook zo over dacht. Maar als je het onderwerp en de mogelijkheden van RaspberryMatic op bijvoorbeeld een Raspberry Pi nader bekijkt, zul je er snel van overtuigd zijn dat je het „kunt“!
En zoals zo vaak in het leven: samen is het beter! Laten we het aanpakken!
Theorie
Wat we met het blote oog kunnen zien aan het vlammenpatroon en de kleur van de vlam wordt gedetecteerd door een hogetemperatuursensor die ongeveer 20 cm boven de verbrandingskamer in de rookgaspijp is geschroefd.
Afhankelijk van de aan te houden temperatuur van ongeveer 200 °C gebruikt het een eenvoudig programma op de Raspberry Pi om de luchttoevoerklep te openen en te sluiten, wat voorheen handmatig moest gebeuren - als je naar de oven keek ...
In principe een eenvoudig mechanisme. Het mechanisme, in de ware zin van het woord, wordt hier gerealiseerd via een lineaire aandrijving die wordt bewogen door een stappenmotor. Afhankelijk van de actuele temperatuurwaarde vergeleken met de instelwaarde, krijgt de stappenmotor de informatie of hij de luchttoevoer moet verhogen of verlagen als de temperatuur te laag is. Dienovereenkomstig wordt de (handbediende) bedieningshendel van de luchttoevoerklep, die mechanisch is gekoppeld aan de lineaire schuif, naar voren of naar achteren bewogen en wordt de klep geopend of gesloten.
Omdat RaspberryMatic niet de mogelijkheid biedt om een stappenmotor rechtstreeks aan te spreken, doen we het met een ESP32-IDF, een kleine computer waarop een stappenmotorcontroller kan worden aangesloten en die dus de besturing ervan kan overnemen.
Communicatie tussen de RaspberryMatic en de ESP32-IDF vindt plaats via WLAN, dat al geïntegreerd is op de ESP32-IDF. De ESP32-IDF is geprogrammeerd in C++, Arduino IDE en is opgenomen in dit artikel voor eenvoudige overdracht na het wijzigen van een paar parameters.
Het programma voor het registreren van de temperatuur en de positionering van de lineaire stappenmotor wordt ook meegeleverd voor eenvoudige overdracht.
Boodschappenlijstje
- Raspberry Pi 4 Model B Set met behuizing, ventilator, voedingseenheid - ca. 95 euro
- SD-kaart 16 GB (voor RaspberryMatic installatie) - ca. 10,- Euro
- RaspberryMatic (Downloaden) - gratis
(met Raspberry Pi Bakker (Mac) of Raspberry Pi beeldapparaat (Vensters) Kopiëren naar SD-kaart;
Variabelen aanmaken Brandende_status (Type Snaar); Brandende_flap_werkelijk (Type Nummer); Afbrand_flap_gewenst (Type Nummer); 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 Resultaat kan worden gevonden in de voorlaatste uitvoerregel, bijvoorbeeld „19827“) - ESP32-ontwikkelbord (bijv. ESP32 DevKit V1) - ca. 12,- euro
Arduino IDE 2.x downloaden (Mac) (ramen) - CL86Y Stappenmotordriver (of TB6600)*
- NEMA 17 stappenmotor (200 stappen/omwenteling)* - Set ca. 80,- Euro
- Lineaire aandrijving 100 mm, 150 mm geschikt voor bovenstaand type stappenmotor ca. 50,- Euro
- 2x eindschakelaar (mechanisch) - ca. 4,- Euro
- 48V DC voedingseenheid (voor motor 12A) - ca. 39,- Euro
- Voedingseenheid 5V DC (voor ESP32, bijv. USB) - ca. 7,- euro
- ELV PT1000 hoge temperatuursensor 4-draads Art. Nr. 258570 - ca. 24,- Euro
- Interface platina ELV-temperatuursensor - Art. Nr. 162126 - ca. 45,- Euro
- Messing pijpfitting M10 x 6 mm voor de PT1000 temperatuursensor - ca. 4,- Euro
Voor een totaal van ongeveer 370 euro is dit een volwaardig en ook zeer voordelig alternatief voor een retrofit kit - als er al een beschikbaar is voor de kachel - die meestal tussen de 750 en 1.500 euro kost!
Voorbereidingen
De installatie van RaspberryMatic op de SD-kaart voor de Raspberry Pi 4 B is hier gedetailleerd beschreven, inclusief de installatie van de behuizing als er geen kit is gekocht.
ESP32 - Instelling
macOS
Stap 1: Installeer Arduino IDE
- Downloaden:
- Ga naar: https://www.arduino.cc/en/software
- Download „Arduino IDE 2.x“ voor macOS
- Kies
.dmgvoor Intel of.dmgvoor Apple silicium (M1/M2/M3)
- Installatie:
.dmgBestand openen- Sleep de Arduino IDE naar de programmamap
- Start Arduino IDE
Ondersteuning ESP32-bord installeren
- Open Arduino IDE
- Open Board Manager:
- Menu:
Arduino IDE→Instellingen(ofCmd + ,) - Voer de URL's in onder „Extra borden manager URL's“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Klik op
OK
- Menu:
- Installeer ESP32-borden:
- Klik op het bordpictogram aan de linkerkant (of in de Menubalk
Gereedschap→Raad van bestuur→Raden Manager) - Zoeken:
esp32 - Installeren: „esp32 door Espressif Systems“.“ (Versie 2.0.17 of nieuwer)
- Wacht tot de installatie is voltooid (kan 5-10 minuten duren)
- Klik op het bordpictogram aan de linkerkant (of in de Menubalk
USB-stuurprogramma (tot OS 10.14)
Als ESP32 niet wordt herkend:
- Downloaden: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Bestand:
macOS_VCP_Driver.zipdownloaden - Mac installeren en opnieuw opstarten
Voor CH340-chip:
- Downloaden: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Mac installeren en opnieuw opstarten
De ESP32 aansluiten
- ESP32 aansluiten via USB
- Controlepoort:
- Arduino IDE Menubalk:
Gereedschap→haven - Selecteer een poort vergelijkbaar met:
/dev/cu.usbserial-0001of/dev/cu.SLAB_USBtoUARTof/dev/cu.wchusbserial*
- Arduino IDE Menubalk:
Selecteer raad
- Arduino IDE:
- Menubalk
Gereedschap→Raad van bestuur→esp32→ „ESP32-devomodule“
- Menubalk
- Instellingen:
- Uploadsnelheid: 115200
- Flitsfrequentie: 80 MHz
- Flitsmodus: QIO
- Flashgrootte: 4MB (32Mb)
- Verdelingsschema: Standaard 4MB met spiffs
Test uploaden
- Open voorbeeldcode:
- Menubalk
Bestand→Voorbeelden→01.basics→Knipperen
- Menubalk
- Code uploaden:
- Klik op de uploadknop (→)
- Wacht tot „Bezig met verbinden...“ verschijnt.
- Als „Verbinden...“ blijft hangen: Houd de BOOT-knop op de ESP32 ingedrukt
- Succes:
- „Harde reset via RTS-pin...“ = Uploaden gelukt!
- LED op de ESP32 moet knipperen
WINDOWS
Arduino IDE installeren
- Downloaden:
- Ga naar: https://www.arduino.cc/en/software
- Download „Arduino IDE 2.x“ voor Windows
- Kies
.exeInstallateur
- Installatie:
- Voer het installatieprogramma uit (als beheerder)
- Alle opties geactiveerd laten
- Installatie afronden
Ondersteuning ESP32-bord installeren
- Open Arduino IDE
- Board Manager configureren:
- Menubalk
Bestand→VoorkeurenVoer de URL's in onder „Extra borden manager URL's“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Klik op
OK
- Menubalk
- Installeer ESP32-borden:
- Menubalk
Gereedschap→Raad van bestuur→Raden Manager - Zoeken:
esp32 - Installeren: „esp32 door Espressif Systems“.“ (Versie 2.0.17+)
- Wacht tot de installatie is voltooid
- Menubalk
USB-stuurprogramma installeren
Windows herkent ESP32 vaak NIET automatisch!
Voor CP2102/CP2104 chip (meest gebruikt):
- Downloaden:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Bestand:
CP210x_Universeel_Windows_Driver.zip
- Installatie:
- ZIP uitpakken
CP210xVCPInstaller_x64.exeUitvoeren als beheerder- Installatie afronden
- Windows opnieuw opstarten
Voor CH340/CH341-chip:
- Downloaden:
- Installatie:
- ZIP uitpakken
CH341SER.EXEUitvoeren als beheerder- Klik op „INSTALL“.“
- Windows opnieuw opstarten
Ontdek het type chip:
- De ESP32 aansluiten
- Open Apparaatbeheer:
Windows + X→Apparaatbeheer - Aansluitingen (COM & LPT) ontvouwen
- Zoeken:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIEEL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
ESP32 aansluiten en poort controleren
- ESP32 aansluiten via USB
- Zoek de haven:
- Menubalk
Gereedschap→haven - Selecteer: COM3, COM4, COM5 enz.
- (aantal varieert afhankelijk van het systeem)
- Menubalk
Geen poort zichtbaar? → Stuurprogramma niet geïnstalleerd of verkeerd stuurprogramma!
Selecteer raad
- Selecteer raad:
MenubalkGereedschap→Raad van bestuur→esp32→ „ESP32-devomodule“
- Uploadinstellingen:
- Uploadsnelheid: 115200
- Flitsfrequentie: 80 MHz
- Flitsmodus: QIO
- Flashgrootte: 4MB (32Mb)
- Verdelingsschema: Standaard 4MB met spiffs
Test uploaden
- Voorbeeld laden:
- Menubalk
Bestand→Voorbeelden→01.basics→Knipperen
- Menubalk
- Uploaden:
- Klik op de uploadknop (→)
- Voor „Aansluiten...“ mogelijk. Knop BOOT vasthouden op de ESP32
- Succes:
- „Harde reset...“ = ✅ Uploaden gelukt!
Bibliotheken voor verbrandingscontrole
Automatisch meegeleverd (ESP32 Core):
- WiFi.h
- HTTPClient.h
- WebServer.h
- Voorkeuren.h
- esp_taak_wdt.h
Problemen oplossen
Probleem: „Poort niet gevonden“.“
Mac:
# Open terminal en controleer:
ls /dev/cu.*
# Zou moeten tonen:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART
Windows:
- Apparaatbeheer openen
- Controleer aansluitingen (COM & LPT)
- Stuurprogramma opnieuw installeren
- Windows opnieuw opstarten
„Aansluiten...“ hangt
Oplossing:
- Knop BOOT Houd de ESP32 ingedrukt
- Klik dan op de uploadknop
- Houd de BOOT-knop ingedrukt totdat „Writing...“ verschijnt.
- Ontgrendelknop
Alternatief:
- Druk kort op de EN-knop (reset)
- Probeer dan opnieuw te uploaden
„Compilatiefout“.“
Veel voorkomende oorzaken:
- Verkeerde printplaat geselecteerd
- ESP32-bordondersteuning niet geïnstalleerd
- Syntaxfout in de code
Oplossing:
- Controleer het bord opnieuw:
ESP32-devomodule - Open Board Manager → installeer esp32 opnieuw
Uploaden werkt, maar seriële monitor is leeg
Oplossing:
- Controleer de baudrate:
- Code:
Serial.begin(115200); - Seriële monitor: Ook 115200 Stel in
- Code:
- Controlepoort:
- Is de juiste COM-poort geselecteerd?
- Druk op de EN-knop:
- Reset na upload
Checklist voor de eerste upload
- [Arduino IDE geïnstalleerd
- [ESP32-bordondersteuning geïnstalleerd (versie 2.0.17+)
- [ ] USB-stuurprogramma geïnstalleerd (Windows!)
- [ESP32 aangesloten via USB
- [Poort zichtbaar in Arduino IDE
- [Bord: „ESP32 Dev Module“ geselecteerd
- [Uploadsnelheid: 115200
- [Flashgrootte: 4MB
- [Seriële monitor Baudrate: 115200
- [Router NTP vrijgave
NTP-vrijgave
Sommige routers zijn standaard geconfigureerd zonder NTP-sharing, wat betekent dat verzoeken via NTP poort 123 niet worden doorgestuurd, met als gevolg dat er geen gegevens kunnen worden opgevraagd bij de geadresseerde NTP-server.
Daarom moet er een overeenkomstige regel worden gedefinieerd:

Leermiddelen
Officiële documentatie:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Arduino referentie: https://www.arduino.cc/reference/en/
Code uploaden
- Open bestand:
- De Tekstinhoud van dit bestand in het lege(!) Arduino IDE-venster
- WiFi aanpassen:
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - XML-API token invoeren:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
De XML API add-on moet geïnstalleerd zijn in RaspberryMatic. Je kunt dan de instellingen van de XML API add-on wijzigen door te klikken op tokenregister.cgi kan een token worden gegenereerd. Het token is geldig voor alle toekomstige GUI-aanmeldingen en bestaat uit een 16-cijferige reeks hoofdletters en kleine letters. Het moet op de juiste plaats in de ESP32-code worden ingevoegd. - Uploaden:
- Verifiëren (✓) → Code controleren
- Uploaden (→) → Uploaden naar ESP32
- Open Seriële Monitor:
Gereedschap→Seriële monitor- Baudrate: 115200 (wordt weergegeven in het menu TOOLS -). Uploadsnelheid: .... stopgezet)
- Kijk uit!
Inbedrijfstelling
Na succesvolle installatie:
- WiFi-verbinding testen
- Controlecode voor doorbranden uploaden
- Motor en eindschakelaar aansluiten
- Genereer RaspberryMatic token
- Testsysteem
ESP32-code
De vereiste code is volledig becommentarieerd en daarom traceerbaar en aanpasbaar indien nodig. (Downloaden)
ESP32 GUI
In de GUI kan dit handmatig en continu worden ingesteld voor testdoeleinden om de afhankelijkheid van de uitlaatgastemperatuur van de klepopening te bepalen.
Het vlammenpatroon wordt geobserveerd en de visueel „geschikte“ procentuele waarde van de klepopening wordt op het betreffende moment aangepast. De temperatuurwaarde die op dat moment door RaspberryMatic wordt afgelezen, wordt toegewezen aan de ingestelde procentuele waarde van de klepopening als startwaarde voor de verandering. De volgende visueel „noodzakelijke“ correctie van de klepopening resulteert in de volgende temperatuurwaarde.
Als bijvoorbeeld 150°C werd herkend als het beginpunt (vanaf ...) voor het openen tot 80% en 200°C als de waarde voor het verlagen tot 45%, dan resulteert de constellatie onder de eerste ANDERE IF-functie in het programma „Burn-off regeling - Temperatuurregeling“ zoals geïllustreerd.

„Testmodus“ wordt weergegeven als er nog geen randapparatuur is aangesloten op de ESP32 en de variabele "const bool TEST_MODE =" nog steeds op „Echt“ staat.
Wijzig in „false.false“ annuleert de testmodus en initialiseert de referentierun van de aangesloten motor om de door de eindschakelaars gedefinieerde begin- en eindposities te bepalen.
Live loggen

Diagnostiek

Geautomatiseerde foutafhandeling
Het onderscheppen van mogelijke fouttoestanden is essentieel voor een continue, probleemloze werking. De code is daarom voorzien van de volgende routines om fouten te herkennen en deze met geschikte maatregelen te verhelpen:
- Behandeling van stackoverloop
- Detectie spanningsdaling
- Verdeling door NUL
- Noodstop eindschakelaar
- HTTP-fouten afhandelen
- HTTP Uitzonderingsafhandeling
- Controle op integer overflow
- Geheugenbewaking
- millis() Overflow
- Detectie motoralarm
- Herstel van voorkeuren
- Positiebeperkingen
- Bescherming tegen zeer lange blokkeerbewerkingen
- Beheer Telnet-clients
- Telnet NULL pointer
- Veiligheid op draad
- Token validatie
- Watchdog-timer
- Automatisch opnieuw verbinden met WiFi
RaspberryMatic - Programma's
Uitbrandregeling
programma
IF-systeemstatus Burnup_Damper_Setpoint in het waardebereik van 0 en minder dan 101 (procent)
DAN SCRIPT ... ONMIDDELLIJK
! ESP32 IP-adres (HIER AANPASSEN!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";
! Huidige waarde van de systeemvariabele ophalen
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();
! Bouw URL voor ESP32 callback
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;
! Bel ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);
! Loguitvoer (optioneel, voor foutopsporing)
WriteLine("Burn-up: Verzend " # setpoint # "% naar ESP32 " # esp32_ip);
Burn-off regeling - Temperatuurregeling
programma
ALS apparaatselectie "PT1000_temperature_sensor_flue_gas" VOOR ACTUELE temperatuur van ... tot ...
DAN Systeemstatus Burn-off_Damper_Setpoint ONMIDDELLIJK xxx*
ANDERS ALS ...
Hier worden de bovenste twee regels continu aangevuld met verschillende temperatuurbereiken en percentagewaarden door een ANDERE IF-functie totdat alle vereiste bereiken zijn gedekt.
* xxx„ is de gewenste procentuele waarde van de klepopening.

Lineaire actuator en eindschakelaar
Afhankelijk van de beschikbare ruimte onder het klepmechanisme wordt de lineaire aandrijving met de motor eronder gemonteerd. Aan de slede is een „vork“ bevestigd die vooruit of achteruit wordt bewogen door de spindel, waarin het handbediende mechanisme grijpt.
De „hendel“ is meestal zo ontworpen dat hij lichtjes op en neer kan worden bewogen. De lengte van de „vorken“ wordt overeenkomstig aangepast zodat de hendel nog steeds handmatig uit deze stand kan worden bewogen en volledig OPEN kan worden geduwd.
Enerzijds dient dit om een maximale trek te genereren bij het toevoegen van brandstof als de elektronische regeling nog niet volledig is ingesteld op 100%.
Aan de andere kant is de puur mechanische bedieningsoptie nog steeds beschikbaar, bijvoorbeeld in het geval van een stroomstoring.