Hoppa till innehåll

Spis - förbränningskontroll

Lästid 8 minuter

Uppdaterad - 3 februari 2026

En modern braskamin har vanligtvis ett integrerat styrsystem för förbränningen. Om du fortfarande har en braskamin utan detta automatiska system kan du bygga ditt eget styrsystem i kombination med Smarthome (Raspberry Pi).

Även om det ännu inte är möjligt att automatisera inmatningen av veden, förutom i pelletskaminer, ger automatiseringen en jämnare förbränning, konstanta temperaturer och en lägre vedförbrukning på upp till 30 % med högre effektivitet.

Om du inte „vågar“ direkt, kan jag berätta att jag en gång kände likadant. Men om du tar en närmare titt på ämnet och de möjligheter som RaspberryMatic erbjuder på till exempel en Raspberry Pi, kommer du snart att vara övertygad om att du kan „göra det“!

Och som så ofta i livet: det är bättre tillsammans! Låt oss ta itu med det!

Teori

Det vi kan se med blotta ögat i form av flammönster och flammans färg detekteras av en högtemperatursensor som skruvas in i rökgasröret ca 20 cm ovanför förbränningskammaren.

Beroende på den temperatur som ska upprätthållas på cirka 200 °C använder den ett enkelt program på Raspberry Pi för att öppna och stänga tilluftsklaffen, vilket tidigare måste göras manuellt - om du tittar på ugnen ...

I princip en enkel mekanism. Mekanismen, i ordets rätta bemärkelse, realiseras här via en linjär drivenhet som drivs av en stegmotor. Beroende på det faktiska temperaturvärdet jämfört med börvärdet får stegmotorn information om huruvida den ska öka eller minska tilluften om temperaturen är för låg. Följaktligen flyttas (den manuella) manöverspaken för tilluftsspjället, som är mekaniskt kopplad till linjärsliden, framåt eller bakåt och spjället öppnas eller stängs.

Eftersom RaspberryMatic inte erbjuder någon möjlighet att direktadressera en stegmotor får vi nöja oss med en ESP32-IDF, en liten dator som erbjuder anslutning av en stegmotorstyrenhet och därmed kan ta över kontrollen av densamma.

Kommunikationen mellan RaspberryMatic och ESP32-IDF sker via WLAN, som redan är integrerat i ESP32-IDF. ESP32-IDF är programmerad i C++, Arduino IDE och ingår i den här artikeln för enkel överföring efter ändring av några parametrar.

Programmet för registrering av temperatur och positionering av den linjära stegmotorn medföljer också för enkel överföring.

Inköpslista

  • Raspberry Pi 4 modell B Set med hölje, fläkt, nätaggregat - ca 95 euro
  • SD-kort 16 GB (för RaspberryMatic-installation) - ca 10,- Euro
  • RaspberryMatic (Ladda ner) - kostnadsfritt
    (med Raspberry Pi bagare (Mac) eller Raspberry Pi bildbehandlare (Windows) Kopiera till SD-kort;
    Skapa variabler Bränning_status (Typ Sträng); Burning_flap_actual (Typ Antal); Burn_off_flap_desired (Typ 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 hittas i den näst sista utdataraden, t.ex. „19827“)
  • ESP32 utvecklingskort (t.ex. ESP32 DevKit V1) - ca 12,- Euro
    Arduino IDE 2.x Ladda ner (Mac) (Windows)
  • CL86Y Drivdon för stegmotor (eller TB6600)*
  • NEMA 17 stegmotor (200 steg/varv)* - Set ca 80,- Euro
  • Linjär drivenhet 100 mm, 150 mm lämplig för ovan nämnda stegmotortyp ca. 50,- Euro
  • 2x gränslägesbrytare (mekanisk) - ca 4,- euro
  • 48V DC strömförsörjningsenhet (för motor 12A) - ca 39,- Euro
  • Strömförsörjningsenhet 5V DC (för ESP32, t.ex. USB) - ca 7,- Euro
  • ELV PT1000 sensor för hög temperatur 4-trådig Art. Nr. 258570 - ca 24,- Euro
  • ELV platina temperaturgivare gränssnitt - Art. Nr. 162126 - ca 45,- Euro
  • Rörkoppling i mässing M10 x 6 mm för PT1000-temperatursensor - ca 4,- Euro

För totalt cirka 370 euro är detta ett fullvärdigt och dessutom mycket billigt alternativ till en eftermonteringssats - om en sådan överhuvudtaget finns tillgänglig för kaminen - som vanligtvis kostar mellan 750 och 1 500 euro!

Förberedelser

Installationen av RaspberryMatic på SD-kortet för Raspberry Pi 4 B är här beskrivs i detalj, inklusive installation av höljet om ingen sats har köpts.

ESP32 - Inställning

macOS

Steg 1: Installera Arduino IDE

  1. Ladda ner:
    • Gå till: https://www.arduino.cc/en/software
    • Ladda ner „Arduino IDE 2.x“ för macOS
    • Välj .dmg för Intel eller .dmg för Apple Silicon (M1/M2/M3)
  2. Installation:
    • .dmg Öppna fil
    • Dra Arduino IDE till programmappen
    • Starta Arduino IDE

Installera stöd för ESP32-kort

  1. Öppna Arduino IDE
  2. Chef för öppen styrelse:
    • Meny: Arduino IDEInställningar (eller Cmd + ,)
    • Ange webbadresserna under „Ytterligare webbadresser för korthanteraren“:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Klicka på OK
  3. Installera ESP32-korten:
    • Klicka på styrelsesymbolen till vänster (eller i Menyfält VerktygStyrelseStyrelsechef)
    • Sök efter: esp32
    • Installera: „esp32 av Espressif Systems“ (Version 2.0.17 eller nyare)
    • Vänta tills installationen är klar (kan ta 5-10 minuter)

USB-drivrutin (upp till OS 10.14)

Om ESP32 inte känns igen:

  1. Ladda ner: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
  2. Fil: macOS_VCP_Drivrutin.zip nedladdning
  3. Installera och starta om Mac

För CH340-chip:

Ansluta ESP32

  1. Anslut ESP32 via USB
  2. Kontrollera port:
    • Arduino IDE Menyfält: Verktyghamn
    • Välj port liknande:
      • /dev/cu.usbserial-0001 eller
      • /dev/cu.SLAB_USBtoUART eller
      • /dev/cu.wchusbserial*

Välj styrelse

  1. Arduino IDE:
    • Menyfält VerktygStyrelseesp32„ESP32 Dev Module“
  2. Inställningar:
    • Uppladdningshastighet: 115200
    • Flash Frekvens: 80 MHz
    • Blixtläge: QIO
    • Flash Storlek: 4MB (32Mb)
    • Fördelningsschema: Standard 4MB med spiffs

Testuppladdning

  1. Öppna exempelkod:
    • Menyfält FilExempel01.grundernaBlinka
  2. Ladda upp kod:
    • Klicka på uppladdningsknappen (→)
    • Vänta tills „Ansluter...“ visas
    • Om „Ansluter...“ hänger sig: Tryck på och håll in BOOT-knappen på ESP32
  3. Framgång:
    • „Hård återställning via RTS-stiftet...“ = Uppladdningen lyckades!
    • LED-lampan på ESP32 ska blinka

FÖNSTER

Installera Arduino IDE

  1. Ladda ner:
    • Gå till: https://www.arduino.cc/en/software
    • Ladda ner „Arduino IDE 2.x“ för Windows
    • Välj .exe Installatör
  2. Installation:
    • Kör installationsprogrammet (som administratör)
    • Lämna alla alternativ aktiverade
    • Slutför installationen

Installera stöd för ESP32-kort

  1. Öppna Arduino IDE
  2. Konfigurera Board Manager:
    • Menyfält FilInställningarAnge webbadresserna under „Ytterligare webbadresser för korthanteraren“:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Klicka på OK
  3. Installera ESP32-korten:
    • Menyfält VerktygStyrelseStyrelsechef
    • Sök: esp32
    • Installera: „esp32 av Espressif Systems“ (Version 2.0.17+)
    • Vänta tills installationen är klar

Installera USB-drivrutin

Windows känner ofta INTE igen ESP32 automatiskt!

För CP2102/CP2104-chip (vanligast):
  1. Ladda ner:
  2. Installation:
    • Packa upp ZIP
    • CP210xVCPInstaller_x64.exe Kör som administratör
    • Slutför installationen
    • Starta om Windows
För CH340/CH341-chip:
  1. Ladda ner:
  2. Installation:
    • Packa upp ZIP
    • CH341SER.EXE Kör som administratör
    • Klicka på „INSTALLERA“
    • Starta om Windows
Ta reda på vilken typ av chip det är:
  • Ansluta ESP32
  • Öppna Enhetshanteraren: Windows + XEnhetshanterare
  • Anslutningar (COM & LPT) veckla ut
  • Sök efter:
    • „Silicon Labs CP210x...“ = CP2102
    • „USB-SERIELL CH340“ = CH340
    • „SLAB_USBtoUART“ = CP2102

Anslut ESP32 och kontrollera porten

  1. Anslut ESP32 via USB
  2. Ta reda på hamnen:
    • Menyfält Verktyghamn
    • Välj: COM3, COM4, COM5 etc.
    • (antalet varierar beroende på system)

Ingen port synlig? → Drivrutinen är inte installerad eller fel drivrutin!

Välj styrelse

  1. Välj styrelse:
    • Menu-fält VerktygStyrelseesp32„ESP32 Dev Module“
  2. Ladda upp inställningar:
    • Uppladdningshastighet: 115200
    • Flash Frekvens: 80 MHz
    • Blixtläge: QIO
    • Flash Storlek: 4MB (32Mb)
    • Fördelningsschema: Standard 4MB med spiffs

Testuppladdning

  1. Exempel på belastning:
    • Menyfält FilExempel01.grundernaBlinka
  2. Ladda upp:
    • Klicka på uppladdningsknappen (→)
    • För „Ansluter...“ eventuellt. BOOT-knapp håll på ESP32
  3. Framgång:
    • „Hård återställning...“ = ✅ Uppladdning lyckad!

Bibliotek för förbränningskontroll

Ingår automatiskt (ESP32 Core):

  • WiFi.h
  • HTTPClient.h
  • WebServer.h
  • Inställningar.h
  • esp_task_wdt.h

Felsökning

Problem: „Port hittades inte“

Mac:

# Öppna terminal och kontrollera:
ls /dev/cu.*

# Bör visa:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART

Fönster:

  • Öppna Enhetshanteraren
  • Kontrollera anslutningar (COM & LPT)
  • Installera om drivrutinen
  • Starta om Windows

„Ansluter...“ hänger sig

Lösning:

  1. BOOT-knapp Tryck och håll in på ESP32
  2. Klicka sedan på uppladdningsknappen
  3. Håll in BOOT-knappen tills „Writing...“ visas
  4. Utlösningsknapp

Alternativ:

  • Tryck kort på EN-knappen (reset)
  • Försök sedan ladda upp igen

„Kompileringsfel“

Vanliga orsaker:

  • Fel kort valt
  • ESP32 Board Support är inte installerat
  • Syntaxfel i koden

Lösning:

  • Kontrollera kortet igen: ESP32 Dev-modul
  • Öppna Board Manager → installera om esp32

Uppladdningen fungerar, men seriemonitorn är tom

Lösning:

  1. Kontrollera baudhastigheten:
    • Koda: Serial.begin(115200);
    • Seriemonitor: Även 115200 Ställ in
  2. Kontrollera port:
    • Är rätt COM-port vald?
  3. Tryck på EN-knappen:
    • Återställ efter uppladdning

Checklista före första uppladdningen

  • [ ] Arduino IDE installerat
  • [ ] ESP32 Board Support installerat (version 2.0.17+)
  • [ ] USB-drivrutin installerad (Windows!)
  • [ ] ESP32 ansluten via USB
  • [ ] Port synlig i Arduino IDE
  • [ ] Kort: „ESP32 Dev Module“ valt
  • [ ] Uppladdningshastighet: 115200
  • [ ] Flash-storlek: 4MB
  • [ ] Seriell bildskärm Baudhastighet: 115200
  • [ ] Router NTP release

NTP-utgåva

Vissa routrar är som standard konfigurerade utan NTP-delning, vilket innebär att förfrågningar via NTP-port 123 inte vidarebefordras, med följden att inga data kan begäras från den adresserade NTP-servern.

En motsvarande regel måste därför definieras:

Resurser för lärande

Officiell dokumentation:

Ladda upp kod

  1. Öppna filen:
  2. Anpassa WiFi: const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT";
  3. Ange XML-API-token: const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
    XML API-tillägget måste vara installerat i RaspberryMatic. Du kan sedan ändra inställningarna för XML API-tillägget genom att klicka på tokenregister.cgi kan en token genereras. Token är giltig för alla framtida GUI-inloggningar och består av en 16-siffrig sekvens av stora och små bokstäver. Den måste sättas in i ESP32-koden på lämplig plats.
  4. Ladda upp:
    • Verifiera (✓) → Kontrollera kod
    • Ladda upp (→) → Ladda upp till ESP32
  5. Öppna Serial Monitor:
    • VerktygSeriell monitor
    • Baudhastighet: 115200 (visas under menyn VERKTYG -) Uppladdningshastighet: .... avvecklad)
    • Titta på utgången!

Driftsättning

Efter lyckad installation:

  1. Testa WiFi-anslutningen
  2. Ladda upp kontrollkod för avbränning
  3. Anslut motor och gränslägesbrytare
  4. Generera RaspberryMatic-token
  5. Testsystem

ESP32-kod

Den kod som krävs är helt kommenterad och därför spårbar och anpassningsbar vid behov. (Ladda ner)

ESP32 GUI

I GUI kan detta ställas in manuellt och kontinuerligt för teständamål för att fastställa avgastemperaturens beroende av spjällöppning.

Flammönstret observeras och det visuellt „lämpliga“ procentvärdet för spjällöppningen justeras vid den aktuella tidpunkten. Det temperaturvärde som avläses från RaspberryMatic vid den aktuella tidpunkten tilldelas det inställda procentvärdet för spjällöppningen som startvärde för ändringen. Temperaturvärdet till är resultatet av nästa visuellt „nödvändiga“ korrigering av spjällöppningen.

Om t.ex. 150°C erkänns som startpunkt (från ...) för öppning till 80% och 200°C som värde för minskning till 45%, så resulterar den konstellation som visas under den första OTHER IF-funktionen i programmet „Avbränningskontroll - Temperaturkontroll“ som illustrerad.

„Testläge“ visas om ingen kringutrustning ännu har anslutits till ESP32 och variabeln "const bool TEST_MODE =" fortfarande på „sant“ står.
Ändra till „false.false“ avbryter testläget och initierar referenskörningen av den anslutna motorn för att fastställa start- och slutpositionerna som definieras av gränslägesbrytarna.

Live-loggning

Diagnostik

Automatiserad felhantering

Att fånga upp eventuella feltillstånd är avgörande för en kontinuerlig och problemfri drift. Koden är därför försedd med följande rutiner för att känna igen fel och åtgärda dem med lämpliga åtgärder:

  • Behandling av bräddavlopp från skorsten
  • Detektering av strömavbrott
  • Division av Noll
  • Gränslägesbrytare för nödavstängning
  • Hantering av HTTP-fel
  • Hantering av HTTP-undantag
  • Kontroll av överflöd av heltal
  • Övervakning av minnet
  • millis() Överflöde
  • Detektering av motorlarm
  • Återställning av inställningar
  • Begränsningar i positionen
  • Skydd mot mycket långa blockeringsoperationer
  • Hantering av Telnet-klient
  • Telnet NULL-pekare
  • Tråd säkerhet
  • Validering av token
  • Watchdog-timer
  • Automatisk återanslutning av WiFi

RaspberryMatic - Program

Kontroll av avbränning

programmera

IF systemstatus Burnup_Damper_Setpoint i värdeintervallet 0 och mindre än 101 (procent)

SEDAN SKRIPT ... OMEDELBART

! ESP32 IP-adress (ANPASSA HÄR!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";

! Hämta aktuellt värde för systemvariabeln
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();

! Skapa URL för ESP32-anrop
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;

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

! Loggutdata (valfritt, för felsökning)
WriteLine("Uppvärmning: Skicka " # börvärde # "% till ESP32 " # esp32_ip);

Avbränningskontroll - Temperaturkontroll

programmera

IF enhetsval "PT1000_temperature_sensor_flue_gas" FOR ACTUAL temperature from ... till ...

THEN Systemstatus Burn-off_Damper_Setpoint IMMEDIATELY xxx*

ANNARS OM ...

Här kompletteras de två översta raderna kontinuerligt med olika temperaturintervall och procentvärden med hjälp av en OTHER IF-funktion tills alla nödvändiga intervall har täckts in.

* xxx„ är det önskade procentvärdet för klafföppningen.

Linjärt ställdon & gränslägesbrytare

Beroende på det tillgängliga utrymmet under klaffmekanismen monteras den linjära drivenheten utrustad med motorn undertill. En „gaffel“ är fäst vid vagnen, som flyttas framåt eller bakåt av spindeln, i vilken den manuellt manövrerade mekanismen griper in.

„Spaken“ är vanligtvis utformad så att den kan flyttas något upp och ner. Längden på „gafflarna“ justeras i enlighet med detta så att spaken fortfarande kan flyttas ut ur detta manuellt och skjutas helt ÖPPEN.

Å ena sidan tjänar detta till att generera ett maximalt drag vid påfyllning av bränsle om den elektroniska styrningen ännu inte är helt inställd på 100%.

Å andra sidan är det rent mekaniska driftalternativet fortfarande tillgängligt, t.ex. i händelse av strömavbrott.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish