Spring til indhold

Komfur - forbrændingskontrol

Læsetid 8 minutter

Opdateret - 3. februar 2026

En moderne brændeovn har normalt et integreret forbrændingsstyringssystem. Hvis du stadig har en brændeovn uden dette automatiske system, kan du bygge dit eget kontrolsystem i kombination med Smarthome (Raspberry Pi).

Selv om det endnu ikke er muligt at automatisere påfyldningen af træ, bortset fra pilleovne, giver automatisering en mere jævn afbrænding, konstante temperaturer og et lavere træforbrug på op til 30 % med større effektivitet.

Hvis du ikke „tør“ med det samme, kan jeg fortælle dig, at jeg engang havde det på samme måde. Men hvis du kigger nærmere på emnet og de muligheder, som RaspberryMatic giver på f.eks. en Raspberry Pi, vil du hurtigt blive overbevist om, at du kan „gøre det“!

Og som så ofte i livet: Det er bedre sammen! Lad os tage fat på det!

Teori

Det, vi kan se med det blotte øje fra flammemønsteret og flammens farve, registreres af en højtemperatursensor, der er skruet ind i røggasrøret ca. 20 cm over forbrændingskammeret.

Afhængigt af den temperatur, der skal holdes på omkring 200 °C, bruger den et simpelt program på Raspberry Pi til at åbne og lukke indblæsningsklappen, hvilket tidligere skulle gøres manuelt - hvis man kiggede på ovnen ...

I princippet en simpel mekanisme. Mekanismen, i ordets egentlige forstand, er her realiseret via et lineært drev, der bevæges af en stepmotor. Afhængigt af den faktiske temperaturværdi sammenlignet med setpunktsværdien modtager stepmotoren information om, hvorvidt den skal øge eller mindske indblæsningen, hvis temperaturen er for lav. Derfor bevæges (det manuelle) betjeningshåndtag til tilluftspjældet, som er mekanisk koblet til den lineære slæde, fremad eller bagud, og spjældet åbnes eller lukkes.

Da RaspberryMatic ikke giver mulighed for at adressere en stepmotor direkte, nøjes vi med en ESP32-IDF, en lille computer, der giver mulighed for tilslutning af en stepmotorstyring og dermed kan overtage styringen af samme.

Kommunikationen mellem RaspberryMatic og ESP32-IDF foregår via WLAN, som allerede er integreret i ESP32-IDF. ESP32-IDF er programmeret i C++, Arduino IDE og er inkluderet i denne artikel for nem overførsel efter ændring af nogle få parametre.

Programmet til registrering af temperatur og positionering af den lineære stepmotor medfølger også, så det er nemt at overføre.

Indkøbsliste

  • Raspberry Pi 4 Model B Sæt med hus, blæser, strømforsyning - ca. 95 euro
  • SD-kort 16 GB (til RaspberryMatic-installation) - ca. 10,- Euro
  • RaspberryMatic (Download) - gratis
    (med Raspberry Pi Bager (Mac) eller Raspberry Pi Imager (Windows) Kopier til SD-kort;
    Opret variabler Brænding_status (Type Tegnstreng); Brændende_klap_aktuel (Type Antal); Burn_off_flap_desired (Type Antal); 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 Resultat kan findes i den næstsidste outputlinje, f.eks. „".19827“)
  • ESP32-udviklingskort (f.eks. ESP32 DevKit V1) - ca. 12,- Euro
    Arduino IDE 2.x Download (Mac) (Vinduer)
  • CL86Y Driver til stepmotor (eller TB6600)*
  • NEMA 17-trinmotor (200 trin/omdrejningstal)* - Sæt ca. 80,- Euro
  • Lineært drev 100 mm, 150 mm egnet til ovennævnte stepmotortype ca. 50,- Euro
  • 2x grænsekontakt (mekanisk) - ca. 4,- Euro
  • 48V DC strømforsyningsenhed (til motor 12A) - ca. 39,- Euro
  • Strømforsyningsenhed 5V DC (til ESP32, f.eks. USB) - ca. 7,- Euro
  • ELV PT1000 sensor til høj temperatur 4-leder Art. Nr. 258570 - ca. 24,- Euro
  • ELV platin temperatur sensor interface - Art. Nr. 162126 - ca. 45,- Euro
  • Messingrørfitting M10 x 6 mm til PT1000-temperatursensoren - ca. 4,- Euro

For i alt ca. 370 euro er dette et fuldgyldigt og også meget billigt alternativ til et eftermonteringssæt - hvis der overhovedet findes et til ovnen - som normalt koster mellem 750 og 1.500 euro!

Forberedelser

Installationen af RaspberryMatic på SD-kortet til Raspberry Pi 4 B er her beskrevet i detaljer, inklusive installation af huset, hvis der ikke er købt et sæt.

ESP32 - opsætning

macOS

Trin 1: Installer Arduino IDE

  1. Download:
    • Gå til: https://www.arduino.cc/en/software
    • Download „Arduino IDE 2.x“ til macOS
    • Vælg .dmg for Intel eller .dmg til Apple Silicon (M1/M2/M3)
  2. Installation:
    • .dmg Åbn fil
    • Træk Arduino IDE ind i programmappen
    • Start Arduino IDE

Installer understøttelse af ESP32-kort

  1. Åbn Arduino IDE
  2. Åben bestyrelsesleder:
    • Menu: Arduino IDEIndstillinger (eller Cmd + ,)
    • Indtast webadresserne under „Yderligere webadresser til bestyrelsesadministratorer“:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Klik på OK
  3. Installer ESP32-kort:
    • Klik på tavleikonet til venstre (eller i Menulinje VærktøjerBestyrelseBestyrelseschef)
    • Søg efter: esp32
    • Installer: „esp32 af Espressif Systems“ (Version 2.0.17 eller nyere)
    • Vent, indtil installationen er færdig (det kan tage 5-10 minutter).

USB-driver (op til OS 10.14)

Hvis ESP32 ikke genkendes:

  1. Download: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
  2. Fil: macOS_VCP_Driver.zip download
  3. Installer og genstart Mac

Til CH340-chip:

Tilslutning af ESP32

  1. Tilslut ESP32 via USB
  2. Tjek porten:
    • Arduino IDE Menulinje: VærktøjerHavn
    • Vælg en port, der ligner:
      • /dev/cu.usbserial-0001 eller
      • /dev/cu.SLAB_USBtoUART eller
      • /dev/cu.wchusbserial*.

Vælg bestyrelse

  1. Arduino IDE:
    • Menulinje VærktøjerBestyrelseesp32„ESP32 Dev Module“
  2. Indstillinger:
    • Uploadhastighed: 115200
    • Flash-frekvens: 80 MHz
    • Flash-tilstand: QIO
    • Flash-størrelse: 4MB (32Mb)
    • Opdelingsskema: Standard 4MB med spiffs

Upload af test

  1. Åbn eksempelkode:
    • Menulinje FilEksempler01.basicsBlink
  2. Upload kode:
    • Klik på upload-knappen (→)
    • Vent, indtil „Forbinder ...“ vises
    • Hvis „Forbinder ...“ hænger: Tryk på BOOT-knappen på ESP32, og hold den nede.
  3. Succes:
    • „Hård nulstilling via RTS-pin ...“ = Upload vellykket!
    • LED'en på ESP32 bør blinke

VINDUER

Installer Arduino IDE

  1. Download:
    • Gå til: https://www.arduino.cc/en/software
    • Download „Arduino IDE 2.x“ til Windows
    • Vælg .exe Installatør
  2. Installation:
    • Kør installationsprogrammet (som administrator)
    • Lad alle indstillinger være aktiveret
    • Færdiggør installationen

Installer understøttelse af ESP32-kort

  1. Åbn Arduino IDE
  2. Konfigurer Board Manager:
    • Menulinje FilIndstillingerIndtast webadresserne under „Yderligere webadresser til bestyrelsesadministratorer“:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Klik på OK
  3. Installer ESP32-kort:
    • Menulinje VærktøjerBestyrelseBestyrelseschef
    • Søg: esp32
    • Installer: „esp32 af Espressif Systems“ (Version 2.0.17+)
    • Vent, indtil installationen er færdig

Installer USB-driver

Windows genkender ofte IKKE ESP32 automatisk!

Til CP2102/CP2104-chip (mest almindelig):
  1. Download:
  2. Installation:
    • Pak ZIP ud
    • CP210xVCPInstaller_x64.exe Kør som administrator
    • Færdiggør installationen
    • Genstart Windows
Til CH340/CH341-chip:
  1. Download:
  2. Installation:
    • Pak ZIP ud
    • CH341SER.EXE Kør som administrator
    • Klik på „INSTALLÉR“
    • Genstart Windows
Find ud af, hvilken type chip det er:
  • Tilslutning af ESP32
  • Åbn Enhedshåndtering: Windows + XEnhedshåndtering
  • Tilslutninger (COM & LPT) udfolde sig
  • Søg efter:
    • „Silicon Labs CP210x...“ = CP2102
    • „USB-SERIAL CH340“ = CH340
    • „SLAB_USBtoUART“ = CP2102

Tilslut ESP32 og tjek porten

  1. Tilslut ESP32 via USB
  2. Find ud af, hvor havnen er:
    • Menulinje VærktøjerHavn
    • Vælg: COM3, COM4, COM5 osv.
    • (antallet varierer afhængigt af systemet)

Ingen synlig port? → Driver ikke installeret eller forkert driver!

Vælg bestyrelse

  1. Vælg bestyrelse:
    • Menu bar. VærktøjerBestyrelseesp32„ESP32 Dev Module“
  2. Upload indstillinger:
    • Uploadhastighed: 115200
    • Flash-frekvens: 80 MHz
    • Flash-tilstand: QIO
    • Flash-størrelse: 4MB (32Mb)
    • Opdelingsskema: Standard 4MB med spiffs

Upload af test

  1. Eksempel på indlæsning:
    • Menulinje FilEksempler01.basicsBlink
  2. Upload:
    • Klik på upload-knappen (→)
    • For „Forbinder...“ muligvis. BOOT-knap hold på ESP32
  3. Succes:
    • „Hård nulstilling ...“ = ✅ Upload vellykket!

Biblioteker til forbrændingskontrol

Automatisk inkluderet (ESP32 Core):

  • WiFi.h
  • HTTPClient.h
  • WebServer.h
  • Indstillinger.h
  • esp_task_wdt.h

Fejlfinding

Problem: „Port ikke fundet“

Mac:

# Åbn en terminal, og tjek:
ls /dev/cu.*

# Bør vise:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART

Vinduer:

  • Åbn Device Manager
  • Tjek forbindelser (COM & LPT)
  • Geninstaller driveren
  • Genstart Windows

„Forbindelse ...“ hænger

Løsning:

  1. BOOT-knap Tryk og hold på ESP32
  2. Klik derefter på upload-knappen
  3. Hold BOOT-knappen nede, indtil „Writing...“ vises.
  4. Udløserknap

Alternativt:

  • Tryk kort på EN-knappen (nulstilling)
  • Prøv derefter at uploade igen

„Kompileringsfejl“

Almindelige årsager:

  • Forkert kort valgt
  • ESP32 Board Support er ikke installeret
  • Syntaksfejl i koden

Løsning:

  • Tjek tavlen igen: ESP32 udviklingsmodul
  • Åbn Board Manager → geninstaller esp32

Upload virker, men seriel skærm er tom

Løsning:

  1. Tjek baud-hastighed:
    • Kode: Serial.begin(115200);
    • Seriel monitor: Også 115200 Sæt
  2. Tjek porten:
    • Er den rigtige COM-port valgt?
  3. Tryk på EN-knappen:
    • Nulstil efter upload

Tjekliste før første upload

  • [ ] Arduino IDE installeret
  • [ ] ESP32 Board Support installeret (version 2.0.17+)
  • [ ] USB-driver installeret (Windows!)
  • [ ] ESP32 tilsluttet via USB
  • [ ] Port synlig i Arduino IDE
  • [ ] Board: „ESP32 Dev Module“ valgt
  • [ ] Uploadhastighed: 115200
  • [ ] Flash-størrelse: 4 MB
  • [ ] Seriel skærm Baud-hastighed: 115200
  • [ ] Router NTP-udgivelse

NTP-udgivelse

Nogle routere er som standard konfigureret uden NTP-deling, hvilket betyder, at anmodninger via NTP-port 123 ikke videresendes med det resultat, at der ikke kan anmodes om data fra den adresserede NTP-server.

Der skal derfor defineres en tilsvarende regel:

Læringsressourcer

Officiel dokumentation:

Upload kode

  1. Åbn filen:
  2. Tilpas WiFi: const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT";
  3. Indtast XML-API-token: const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
    XML API-tilføjelsen skal være installeret i RaspberryMatic. Du kan derefter ændre indstillingerne for XML API-tilføjelsen ved at klikke på tokenregister.cgi kan der genereres et token. Tokenet er gyldigt for alle fremtidige GUI-logins og består af en 16-cifret sekvens af store og små bogstaver. Det skal indsættes i ESP32-koden på den relevante position.
  4. Upload:
    • Bekræft (✓) → Tjek koden
    • Upload (→) → Upload til ESP32
  5. Åbn Serial Monitor:
    • VærktøjerSeriel skærm
    • Baud-hastighed: 115200 (vises under menuen VÆRKTØJER -) Uploadhastighed: .... udgået)
    • Hold øje med udgangen!

Ibrugtagning

Efter vellykket opsætning:

  1. Test WiFi-forbindelse
  2. Upload afbrændingskontrolkode
  3. Tilslut motor og grænsekontakt
  4. Generer RaspberryMatic-token
  5. Testsystem

ESP32-kode

Den nødvendige kode er fuldt kommenteret og kan derfor spores og tilpasses, hvis det er nødvendigt. (Download)

ESP32 GUI

I GUI kan dette indstilles manuelt og kontinuerligt til testformål for at bestemme udstødningsgastemperaturens afhængighed af spjældåbning.

Flammemønsteret observeres, og den visuelt „passende“ procentvise værdi af spjældåbningen justeres på det relevante tidspunkt. Den temperaturværdi, der aflæses fra RaspberryMatic på det pågældende tidspunkt, tildeles den indstillede procentvise værdi af spjældåbningen som startværdi for ændringen. Temperaturværdien er resultatet af den næste visuelt „nødvendige“ korrektion af spjældåbningen.

Hvis f.eks. 150°C blev anerkendt som udgangspunkt (fra ...) for åbning til 80% og 200°C som værdien for reduktion til 45%, så resulterer den konstellation, der vises under den første OTHER IF-funktion, i programmet „Afbrændingskontrol - Temperaturkontrol“ som illustreret.

„Test mode“ vises, hvis der endnu ikke er tilsluttet nogen perifere enheder til ESP32, og variablen "const bool TEST_MODE =" stadig på „ægte“ står.
Skift til „falsk“ annullerer testtilstanden og initialiserer referencekørslen for den tilsluttede motor for at bestemme start- og slutpositionerne, der er defineret af grænsekontakterne.

Live logning

Diagnostik

Automatiseret fejlhåndtering

At opfange mulige fejltilstande er afgørende for en kontinuerlig, problemfri drift. Koden er derfor forsynet med følgende rutiner til at genkende fejl og udbedre dem ved hjælp af passende foranstaltninger:

  • Behandling af stakoverløb
  • Registrering af brownout
  • Division med NUL
  • Nødstop på grænsekontakt
  • HTTP-fejlhåndtering
  • Håndtering af HTTP-undtagelser
  • Kontrol af heltalsoverløb
  • Overvågning af hukommelse
  • millis() Overflow
  • Registrering af motoralarm
  • Gendannelse af præferencer
  • Positionsbegrænsninger
  • Beskyttelse mod meget lange blokeringer
  • Håndtering af Telnet-klienter
  • Telnet NULL-markør
  • Trådsikkerhed
  • Token-validering
  • Watchdog-timer
  • Automatisk genoprettelse af WiFi-forbindelse

RaspberryMatic - Programmer

Afbrændingskontrol

Program

HVIS systemstatus Burnup_Damper_Setpoint i værdiområdet 0 og mindre end 101 (procent)

DEREFTER SCRIPT ... MED DET SAMME

! ESP32 IP-adresse (TILPAS HER!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";

! Hent den aktuelle værdi af systemvariablen
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();

! Byg URL til ESP32-tilbagekald
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;

! Kald på ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);

! Logoutput (valgfrit, til fejlfinding)
WriteLine("Opbrænding: Send " # sætpunkt # "% til ESP32 " # esp32_ip);

Afbrændingskontrol - Temperaturkontrol

Program

HVIS valg af enhed "PT1000_temperature_sensor_flue_gas" FOR ACTUAL temperatur fra ... til ...

SÅ Systemstatus Burn-off_Damper_Setpoint IMMEDIATELY xxx*

ELLERS HVIS ...

Her suppleres de to øverste linjer løbende med forskellige temperaturområder og procentværdier ved hjælp af en OTHER IF-funktion, indtil alle nødvendige områder er dækket.

* xxx„ er den ønskede procentvise værdi af klapåbningen.

Samling af lineær aktuator og grænsekontakt

Afhængigt af den plads, der er til rådighed under klapmekanismen, monteres det lineære drev med motoren nedenunder. En „gaffel“ er fastgjort til vognen, som bevæges fremad eller bagud af spindlen, hvori den manuelt betjente mekanisme går i indgreb.

„Håndtaget“ er normalt designet, så det kan bevæges lidt op og ned. Længden af „gaflerne“ justeres tilsvarende, så håndtaget stadig kan flyttes ud af dette manuelt og skubbes helt ÅBEN.

På den ene side tjener det til at skabe et maksimalt træk, når der fyldes brændstof på, hvis den elektroniske styring endnu ikke er helt indstillet til 100%.

På den anden side er den rent mekaniske driftsmulighed stadig tilgængelig, f.eks. i tilfælde af strømsvigt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

da_DKDanish