Innehållsförteckning
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
- Ladda ner:
- Gå till: https://www.arduino.cc/en/software
- Ladda ner „Arduino IDE 2.x“ för macOS
- Välj
.dmgför Intel eller.dmgför Apple Silicon (M1/M2/M3)
- Installation:
.dmgÖppna fil- Dra Arduino IDE till programmappen
- Starta Arduino IDE
Installera stöd för ESP32-kort
- Öppna Arduino IDE
- Chef för öppen styrelse:
- Meny:
Arduino IDE→Inställningar(ellerCmd + ,) - Ange webbadresserna under „Ytterligare webbadresser för korthanteraren“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Klicka på
OK
- Meny:
- Installera ESP32-korten:
- Klicka på styrelsesymbolen till vänster (eller i Menyfält
Verktyg→Styrelse→Styrelsechef) - 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)
- Klicka på styrelsesymbolen till vänster (eller i Menyfält
USB-drivrutin (upp till OS 10.14)
Om ESP32 inte känns igen:
- Ladda ner: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Fil:
macOS_VCP_Drivrutin.zipnedladdning - Installera och starta om Mac
För CH340-chip:
- Ladda ner: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Installera och starta om Mac
Ansluta ESP32
- Anslut ESP32 via USB
- Kontrollera port:
- Arduino IDE Menyfält:
Verktyg→hamn - Välj port liknande:
/dev/cu.usbserial-0001eller/dev/cu.SLAB_USBtoUARTeller/dev/cu.wchusbserial*
- Arduino IDE Menyfält:
Välj styrelse
- Arduino IDE:
- Menyfält
Verktyg→Styrelse→esp32→ „ESP32 Dev Module“
- Menyfält
- Inställningar:
- Uppladdningshastighet: 115200
- Flash Frekvens: 80 MHz
- Blixtläge: QIO
- Flash Storlek: 4MB (32Mb)
- Fördelningsschema: Standard 4MB med spiffs
Testuppladdning
- Öppna exempelkod:
- Menyfält
Fil→Exempel→01.grunderna→Blinka
- Menyfält
- 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
- Framgång:
- „Hård återställning via RTS-stiftet...“ = Uppladdningen lyckades!
- LED-lampan på ESP32 ska blinka
FÖNSTER
Installera Arduino IDE
- Ladda ner:
- Gå till: https://www.arduino.cc/en/software
- Ladda ner „Arduino IDE 2.x“ för Windows
- Välj
.exeInstallatör
- Installation:
- Kör installationsprogrammet (som administratör)
- Lämna alla alternativ aktiverade
- Slutför installationen
Installera stöd för ESP32-kort
- Öppna Arduino IDE
- Konfigurera Board Manager:
- Menyfält
Fil→InställningarAnge webbadresserna under „Ytterligare webbadresser för korthanteraren“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Klicka på
OK
- Menyfält
- Installera ESP32-korten:
- Menyfält
Verktyg→Styrelse→Styrelsechef - Sök:
esp32 - Installera: „esp32 av Espressif Systems“ (Version 2.0.17+)
- Vänta tills installationen är klar
- Menyfält
Installera USB-drivrutin
Windows känner ofta INTE igen ESP32 automatiskt!
För CP2102/CP2104-chip (vanligast):
- Ladda ner:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Fil:
CP210x_Universal_Windows_Driver.zip
- Installation:
- Packa upp ZIP
CP210xVCPInstaller_x64.exeKör som administratör- Slutför installationen
- Starta om Windows
För CH340/CH341-chip:
- Ladda ner:
- Installation:
- Packa upp ZIP
CH341SER.EXEKör som administratör- Klicka på „INSTALLERA“
- Starta om Windows
Ta reda på vilken typ av chip det är:
- Ansluta ESP32
- Öppna Enhetshanteraren:
Windows + X→Enhetshanterare - Anslutningar (COM & LPT) veckla ut
- Sök efter:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIELL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
Anslut ESP32 och kontrollera porten
- Anslut ESP32 via USB
- Ta reda på hamnen:
- Menyfält
Verktyg→hamn - Välj: COM3, COM4, COM5 etc.
- (antalet varierar beroende på system)
- Menyfält
Ingen port synlig? → Drivrutinen är inte installerad eller fel drivrutin!
Välj styrelse
- Välj styrelse:
Menu-fältVerktyg→Styrelse→esp32→ „ESP32 Dev Module“
- Ladda upp inställningar:
- Uppladdningshastighet: 115200
- Flash Frekvens: 80 MHz
- Blixtläge: QIO
- Flash Storlek: 4MB (32Mb)
- Fördelningsschema: Standard 4MB med spiffs
Testuppladdning
- Exempel på belastning:
- Menyfält
Fil→Exempel→01.grunderna→Blinka
- Menyfält
- Ladda upp:
- Klicka på uppladdningsknappen (→)
- För „Ansluter...“ eventuellt. BOOT-knapp håll på ESP32
- 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:
- BOOT-knapp Tryck och håll in på ESP32
- Klicka sedan på uppladdningsknappen
- Håll in BOOT-knappen tills „Writing...“ visas
- 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:
- Kontrollera baudhastigheten:
- Koda:
Serial.begin(115200); - Seriemonitor: Även 115200 Ställ in
- Koda:
- Kontrollera port:
- Är rätt COM-port vald?
- 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:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Arduino-referens: https://www.arduino.cc/reference/en/
Ladda upp kod
- Öppna filen:
- Den Textinnehåll i denna fil i det tomma(!) Arduino IDE-fönstret
- Anpassa WiFi:
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - 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. - Ladda upp:
- Verifiera (✓) → Kontrollera kod
- Ladda upp (→) → Ladda upp till ESP32
- Öppna Serial Monitor:
Verktyg→Seriell monitor- Baudhastighet: 115200 (visas under menyn VERKTYG -) Uppladdningshastighet: .... avvecklad)
- Titta på utgången!
Driftsättning
Efter lyckad installation:
- Testa WiFi-anslutningen
- Ladda upp kontrollkod för avbränning
- Anslut motor och gränslägesbrytare
- Generera RaspberryMatic-token
- 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.