Ga naar de inhoud

Kachel - verbrandingsregeling

Leestijd 8 minuten

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

  1. Downloaden:
    • Ga naar: https://www.arduino.cc/en/software
    • Download „Arduino IDE 2.x“ voor macOS
    • Kies .dmg voor Intel of .dmg voor Apple silicium (M1/M2/M3)
  2. Installatie:
    • .dmg Bestand openen
    • Sleep de Arduino IDE naar de programmamap
    • Start Arduino IDE

Ondersteuning ESP32-bord installeren

  1. Open Arduino IDE
  2. Open Board Manager:
    • Menu: Arduino IDEInstellingen (of Cmd + ,)
    • 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
  3. Installeer ESP32-borden:
    • Klik op het bordpictogram aan de linkerkant (of in de Menubalk GereedschapRaad van bestuurRaden 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)

USB-stuurprogramma (tot OS 10.14)

Als ESP32 niet wordt herkend:

  1. Downloaden: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
  2. Bestand: macOS_VCP_Driver.zip downloaden
  3. Mac installeren en opnieuw opstarten

Voor CH340-chip:

De ESP32 aansluiten

  1. ESP32 aansluiten via USB
  2. Controlepoort:
    • Arduino IDE Menubalk: Gereedschaphaven
    • Selecteer een poort vergelijkbaar met:
      • /dev/cu.usbserial-0001 of
      • /dev/cu.SLAB_USBtoUART of
      • /dev/cu.wchusbserial*

Selecteer raad

  1. Arduino IDE:
    • Menubalk GereedschapRaad van bestuuresp32„ESP32-devomodule“
  2. Instellingen:
    • Uploadsnelheid: 115200
    • Flitsfrequentie: 80 MHz
    • Flitsmodus: QIO
    • Flashgrootte: 4MB (32Mb)
    • Verdelingsschema: Standaard 4MB met spiffs

Test uploaden

  1. Open voorbeeldcode:
    • Menubalk BestandVoorbeelden01.basicsKnipperen
  2. Code uploaden:
    • Klik op de uploadknop (→)
    • Wacht tot „Bezig met verbinden...“ verschijnt.
    • Als „Verbinden...“ blijft hangen: Houd de BOOT-knop op de ESP32 ingedrukt
  3. Succes:
    • „Harde reset via RTS-pin...“ = Uploaden gelukt!
    • LED op de ESP32 moet knipperen

WINDOWS

Arduino IDE installeren

  1. Downloaden:
    • Ga naar: https://www.arduino.cc/en/software
    • Download „Arduino IDE 2.x“ voor Windows
    • Kies .exe Installateur
  2. Installatie:
    • Voer het installatieprogramma uit (als beheerder)
    • Alle opties geactiveerd laten
    • Installatie afronden

Ondersteuning ESP32-bord installeren

  1. Open Arduino IDE
  2. Board Manager configureren:
    • Menubalk BestandVoorkeurenVoer 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
  3. Installeer ESP32-borden:
    • Menubalk GereedschapRaad van bestuurRaden Manager
    • Zoeken: esp32
    • Installeren: „esp32 door Espressif Systems“.“ (Versie 2.0.17+)
    • Wacht tot de installatie is voltooid

USB-stuurprogramma installeren

Windows herkent ESP32 vaak NIET automatisch!

Voor CP2102/CP2104 chip (meest gebruikt):
  1. Downloaden:
  2. Installatie:
    • ZIP uitpakken
    • CP210xVCPInstaller_x64.exe Uitvoeren als beheerder
    • Installatie afronden
    • Windows opnieuw opstarten
Voor CH340/CH341-chip:
  1. Downloaden:
  2. Installatie:
    • ZIP uitpakken
    • CH341SER.EXE Uitvoeren als beheerder
    • Klik op „INSTALL“.“
    • Windows opnieuw opstarten
Ontdek het type chip:
  • De ESP32 aansluiten
  • Open Apparaatbeheer: Windows + XApparaatbeheer
  • Aansluitingen (COM & LPT) ontvouwen
  • Zoeken:
    • „Silicon Labs CP210x...“ = CP2102
    • „USB-SERIEEL CH340“ = CH340
    • „SLAB_USBtoUART“ = CP2102

ESP32 aansluiten en poort controleren

  1. ESP32 aansluiten via USB
  2. Zoek de haven:
    • Menubalk Gereedschaphaven
    • Selecteer: COM3, COM4, COM5 enz.
    • (aantal varieert afhankelijk van het systeem)

Geen poort zichtbaar? → Stuurprogramma niet geïnstalleerd of verkeerd stuurprogramma!

Selecteer raad

  1. Selecteer raad:
    • Menubalk GereedschapRaad van bestuuresp32„ESP32-devomodule“
  2. Uploadinstellingen:
    • Uploadsnelheid: 115200
    • Flitsfrequentie: 80 MHz
    • Flitsmodus: QIO
    • Flashgrootte: 4MB (32Mb)
    • Verdelingsschema: Standaard 4MB met spiffs

Test uploaden

  1. Voorbeeld laden:
    • Menubalk BestandVoorbeelden01.basicsKnipperen
  2. Uploaden:
    • Klik op de uploadknop (→)
    • Voor „Aansluiten...“ mogelijk. Knop BOOT vasthouden op de ESP32
  3. 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:

  1. Knop BOOT Houd de ESP32 ingedrukt
  2. Klik dan op de uploadknop
  3. Houd de BOOT-knop ingedrukt totdat „Writing...“ verschijnt.
  4. 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:

  1. Controleer de baudrate:
    • Code: Serial.begin(115200);
    • Seriële monitor: Ook 115200 Stel in
  2. Controlepoort:
    • Is de juiste COM-poort geselecteerd?
  3. 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:

Code uploaden

  1. Open bestand:
  2. WiFi aanpassen: const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT";
  3. 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.
  4. Uploaden:
    • Verifiëren (✓) → Code controleren
    • Uploaden (→) → Uploaden naar ESP32
  5. Open Seriële Monitor:
    • GereedschapSeriële monitor
    • Baudrate: 115200 (wordt weergegeven in het menu TOOLS -). Uploadsnelheid: .... stopgezet)
    • Kijk uit!

Inbedrijfstelling

Na succesvolle installatie:

  1. WiFi-verbinding testen
  2. Controlecode voor doorbranden uploaden
  3. Motor en eindschakelaar aansluiten
  4. Genereer RaspberryMatic token
  5. 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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLDutch