Slaan oor na inhoud

Houtkachel – verbrandingsbeheer

Leestyd 8 minute

Opgedateer – 3 Februarie 2026

'n Moderne houtstoof het tipies geïntegreerde verbrandingsbeheer. Diegene wat steeds 'n stoof sonder hierdie outomatiese funksie het, kan hul eie beheerstelsel bou in kombinasie met 'n slimhuisstelsel (Raspberry Pi).

Alhoewel daar tans geen manier is om die hervullingsproses te outomatiseer nie, behalwe vir pelletstowe, lei outomatisering tot 'n meer egalige verbranding, konsekwente temperature en 'n laer houtverbruik van tot 30 % met groter doeltreffendheid.

Vir diegene wat huiwerig is om te probeer, laat ek julle verseker dat ek eenkeer dieselfde gevoel het. Sodra jy egter 'n bietjie dieper in die onderwerp delf en die moontlikhede wat byvoorbeeld RaspberryMatic op 'n Raspberry Pi bied, is dit nie lank voordat jy oortuig is dat jy dit kan doen nie!

En soos so dikwels die geval in die lewe is: saam kan ons beter doen! Kom ons maak die werk!

teorie

Wat ons met die blote oog in die vlampatroon en vlamkleur kan sien, word hier oorgeneem deur 'n hoëtemperatuursensor wat in die uitlaatpyp sowat 20 cm bokant die verbrandingskamer ingeskroef is.

Afhangende van die verlangde temperatuur van ongeveer 200 °C, maak 'n eenvoudige program op die Raspberry Pi outomaties die luginlaatklep oop en toe, 'n taak wat voorheen handmatig uitgevoer is – wanneer 'n mens toevallig na die oond gekyk het ...

So, in beginsel, is dit 'n eenvoudige meganisme. Die meganisme, in die ware sin van die woord, word hier geïmplementeer via 'n lineêre aktuator wat deur 'n stapmotor aangedryf word. Gebaseer op die werklike temperatuurwaarde in vergelyking met die teikenwaarde, ontvang die stapmotor inligting oor of die toevoerlug verhoog of verlaag moet word as die temperatuur te laag is. Gevolglik word die (handmatige) bedieningshefboom van die toevoerlugdemper, wat meganies aan die lineêre skuif gekoppel is, vorentoe of agtertoe beweeg, wat die demper oop- of toemaak.

Aangesien Raspberry Matic nie 'n manier bied om 'n stapmotor direk aan te spreek nie, gebruik ons 'n ESP32-IDF, 'n klein rekenaar wat 'n verbinding vir 'n stapmotorbeheerder bied en dus die beheer daarvan kan oorneem.

Kommunikasie tussen RaspberryMatic en die ESP32-IDF vind plaas via Wi-Fi, wat reeds in die ESP32-IDF geïntegreer is. Programmering van die ESP32-IDF word in C++ gedoen met behulp van die Arduino IDE, en die proses word in hierdie artikel ingesluit vir maklike implementering na die verandering van 'n paar parameters.

Die program vir die opname van die temperatuur en posisionering van die lineêre stapmotor word ook voorsien vir maklike implementering.

inkopielys

  • Raspberry Pi 4 Model B Stel insluitend kas, waaier, kragtoevoer – ongeveer 95 euro
  • 16 GB SD-kaart (vir RaspberryMatic-installasie) – ongeveer €10
  • RaspberryMatic (Laai af) – gratis
    (met Raspberry Pi Baker (Mac) of Raspberry Pi-beelder (Vensters) Kopieer na SD-kaart;
    Skep veranderlikes Afbrandstatus (Tipe string); Brand_flap_Is (Tipe Nommer); Afbrandflap-teiken (Tipe Nommer); 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 Dit kan in die voorlaaste reël van die uitgawe gevind word, bv. „19827")
  • ESP32 Ontwikkelingsraad (bv. ESP32 DevKit V1) – ongeveer 12 euro
    Arduino IDE 2.x aflaai (Mac) (Vensters)
  • CL86Y Stapmotorbestuurder (of TB6600)*
  • NEMA 17 stapmotor (200 treë/omwenteling)* – stel ongeveer 80 euro
  • Lineêre aktuator 100 mm, 150 mm geskik vir die bogenoemde stapmotortipe, ongeveer €50.
  • 2x limietskakelaars (meganies) – ongeveer 4,- Euro
  • 48V GS-kragtoevoer (vir motor 12A) – ongeveer 39,- Euro
  • 5V GS-kragtoevoer (vir ESP32, bv. USB) – ongeveer €7
  • ELV PT1000 hoëtemperatuursensor 4-draads, artikelnr. 258570 – ongeveer €24
  • ELV Platinum Temperatuursensor-koppelvlak – Artikelnr. 162126 – ongeveer 45 euro
  • Koperpypfitting M10 x 6 mm vir die PT1000 temperatuursensor – ongeveer €4

Vir 'n totaal van ongeveer €370 bied dit 'n volwaardige en baie bekostigbare alternatief vir 'n opknappingspakket – indien een selfs beskikbaar is vir die houtstoof – wat tipies tussen €750 en €1 500 kos!

Voorbereidings

Die installering van RaspberryMatic op die SD-kaart vir die Raspberry Pi 4 B is hier In detail beskryf, insluitend behuisingsinstallasie indien geen kit aangekoop is nie.

ESP32 – Opstelling

macOS

Stap 1: Installeer die Arduino IDE

  1. Aflaai:
    • Gaan na: https://www.arduino.cc/en/software
    • Laai „Arduino IDE 2.x“ vir macOS af
    • Kies .dmg vir Intel of .dmg vir Apple Silikon (M1/M2/M3)
  2. Installasie:
    • .dmg Maak lêer oop
    • Sleep die Arduino IDE na die Programme-lêergids.
    • Begin die Arduino IDE

Installeer ESP32-bordondersteuning

  1. Maak die Arduino IDE oop
  2. Oopbordbestuurder:
    • Spyskaart: Arduino IDEInstellings (of Cmd + ,)
    • Voer die volgende in onder "Bykomende bordbestuurder-URL'e":
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Klik op Goed
  3. Installering van ESP32-borde:
    • Klik op die bordikoon aan die linkerkant (of in die Menubalk GereedskapbordRaadbestuurder)
    • Soek vir: esp32
    • Installeer: „esp32 deur Espressif Systems“ (Weergawe 2.0.17 of nuwer)
    • Wag totdat die installasie voltooi is (dit kan 5-10 minute duur)

USB-drywer (tot OS 10.14)

As ESP32 nie herken word nie:

  1. Aflaai: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
  2. Lêer: macOS_VCP_Drywer.zip aflaai
  3. Installeer en herbegin Mac

Vir CH340-skyfie:

Verbind ESP32

  1. Koppel ESP32 via USB
  2. Kontroleer poort:
    • Arduino IDE Menubalk: Gereedskaphawe
    • Kies 'n poort soortgelyk aan:
      • /dev/cu.usbserial-0001 of
      • /dev/cu.SLAB_USBnaUART of
      • /dev/cu.wchusbserial*

Kies bord

  1. Arduino IDE:
    • Menubalk Gereedskapbordesp32„ESP32 Ontwikkelingsmodule“
  2. Instellings:
    • Oplaaispoed: 115200
    • Flitsfrekwensie: 80MHz
    • Flitsmodus: QIO
    • Flitsgrootte: 4MB (32MB)
    • Verdelingskema: Standaard 4MB met ekstras

Toets oplaai

  1. Maak voorbeeldkode oop:
    • Menubalk LêerVoorbeelde01. Basiese beginselsKnipoog
  2. Oplaaikode:
    • Klik op die oplaaiknoppie (→)
    • Wag totdat "Verbind ..." verskyn.
    • As "Verbind..." hang: Hou die BOOT-knoppie op die ESP32 ingedruk
  3. Sukses:
    • „"Harde herstel via RTS-pen…" = Oplaai suksesvol!
    • Die LED op die ESP32 behoort te flikker.

VENSTERS

Installeer die Arduino IDE

  1. Aflaai:
    • Gaan na: https://www.arduino.cc/en/software
    • Laai „Arduino IDE 2.x“ vir Windows af
    • Kies .exe Installeerder
  2. Installasie:
    • Begin die installeerder (as administrateur)
    • Laat alle opsies geaktiveer
    • Voltooi installasie

Installeer ESP32-bordondersteuning

  1. Maak die Arduino IDE oop
  2. Konfigureer Bordbestuurder:
    • Menubalk LêerVoorkeureVoer die volgende in onder "Bykomende bordbestuurder-URL'e":
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Klik op Goed
  3. Installering van ESP32-borde:
    • Menubalk GereedskapbordRaadbestuurder
    • Soek: esp32
    • Installeer: „esp32 deur Espressif Systems“ (Weergawe 2.0.17+)
    • Wag totdat die installasie voltooi is

Installeer USB-drywers

Windows herken ESP32 dikwels NIE outomaties nie!

Vir CP2102/CP2104-skyfie (mees algemeen):
  1. Aflaai:
  2. Installasie:
    • Pak uit
    • CP210xVCPInstaller_x64.exe Begin as administrateur
    • Voltooi installasie
    • Herbegin Windows
Vir CH340/CH341-skyfie:
  1. Aflaai:
  2. Installasie:
    • Pak uit
    • CH341SER.EXE Begin as administrateur
    • Klik op „INSTALLEER“
    • Herbegin Windows
Vind uit wat die skyfietipe is:
  • Verbind ESP32
  • Maak Toestelbestuurder oop: Windows + XToestelbestuurder
  • Poorts (COM & LPT) oop
  • Soek vir:
    • „Silicon Labs CP210x…“ = CP2102
    • „USB SERIËLE CH340“ = CH340
    • „"SLAB_USBnaUART" = CP2102

Koppel ESP32 en kontroleer poort

  1. Koppel ESP32 via USB
  2. Vind die hawe uit:
    • Menubalk Gereedskaphawe
    • Kies: KOM3, KOM4, KOM5 ens.
    • (Nommer wissel na gelang van die stelsel)

Geen poort sigbaar nie? → Drywer nie geïnstalleer nie of verkeerde drywer!

Kies bord

  1. Kies bord:
    • Menubalk Gereedskapbordesp32„ESP32 Ontwikkelingsmodule“
  2. Oplaai-instellings:
    • Oplaaispoed: 115200
    • Flitsfrekwensie: 80MHz
    • Flitsmodus: QIO
    • Flitsgrootte: 4MB (32MB)
    • Verdelingskema: Standaard 4MB met ekstras

Toets oplaai

  1. Laai voorbeeld:
    • Menubalk LêerVoorbeelde01. Basiese beginselsKnipoog
  2. Oplaai:
    • Klik die oplaaiknoppie (→)
    • By „Verbind…“ moontlik. BOOT-knoppie hou die ESP32 vas
  3. Sukses:
    • „"Harde herstel..." = ✅ Oplaai suksesvol!

Biblioteke vir verbrandingsbeheer

Outomaties ingesluit (ESP32 Core):

  • WiFi.h
  • HTTPKliënt.h
  • Webbediener.h
  • Voorkeure.h
  • esp_taak_wdt.h

Probleemoplossing

Probleem: "Poort nie gevind nie"„

Mac:

# Maak 'n terminaal oop en kyk: ls /dev/cu.* # Dit behoort te wys: /dev/cu.usbserial-XXXX /dev/cu.SLAB_USBtoUART

Vensters:

  • Maak Toestelbestuurder oop
  • Kontroleer die verbindings (COM en LPT).
  • Herinstalleer drywers
  • Herbegin Windows

„Verbind…“ hang

Oplossing:

  1. BOOT-knoppie Hou die knoppie op die ESP32 ingedruk
  2. Klik dan op die oplaaiknoppie.
  3. Hou die BOOT-knoppie in totdat "Skryf..." verskyn.
  4. Laat die sleutel los

Alternatief:

  • Druk kortliks die EN-knoppie (herstel)
  • Probeer dan weer oplaai.

„"Kompilasiefout"“

Algemene oorsake:

  • Verkeerde bord gekies
  • ESP32-bordondersteuning nie geïnstalleer nie
  • Sintaksfout in die kode

Oplossing:

  • Gaan die bord weer na: ESP32 Ontwikkelingsmodule
  • Maak Bordbestuurder oop → Herinstalleer esp32

Oplaai werk, maar Seriële Monitor is leeg.

Oplossing:

  1. Kontroleer baudtempo:
    • Kode: Serial.begin(115200);
    • Seriële Monitor: Ook 115200 stel
  2. Kontroleer poort:
    • Is die korrekte COM-poort gekies?
  3. Druk die EN-sleutel:
    • Herstel na oplaai

Kontrolelys voor die eerste oplaai

  • [ ] Arduino IDE geïnstalleer
  • [ ] ESP32-bordondersteuning geïnstalleer (Weergawe 2.0.17+)
  • [ ] USB-drywer geïnstalleer (Windows!)
  • [ ] ESP32 gekoppel via USB
  • [ ] Poort sigbaar in Arduino IDE
  • [ ] Bord: „ESP32 Ontwikkelingsmodule“ gekies
  • [ ] Oplaaispoed: 115200
  • [ ] Flitsgrootte: 4MB
  • [] Seriële Monitor Baud-tempo: 115200
  • [ ] Router NTP-deling

NTP-vrystelling

Sommige routers word standaard sonder NTP-toegang gekonfigureer, wat beteken dat versoeke via NTP-poort 123 nie aangestuur word nie, met die gevolg dat geen data van die aangespreekte NTP-bediener aangevra kan word nie.

Daarom moet 'n ooreenstemmende reël gedefinieer word:

Leerhulpbronne

Amptelike dokumentasie:

Laai kode op

  1. Maak lêer oop:
  2. Pas WiFi-instellings aan: const char* WIFI_SSID = "JOU_WIFI"; const char* WIFI_WAGWOORD = "JOU_WAGWOORD";
  3. Voer XML API-token in: const char* XML_API_TOKEN = "JOU_TOKEN_HIER";
    In Raspberry Matic moet die XML-API-byvoeging geïnstalleer word. Daarna, in die XML-API-byvoeginginstellings, klik op... tokenregister.cgi 'n Teken sal gegenereer word. Hierdie teken is geldig vir alle toekomstige GUI-aanmeldings en bestaan uit 'n 16-karakter reeks hoofletters en kleinletters. Dit moet op die toepaslike plek in die ESP32-kode ingevoeg word.
  4. Oplaai:
    • Verifieer (✓) → Kontroleer kode
    • Laai op (→) → Laai op na ESP32
  5. Maak Seriële Monitor Oop:
    • GereedskapSeriële Monitor
    • Baudtempo: 115200 (gevind onder die GEREEDSKAP-kieslys – Oplaaispoed: ... stel)
    • Hou die kwessie dop!

Inbedryfstelling

Na suksesvolle opstelling:

  1. Toets WiFi-verbinding
  2. Laai verbrandingsbeheerkode op
  3. Koppel motor- en limietskakelaars
  4. Genereer RaspberryMatic-tokens
  5. Toetsstelsel

ESP32-kode

Die vereiste kode is volledig gekommenteer en dus naspeurbaar en, indien nodig, aanpasbaar.Laai af)

ESP32 GUI

Vir toetsdoeleindes kan die afhanklikheid van uitlaatgastemperatuur van klepopening staploos handmatig in die grafiese gebruikerskoppelvlak aangepas word.

Die vlampatroon word waargeneem, en die visueel "gepaste" persentasie van die demperopening word op elke oomblik aangepas. Die temperatuurwaarde wat op daardie tydstip vanaf RaspberryMatic gelees word, word as die beginwaarde vir die aanpassing na die ingestelde persentasie van die demperopening toegeken. Die teikentemperatuur word bepaal deur die volgende visueel "noodsaaklike" aanpassing van die demperopening.

Byvoorbeeld, as 150°C as die beginpunt (vanaf …) vir die opening na 80% en 200°C as die waarde vir die vermindering na 45% waargeneem is, dan is die konstellasie wat onder die eerste ELSE IF-funksie in die program „ getoon word„Verbrandingsbeheer – temperatuurbeheer“"soos afgebeeld.".

„Toetsmodus“ word vertoon wanneer geen randapparatuur nog aan die ESP32 gekoppel is nie en die veranderlike ""konstante bool TOETS_MODUS ="" steeds aan "„waar“" staan.
Verander na „vals“"kanselleer die toetsmodus en initialiseer die verwysingsloop van die gekoppelde motor om die begin- en eindposisies wat deur die limietskakelaars gedefinieer word, te bepaal.".

Regstreekse logging

Diagnostiek

Outomatiese fouthantering

Vir deurlopende, probleemvrye werking is die onderskepping van potensiële foute noodsaaklik. Daarom sluit die kode die volgende roetines in om foute op te spoor en reg te stel met behulp van toepaslike maatreëls:

  • Hantering van stapeloorloop
  • Brownout-opsporing
  • Deling deur nul
  • Noodafskakeling van die limietskakelaar
  • HTTP-fouthantering
  • HTTP-uitsonderingshantering
  • Heelgetal-oorlooptoets
  • Geheuemonitering
  • millis() Oorloop
  • Motoralarmopsporing
  • Voorkeure Herstel
  • Posisiebeperkings
  • Beskerming teen baie lang blokkeringsoperasies
  • Telnet Kliëntbestuur
  • Telnet NULL-wyser
  • Draadveiligheid
  • Tekenvalidering
  • Waghond-timer
  • WiFi outomaties herkoppel

RaspberryMatic – Programme

verbrandingsbeheer

program

AS die stelseltoestand Abbrenn_Klappe_Soll in die reeks van 0 en minder as 101 (persent) is

SKRYF DAN… ONMIDDELLIK

! ESP32 IP-adres (PAS HIER AAN!)
string esp32_ip = "Voer_IP_adres_ESP32_in";

Kry die huidige waarde van die stelselveranderlike
var stelpunt = dom.GetObject("Abbrand_Klappe_Soll").Value();

Bou URL vir ESP32 Terugroep
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;

Skakel ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
stelsel.Exec(cmd);

! Loguitvoer (opsioneel, vir ontfouting)
WriteLine("Brand: Stuur " # stelpunt # "% na ESP32 " # esp32_ip);

Verbrandingsbeheer – temperatuurbeheer

program

AS toestelkeuse "PT1000_Uitlaattemperatuursensor" BY WERKLIKE temperatuur van ... tot ...

DAN Stelseltoestand Burn_Flap_Target ONMIDDELLIK xxx*

ANDERS AS...

Hier word die boonste twee lyne, elk met verskillende temperatuurreekse en persentasiewaardes, voortdurend aangevul deur 'n ELSE IF-funksie totdat alle vereiste reekse gedek is.

* „xxx“ is die verlangde persentasie van die flap-opening.

Lineêre aandrywer en limietskakelaar-samestelling

Afhangende van die beskikbare ruimte onder die klepmeganisme, word die lineêre aandrywer wat met die motor toegerus is, daaronder gemonteer. 'n "Vurk" is aan die slee geheg, wat deur die spil vorentoe of agtertoe beweeg word; die handbediende meganisme skakel met hierdie vurk in.

Die hefboom is gewoonlik so ontwerp dat dit effens op en af beweeg kan word. Die lengte van die vurktande word dienooreenkomstig aangepas, sodat die hefboom steeds met die hand daaruit beweeg en volledig na die OOP-posisie gedruk kan word.

Dit dien enersyds om maksimum trek te genereer wanneer brandstof bygevoeg word, indien die elektroniese beheer nog nie ten volle tot 100% gereguleer is nie.

Aan die ander kant het dit ook beteken dat die suiwer meganiese bedryfsopsie steeds beskikbaar was, byvoorbeeld in die geval van 'n kragonderbreking.

Maak 'n opvolg-bydrae

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde word met * aangedui