Vsebina
Posodobljeno - 3. februar 2026
Sodobne peči na drva imajo običajno vgrajen sistem za nadzor zgorevanja. Če imate še vedno peč na drva brez tega samodejnega sistema, lahko v kombinaciji s sistemom Smarthome (Raspberry Pi) izdelate svoj nadzorni sistem.
Tudi če nalaganja drv še ni mogoče avtomatizirati, se z avtomatizacijo poleg peči na pelete doseže enakomernejše izgorevanje, konstantne temperature in manjša poraba drv do 30 % z večjo učinkovitostjo.
Če si ne upate takoj, vam lahko povem, da sem se nekoč počutila enako. Toda če si podrobneje ogledate temo in možnosti, ki jih na primer ponuja RaspberryMatic na računalniku Raspberry Pi, boste kmalu prepričani, da lahko „to naredite“!
In kot pogosto v življenju: skupaj je bolje! Lotimo se ga!
Teorija
To, kar lahko vidimo s prostim očesom iz vzorca plamena in barve plamena, zazna visokotemperaturni senzor, ki je privijačen v cev za dimne pline približno 20 cm nad zgorevalno komoro.
Glede na temperaturo, ki jo je treba vzdrževati pri približno 200 °C, se s preprostim programom na računalniku Raspberry Pi odpira in zapira loputa za dovod zraka, kar je bilo prej treba storiti ročno - če ste pogledali na pečico ...
Načeloma gre za preprost mehanizem. Mehanizem v pravem pomenu besede je tu izveden z linearnim pogonom, ki ga premika koračni motor. Glede na dejansko vrednost temperature v primerjavi z nastavljeno vrednostjo dobi koračni motor informacijo, ali naj poveča ali zmanjša dovod zraka, če je temperatura prenizka. V skladu s tem se (ročni) pogonski vzvod lopute za dovod zraka, ki je mehansko povezan z linearnim vodilom, premakne naprej ali nazaj in loputa se odpre ali zapre.
Ker RaspberryMatic ne ponuja možnosti neposrednega naslavljanja koračnega motorja, se zadovoljimo z ESP32-IDF, majhnim računalnikom, ki ponuja povezavo krmilnika koračnega motorja in tako lahko prevzame nadzor nad njim.
Komunikacija med RaspberryMatic in ESP32-IDF poteka prek omrežja WLAN, ki je že vgrajeno v ESP32-IDF. ESP32-IDF je programiran v C++, Arduino IDE in je vključen v ta članek za enostaven prenos po spremembi nekaj parametrov.
Za enostaven prenos je na voljo tudi program za beleženje temperature in položaja linearnega koračnega motorja.
Nakupovalni seznam
- Raspberry Pi 4 Model B Komplet z ohišjem, ventilatorjem in napajalno enoto - približno 95 evrov
- Kartica SD 16 GB (za namestitev RaspberryMatic) - približno 10,- Euro
- RaspberryMatic (prenesi) - brezplačno
(z Pekač Raspberry Pi (Mac) ali Raspberry Pi Imager (Windows) Kopiranje na kartico SD;
Ustvarjanje spremenljivk Burning_status (Tip Niz znakov); Burning_flap_actual (Tip Številka); Burn_off_flap_desired (Tip Številka); 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 Rezultat se nahaja v predzadnji izhodni vrstici, npr. „19827“) - Razvojna plošča ESP32 (npr. ESP32 DevKit V1) - približno 12,- EUR
Arduino IDE 2.x Prenos (Mac) (Windows) - CL86Y Gonilnik koračnega motorja (ali TB6600)*
- Koračni motor NEMA 17 (200 korakov/obrat)* - Cena približno 80,- EUR
- Linearni pogon 100 mm, 150 mm, primerno za zgoraj omenjeni tip koračnega motorja pribl. 50,- EUR
- 2x končno stikalo (mehansko) - približno 4,- EUR
- Napajalna enota 48V DC (za motor 12A) - približno 39,- EUR
- Napajalna enota 5V DC (za ESP32, npr. USB) - približno 7,- EUR
- ELV PT1000 visokotemperaturni senzor 4-žični Art. št. 258570 - približno 24,- EUR
- Vmesnik platinskega temperaturnega senzorja ELV - Art. št. 162126 - približno 45,- EUR
- Medeninasti cevni nastavek M10 x 6 mm za temperaturni senzor PT1000 - približno 4,- EUR
Za približno 370 evrov je to popolna in tudi zelo poceni alternativa kompletu za naknadno vgradnjo - če je ta za peč sploh na voljo -, ki običajno stane od 750 do 1.500 evrov!
Priprave
Namestitev RaspberryMatic na kartico SD za Raspberry Pi 4 B je tukaj podrobno opisano, vključno z namestitvijo ohišja, če ni bil kupljen komplet.
ESP32 - Nastavitev
macOS
Korak 1: Namestitev Arduino IDE
- Prenesi:
- Pojdi na: https://www.arduino.cc/en/software
- Prenos „Arduino IDE 2.x“ za macOS
- Izberite
.dmgza Intel ali.dmgza Apple Silicon (M1/M2/M3)
- Namestitev:
.dmgOdprite datoteko- Povlecite Arduino IDE v mapo programa
- Začetek Arduino IDE
Namestitev podpore plošče ESP32
- Odprite Arduino IDE
- Upravitelj odprtega odbora:
- Meni:
Arduino IDE→Nastavitve(aliCmd + ,) - URL-je vnesite v razdelku „Dodatni URL-ji upravitelja tabel“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Kliknite na
V REDU
- Meni:
- Namestite plošče ESP32:
- Kliknite ikono table na levi strani (ali v Menijevska vrstica
Orodja→Upravni odbor→Vodja upravnih odborov) - Iskanje:
esp32 - Namestitev: „esp32 podjetja Espressif Systems“ (različica 2.0.17 ali novejša)
- Počakajte, da se namestitev konča (lahko traja 5-10 minut).
- Kliknite ikono table na levi strani (ali v Menijevska vrstica
gonilnik USB (do operacijskega sistema OS 10.14)
Če ESP32 ni prepoznan:
- Prenesi: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Datoteka:
macOS_VCP_Driver.zipprenesi - Namestitev in ponovni zagon računalnika Mac
Za čip CH340:
- Prenesi: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Namestitev in ponovni zagon računalnika Mac
Povezovanje ESP32
- Povezovanje ESP32 prek USB
- Preverite vrata:
- Arduino IDE Menijevska vrstica:
Orodja→Pristanišče - Izberite vrata, podobna:
/dev/cu.usbserial-0001ali/dev/cu.SLAB_USBtoUARTali/dev/cu.wchusbserial*
- Arduino IDE Menijevska vrstica:
Izberite odbor
- Arduino IDE:
- Menijevska vrstica
Orodja→Upravni odbor→esp32→ „Modul ESP32 Dev“
- Menijevska vrstica
- Nastavitve:
- Hitrost prenosa: 115200
- Frekvenca bliskavice: 80 MHz
- Način bliskavice: QIO
- Velikost bliskavice: 4 MB (32 MB)
- Shema razdelitve: Privzeto 4 MB s spiffi
Testno nalaganje
- Odprite vzorčno kodo:
- Menijevska vrstica
Datoteka→Primeri→01.osnove→Blink
- Menijevska vrstica
- Prenesite kodo:
- Kliknite gumb za nalaganje (→)
- Počakajte, dokler se ne prikaže napis „Connecting...“.
- Če se „Povezovanje...“ obesi: Pritisnite in držite gumb BOOT na ESP32
- Uspeh:
- „Trda ponastavitev prek nožice RTS...“ = Prenos je uspešen!
- LED na ESP32 mora utripati
OKNA
Namestitev Arduino IDE
- Prenesi:
- Pojdi na: https://www.arduino.cc/en/software
- Prenos „Arduino IDE 2.x“ za Windows
- Izberite
.exeMonter
- Namestitev:
- Zaženite namestitveni program (kot skrbnik)
- Pustite vse možnosti aktivirane
- Dokončajte namestitev
Namestitev podpore plošče ESP32
- Odprite Arduino IDE
- Konfigurirajte upravitelja Board Manager:
- Menijevska vrstica
Datoteka→NastavitveURL-je vnesite v razdelku „Dodatni URL-ji upravitelja tabel“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Kliknite na
V REDU
- Menijevska vrstica
- Namestite plošče ESP32:
- Menijevska vrstica
Orodja→Upravni odbor→Vodja upravnih odborov - Iskanje:
esp32 - Namestitev: „esp32 podjetja Espressif Systems“ (različica 2.0.17+)
- Počakajte, da se namestitev konča
- Menijevska vrstica
Namestitev gonilnika USB
Sistem Windows pogosto NE prepozna ESP32 samodejno!
Za čip CP2102/CP2104 (najpogostejši):
- Prenesi:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Datoteka:
CP210x_Universal_Windows_Driver.zip
- Namestitev:
- Razpakiranje ZIP
CP210xVCPInstaller_x64.exeZaženi kot skrbnik- Dokončajte namestitev
- Ponovni zagon sistema Windows
Za čip CH340/CH341:
- Prenesi:
- Namestitev:
- Razpakiranje ZIP
CH341SER.EXEZaženi kot skrbnik- Kliknite na „INSTALL“.“
- Ponovni zagon sistema Windows
Ugotovite vrsto čipa:
- Povezovanje ESP32
- Odprite Upravitelja naprav:
Windows + X→Upravitelj naprav - Povezave (COM in LPT) razgrniti
- Iskanje:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIAL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
Povežite ESP32 in preverite vrata
- Povezovanje ESP32 prek USB
- Poiščite pristanišče:
- Menijevska vrstica
Orodja→Pristanišče - Izberite: COM3, COM4, COM5 itd.
- (število je odvisno od sistema)
- Menijevska vrstica
Vrata niso vidna? → Gonilnik ni nameščen ali je nameščen napačen gonilnik!
Izberite odbor
- Izberite odbor:
Menu barOrodja→Upravni odbor→esp32→ „Modul ESP32 Dev“
- Nastavitve nalaganja:
- Hitrost prenosa: 115200
- Frekvenca bliskavice: 80 MHz
- Način bliskavice: QIO
- Velikost bliskavice: 4 MB (32 MB)
- Shema razdelitve: Privzeto 4 MB s spiffi
Testno nalaganje
- Primer obremenitve:
- Menijevska vrstica
Datoteka→Primeri→01.osnove→Blink
- Menijevska vrstica
- Naloži:
- Kliknite gumb za nalaganje (→)
- Za „Povezovanje...“ po možnosti. Gumb BOOT držite na ESP32
- Uspeh:
- „Trda ponastavitev...“ = ✅ Nalaganje uspešno!
Knjižnice za nadzor zgorevanja
Samodejno vključeno (jedro ESP32):
- WiFi.h
- HTTPClient.h
- WebServer.h
- Nastavitve.h
- esp_task_wdt.h
Odpravljanje težav
Težava: „Pristanišče ni bilo najdeno“
Mac:
# Odprite terminal in preverite:
ls /dev/cu.*
# Pokaže se:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART
Okna:
- Odprite Upravitelja naprav
- Preverite povezave (COM in LPT)
- Ponovna namestitev gonilnika
- Ponovni zagon sistema Windows
„Povezovanje...“ visi
Rešitev:
- Gumb BOOT Pritisnite in pridržite ESP32
- Nato kliknite gumb za nalaganje
- Držite gumb BOOT, dokler se ne prikaže napis „Writing...“.
- Gumb za sprostitev
Druga možnost:
- Na kratko pritisnite gumb EN (ponastavitev)
- Nato poskusite znova naložiti
„Napaka pri sestavljanju“
Pogosti vzroki:
- Izbrana napačna plošča
- Podpora plošče ESP32 ni nameščena
- Sintaktična napaka v kodi
Rešitev:
- Ponovno preverite ploščo:
Modul ESP32 Dev - Odprite Upravitelj plošče → ponovno namestite esp32
Prenos deluje, vendar je serijski monitor prazen
Rešitev:
- Preverite hitrost prenosa podatkov:
- Koda:
Serial.begin(115200); - Serijski monitor: tudi 115200 Nastavite
- Koda:
- Preverite vrata:
- Izbrana so pravilna vrata COM?
- Pritisnite gumb EN:
- Ponastavitev po nalaganju
Kontrolni seznam pred prvim nalaganjem
- [ ] Nameščen Arduino IDE
- [ ] Nameščena podpora za ploščo ESP32 (različica 2.0.17+)
- [ ] Nameščen gonilnik USB (Windows!)
- [ ] ESP32, povezan prek USB
- [ ] Pristanišče je vidno v Arduino IDE
- [ ] Izbrana plošča: „ESP32 Dev Module“
- [ ] Hitrost prenosa: 115200
- [ ] Velikost pomnilnika Flash: 4 MB
- [ ] Serijski monitor Hitrost prenosa: 115200
- [ ] Sprostitev usmerjevalnika NTP
Sprostitev NTP
Nekateri usmerjevalniki so privzeto konfigurirani brez souporabe NTP, kar pomeni, da se zahteve prek vrat NTP 123 ne posredujejo, zato od naslovljenega strežnika NTP ni mogoče zahtevati podatkov.
Zato je treba opredeliti ustrezno pravilo:

Učni viri
Uradna dokumentacija:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Referenca za Arduino: https://www.arduino.cc/reference/en/
Prenesite kodo
- Odprta datoteka:
- Spletna stran Besedilna vsebina te datoteke v prazno(!) okno Arduino IDE
- Prilagodite WiFi:
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - Vnesite žeton XML-API:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
Dodatek XML API mora biti nameščen v RaspberryMatic. Nastavitve dodatka XML API lahko spremenite tako, da kliknete na tokenregister.cgi se lahko ustvari žeton. Žeton velja za vse prihodnje prijave v grafični vmesnik in je sestavljen iz 16-mestnega zaporedja velikih in malih črk. V kodo ESP32 ga je treba vstaviti na ustrezno mesto. - Naloži:
- Preveri (✓) → Preveri kodo
- Prenos (→) → Prenos v ESP32
- Odprite serijski monitor:
Orodja→Serijski monitor- Hitrost prenosa podatkov: 115200 (prikaže se v meniju Orodja - Hitrost prenosa: .... prekinjena)
- Oglejte si izhod!
Oddaja v uporabo
Po uspešni nastavitvi:
- Preizkusite povezavo WiFi
- Naložitev nadzorne kode za izklop izgorevanja
- Povežite motor in končno stikalo
- Ustvarjanje žetona RaspberryMatic
- Preskusni sistem
Koda ESP32
Zahtevana koda je v celoti komentirana, zato jo je mogoče slediti in po potrebi prilagoditi. (prenesi)
GRAFIČNI VMESNIK ESP32
V grafičnem uporabniškem vmesniku lahko to nastavite ročno in neprekinjeno za preskusne namene, da ugotovite odvisnost temperature izpušnih plinov od odprtja lopute.
Opazuje se vzorec plamena in ob ustreznem času se prilagodi vizualno „primerna“ odstotna vrednost odprtja lopute. Vrednost temperature, ki se takrat odčita iz sistema RaspberryMatic, se dodeli nastavljeni odstotni vrednosti odprtja lopute kot začetna vrednost za spremembo. Vrednost temperature je rezultat naslednje vizualno „potrebne“ korekcije odprtja lopute.
Če je bila na primer 150 °C priznana kot začetna točka (od ...) za odpiranje na 80% in 200 °C kot vrednost za zmanjšanje na 45%, potem konstelacija, prikazana pod prvo funkcijo DRUGI IF, privede do programa „Nadzor izgorevanja - Nadzor temperature“, kot je prikazano.

„Testni način“ se prikaže, če na ESP32 še ni priključena nobena periferna naprava in je spremenljivka "const bool TEST_MODE =" še vedno na „Resnično“ stoji.
Spremeni se na „lažno“ prekliče preskusni način in inicializira referenčni tek priključenega motorja, da se določita začetni in končni položaj, ki ju določajo končna stikala.
Beleženje v živo

Diagnostika

Avtomatizirano odpravljanje napak
Za neprekinjeno in nemoteno delovanje je bistvenega pomena zaznavanje možnih stanj napak. Koda je zato opremljena z naslednjimi postopki za prepoznavanje napak in njihovo odpravljanje z ustreznimi ukrepi:
- Obravnava prelivanja kupa
- Zaznavanje izpadov
- Delitev z NULO
- Izklop mejnega stikala v sili
- Ravnanje z napakami HTTP
- Ravnanje z izjemami HTTP
- Preverjanje prelivanja celih števil
- Spremljanje pomnilnika
- millis() Prelitje
- Zaznavanje motornega alarma
- Obnovitev nastavitev
- Omejitve položaja
- Zaščita pred zelo dolgimi operacijami blokiranja
- Upravljanje odjemalcev Telnet
- Telnet NULL kazalec
- Varnost niti
- Potrjevanje žetonov
- Watchdog timer
- Samodejna ponovna vzpostavitev povezave WiFi
RaspberryMatic - Programi
Nadzor izgorevanja
Program
IF status sistema Burnup_Damper_Setpoint v območju vrednosti od 0 do manj kot 101 (odstotkov)
NATO SCENARIJ ... TAKOJ
! IP naslov ESP32 (TU PRILAGODITE!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";
! Pridobite trenutno vrednost sistemske spremenljivke
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();
! Sestavite URL za povratni klic ESP32
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;
! Pokličite ESP32
string cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);
! Izpis dnevnika (neobvezno, za razhroščevanje)
WriteLine("Burn-up: Pošlji " # setpoint # "% v ESP32 " # esp32_ip);
Nadzor izgorevanja - Nadzor temperature
Program
Če je izbrana naprava "PT1000_temperature_sensor_flue_gas" ZA AKTUALNO temperaturo od ... do ...
Potem status sistema Burn-off_Damper_Setpoint NEPOVRATNO xxx*
SICER ČE ...
Pri tem se zgornji dve vrstici neprekinjeno dopolnjujeta z različnimi temperaturnimi območji in odstotnimi vrednostmi s funkcijo OTHER IF, dokler niso zajeta vsa zahtevana območja.
* xxx„ je želeni odstotek odprtja lopute.

Sestav linearnega pogona in končnega stikala
Odvisno od razpoložljivega prostora pod mehanizmom lopute je linearni pogon, opremljen z motorjem, nameščen pod njim. Na voziček je pritrjena „vilica“, ki jo vreteno premika naprej ali nazaj in v katero se zaskoči mehanizem z ročnim upravljanjem.
Vzvod je običajno zasnovan tako, da ga je mogoče rahlo premikati navzgor in navzdol. Dolžina „vilic“ je ustrezno prilagojena, tako da je mogoče ročico še vedno ročno premakniti iz tega položaja in jo potisniti do konca ODPRTI.
Po eni strani je to namenjeno ustvarjanju največjega vleka pri dodajanju goriva, če elektronsko krmiljenje še ni v celoti nastavljeno na 100%.
Po drugi strani pa je še vedno na voljo možnost izključno mehanskega delovanja, npr. v primeru izpada električnega napajanja.