Turinys
Atnaujinta - vasario 3, 2026
Šiuolaikinėje malkomis kūrenamoje krosnelėje paprastai būna integruota degimo kontrolės sistema. Jei vis dar turite malkomis kūrenamą krosnelę be šios automatinės sistemos, galite sukurti savo valdymo sistemą kartu su "Smarthome" (Raspberry Pi).
Net jei dar neįmanoma automatizuoti malkų pakrovimo, išskyrus granulines krosneles, automatizuojant pasiekiamas tolygesnis degimas, pastovi temperatūra ir mažesnės malkų sąnaudos - iki 30 %, o efektyvumas didesnis.
Jei iš karto „neišdrįsite“, galiu pasakyti, kad kažkada jaučiausi taip pat. Bet jei atidžiau pasidomėsite šia tema ir galimybėmis, kurias siūlo, pavyzdžiui, RaspberryMatic, naudojant Raspberry Pi, netrukus įsitikinsite, kad galite „tai padaryti“!
Ir kaip dažnai būna gyvenime: kartu geriau! Įveikime tai!
Teorija
Tai, ką matome plika akimi iš liepsnos piešinio, ir liepsnos spalvą nustato aukštos temperatūros jutiklis, įsuktas į išmetamųjų dujų vamzdį maždaug 20 cm virš degimo kameros.
Priklausomai nuo palaikomos maždaug 200 °C temperatūros, naudojant paprastą "Raspberry Pi" programą atidaroma ir uždaroma oro padavimo sklendė, o anksčiau tai reikėjo daryti rankiniu būdu - jei žiūrėdavote į orkaitę ...
Iš esmės tai paprastas mechanizmas. Mechanizmas tikrąja to žodžio prasme čia įgyvendinamas naudojant linijinę pavarą, kurią judina žingsninis variklis. Priklausomai nuo faktinės temperatūros vertės, lyginant ją su nustatyta verte, žingsninis variklis gauna informaciją, ar jis turėtų padidinti, ar sumažinti tiekiamo oro kiekį, jei temperatūra yra per žema. Atitinkamai tiekiamo oro sklendės, kuri yra mechaniškai sujungta su linijine pavara, (rankinės) pavaros svirtis judinama pirmyn arba atgal ir sklendė atidaroma arba uždaroma.
Kadangi RaspberryMatic nesuteikia galimybės tiesiogiai adresuoti žingsninį variklį, mes naudojame ESP32-IDF, nedidelį kompiuterį, prie kurio galima prijungti žingsninio variklio valdiklį ir taip perimti jo valdymą.
Ryšys tarp "RaspberryMatic" ir ESP32-IDF vyksta per WLAN, kuris jau integruotas į ESP32-IDF. ESP32-IDF užprogramuotas C++, Arduino IDE ir įtrauktas į šį straipsnį, kad pakeitus keletą parametrų jį būtų galima lengvai perkelti.
Taip pat pateikiama temperatūrai ir linijinio žingsninio variklio padėčiai registruoti skirta programa, kurią lengva perkelti.
Pirkinių sąrašas
- Raspberry Pi 4 B modelis Rinkinys su korpusu, ventiliatoriumi ir maitinimo bloku - apie 95 eurus
- SD kortelė 16 GB (RaspberryMatic diegimui) - apie 10,- Eurų
- RaspberryMatic (atsisiųsti) - nemokamai
(su Aviečių pi kepėjas (Mac) arba Aviečių pi vaizduoklis (Windows) Kopijuoti į SD kortelę;
Sukurti kintamuosius Degimo_status (Įveskite Simbolių eilutė); Burning_flap_actual (Įveskite Numeris); Burn_off_flap_desired (Įveskite Numeris); 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 Rezultatas galima rasti priešpaskutinėje išvesties eilutėje, pvz., „19827“) - ESP32 kūrimo plokštė (pvz., ESP32 DevKit V1) - apie 12,- Eur
Arduino IDE 2.x Parsisiųsti (Mac) (Windows) - CL86Y Žingsninio variklio tvarkyklė (arba TB6600)*
- NEMA 17 žingsninis variklis (200 žingsnių/apyvartos)* - Nustatyta apie 80,- Eur
- Linijinė pavara 100 mm, 150 mm, tinka pirmiau minėtiems žingsninių variklių tipams apie 50,- Eur
- 2x ribinis jungiklis (mechaninis) - apie 4,- Eur
- 48 V nuolatinės srovės maitinimo blokas (12 A varikliui) - apie 39,- Eur
- Maitinimo blokas 5V DC (ESP32, pvz., USB) - apie 7,- Eur
- ELV PT1000 aukštos temperatūros jutiklis 4 laidų Art. Nr. 258570 - apie 24,- Eur
- ELV platinos temperatūros jutiklio sąsaja - Straipsnis. Nr. 162126 - apie 45,- Eur
- Žalvario vamzdžių jungiamoji detalė M10 x 6 mm PT1000 temperatūros jutikliui - apie 4,- Eur
Iš viso už maždaug 370 eurų tai yra visavertė ir labai nebrangi alternatyva modernizavimo rinkiniui, kuris paprastai kainuoja nuo 750 iki 1 500 eurų, jei toks apskritai yra!
Preparatai
Aviečių "RaspberryMatic" diegimas į "Raspberry Pi 4 B" SD kortelę yra čia išsamiai aprašyta, įskaitant korpuso montavimą, jei nebuvo įsigytas rinkinys.
ESP32 - sąranka
macOS
1 žingsnis: Įdiekite "Arduino IDE
- Atsisiųsti:
- Eikite į: https://www.arduino.cc/en/software
- Atsisiųsti „Arduino IDE 2.x“, skirtą "macOS
- Pasirinkite
.dmg"Intel" arba.dmg"Apple" silicio (M1/M2/M3)
- Įrengimas:
.dmgAtidaryti failą- Vilkite "Arduino IDE" į programos aplanką
- Paleiskite "Arduino IDE
Įdiekite ESP32 plokštės palaikymą
- Atviras "Arduino IDE
- Atviros valdybos valdytojas:
- Meniu:
Arduino IDE→Nustatymai(arbaCmd + ,) - Įveskite URL adresus skiltyje „Papildomi lentų valdytojo URL adresai“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Spustelėkite
GERAI
- Meniu:
- Įdiekite ESP32 plokštes:
- Spustelėkite kairėje esančią lentos piktogramą (arba Meniu juosta
Įrankiai→Valdyba→Skydų valdytojas) - Ieškoti:
esp32 - Įdiekite: „esp32 by Espressif Systems“ (2.0.17 arba naujesnė versija)
- Palaukite, kol bus baigtas diegimas (gali užtrukti 5-10 minučių)
- Spustelėkite kairėje esančią lentos piktogramą (arba Meniu juosta
USB tvarkyklė (iki OS 10.14)
Jei ESP32 neatpažįstamas:
- Atsisiųsti: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Failas:
macOS_VCP_Driver.zipatsisiųsti - Įdiekite ir iš naujo paleiskite "Mac
CH340 lustui:
- Atsisiųsti: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Įdiekite ir iš naujo paleiskite "Mac
ESP32 prijungimas
- ESP32 prijungimas per USB
- Patikrinkite prievadą:
- Arduino IDE Meniu juosta:
Įrankiai→Uostas - Pasirinkite prievadą, panašų į:
/dev/cu.usbserial-0001arba/dev/cu.SLAB_USBtoUARTarba/dev/cu.wchusbserial*
- Arduino IDE Meniu juosta:
Pasirinkite valdybą
- Arduino IDE:
- Meniu juosta
Įrankiai→Valdyba→esp32→ „ESP32 Dev modulis“
- Meniu juosta
- Nustatymai:
- Siuntimo greitis: 115200
- Blykstės dažnis: 80 MHz
- Blykstės režimas: QIO
- Blykstės dydis: 4 MB (32 MB)
- Skirstymo schema: Numatytoji 4 MB su spifais
Bandomasis įkėlimas
- Atidarykite pavyzdinį kodą:
- Meniu juosta
Failas→Pavyzdžiai→01.pagrindai→Mirk
- Meniu juosta
- Įkelti kodą:
- Spustelėkite įkėlimo mygtuką (→)
- Palaukite, kol pasirodys pranešimas „Connecting...“
- Jei „Connecting...“ pakabintas: Paspauskite ir palaikykite mygtuką BOOT ant ESP32
- Sėkmė:
- „Kietasis atstatymas per RTS kaištį...“ = Įkėlimas sėkmingas!
- "ESP32" šviesos diodas turėtų mirksėti
WINDOWS
Įdiekite "Arduino IDE
- Atsisiųsti:
- Eikite į: https://www.arduino.cc/en/software
- Atsisiųsti „Arduino IDE 2.x“, skirtą "Windows
- Pasirinkite
.exeMontuotojas
- Įrengimas:
- Paleiskite diegimo programą (kaip administratorius)
- Palikite įjungtas visas parinktis
- Baigti montavimą
Įdiekite ESP32 plokštės palaikymą
- Atviras "Arduino IDE
- Sukonfigūruokite "Board Manager":
- Meniu juosta
Failas→NustatymaiĮveskite URL adresus skiltyje „Papildomi lentų valdytojo URL adresai“:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- Spustelėkite
GERAI
- Meniu juosta
- Įdiekite ESP32 plokštes:
- Meniu juosta
Įrankiai→Valdyba→Skydų valdytojas - Paieška:
esp32 - Įdiekite: „esp32 by Espressif Systems“ (versija 2.0.17+)
- Palaukite, kol bus baigtas diegimas
- Meniu juosta
Įdiekite USB tvarkyklę
"Windows" dažnai automatiškai neatpažįsta ESP32!
CP2102/CP2104 lustui (dažniausiai pasitaikantis):
- Atsisiųsti:
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- Failas:
CP210x_Universal_Windows_Driver.zip
- Įrengimas:
- Išpakuoti ZIP
CP210xVCPInstaller_x64.exePaleisti kaip administratorius- Baigti montavimą
- Iš naujo paleiskite "Windows
CH340/CH341 lustui:
- Atsisiųsti:
- Įrengimas:
- Išpakuoti ZIP
CH341SER.EXEPaleisti kaip administratorius- Spustelėkite „Įdiegti“
- Iš naujo paleiskite "Windows
Sužinokite lusto tipą:
- ESP32 prijungimas
- Atidarykite "Device Manager":
"Windows" + X→Įrenginių tvarkyklė - Jungtys (COM ir LPT) išsiskleisti
- Ieškoti:
- „Silicon Labs CP210x...“ = CP2102
- „USB-SERIAL CH340“ = CH340
- „SLAB_USBtoUART“ = CP2102
Prijunkite ESP32 ir patikrinkite prievadą
- ESP32 prijungimas per USB
- Sužinokite uostą:
- Meniu juosta
Įrankiai→Uostas - Pasirinkite: COM3, COM4, COM5 ir t. t.
- (skaičius priklauso nuo sistemos)
- Meniu juosta
Nėra matomo prievado? → Neįdiegta tvarkyklė arba netinkama tvarkyklė!
Pasirinkite valdybą
- Pasirinkite valdybą:
Meniu juostaĮrankiai→Valdyba→esp32→ „ESP32 Dev modulis“
- Įkėlimo nustatymai:
- Siuntimo greitis: 115200
- Blykstės dažnis: 80 MHz
- Blykstės režimas: QIO
- Blykstės dydis: 4 MB (32 MB)
- Skirstymo schema: Numatytoji 4 MB su spifais
Bandomasis įkėlimas
- Įkrovos pavyzdys:
- Meniu juosta
Failas→Pavyzdžiai→01.pagrindai→Mirk
- Meniu juosta
- Įkelti:
- Spustelėkite įkėlimo mygtuką (→)
- Galbūt dėl „Connecting...“. Įkrovimo mygtukas laikykite ant ESP32
- Sėkmė:
- „Kietasis atstatymas...“ = ✅ Įkėlimas sėkmingas!
Degimo kontrolės bibliotekos
Automatiškai įtrauktas (ESP32 branduolys):
- WiFi.h
- HTTPClient.h
- WebServer.h
- Preferences.h
- esp_task_wdt.h
Trikčių šalinimas
Problema: „Prievadas nerastas“
"Mac":
# Atidarykite gnybtą ir patikrinkite:
ls /dev/cu.*
# Turėtų rodyti:
/dev/cu.usbserial-XXXX
/dev/cu.SLAB_USBtoUART
"Windows":
- Atidarykite "Device Manager
- Patikrinkite jungtis (COM ir LPT)
- Iš naujo įdiegti tvarkyklę
- Iš naujo paleiskite "Windows
„Prisijungimas...“ kabo
Sprendimas:
- Įkrovimo mygtukas Paspauskite ir palaikykite ant ESP32
- Tada spustelėkite įkėlimo mygtuką
- Palaikykite mygtuką BOOT, kol pasirodys pranešimas „Writing...“.
- Atleidimo mygtukas
Alternatyva:
- Trumpai paspauskite mygtuką EN (iš naujo nustatyti)
- Tada pabandykite įkelti dar kartą
„Kompiliavimo klaida“
Dažniausiai pasitaikančios priežastys:
- Pasirinkta netinkama plokštė
- Neįdiegtas ESP32 plokštės palaikymas
- Kodo sintaksės klaida
Sprendimas:
- Dar kartą patikrinkite lentą:
ESP32 Dev modulis - Atidarykite "Board Manager" → iš naujo įdiegti esp32
Įkėlimas veikia, bet serijinis monitorius yra tuščias
Sprendimas:
- Patikrinkite duomenų perdavimo spartą:
- Kodas:
Serial.begin(115200); - Serijinis monitorius: taip pat 115200 Nustatyti
- Kodas:
- Patikrinkite prievadą:
- Pasirinktas tinkamas COM prievadas?
- Paspauskite mygtuką EN:
- Iš naujo nustatyti po įkėlimo
Kontrolinis sąrašas prieš pirmąjį įkėlimą
- [ ] Įdiegta "Arduino IDE
- [ ] Įdiegtas ESP32 plokštės palaikymas (versija 2.0.17+)
- [ ] Įdiegta USB tvarkyklė (Windows!)
- [ ] ESP32 prijungtas per USB
- [ ] Arduino IDE matomas prievadas
- [ ] Pasirinkta plokštė: „ESP32 Dev Module“
- [ ] Siuntimo greitis: 115200
- [ ] Flash atminties dydis: 4 MB
- [ ] Serijinis monitorius Duomenų perdavimo sparta: 115200
- [ ] Maršrutizatoriaus NTP išleidimas
NTP išleidimas
Kai kurie maršrutizatoriai pagal numatytuosius nustatymus sukonfigūruoti be NTP bendrinimo, o tai reiškia, kad užklausos per NTP 123 prievadą neperduodamos, todėl iš adresuoto NTP serverio negalima prašyti jokių duomenų.
Todėl turi būti nustatyta atitinkama taisyklė:

Mokymosi ištekliai
Oficialūs dokumentai:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- "Arduino" nuoroda: https://www.arduino.cc/reference/en/
Įkelti kodą
- Atidaryti failą:
- Svetainė Šio failo teksto turinys į tuščią(!) Arduino IDE langą
- Pritaikykite "WiFi":
const char* WIFI_SSID = "DEIN_WIFI"; const char* WIFI_PASSWORD = "DEIN_PASSWORT"; - Įveskite XML-API simbolį:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";
"RaspberryMatic" turi būti įdiegtas XML API priedas. Tada XML API priedo nustatymus galite keisti spustelėję tokenregister.cgi gali būti generuojamas simbolis. Ženklas galioja visiems būsimiems GUI prisijungimams ir yra sudarytas iš 16 skaitmenų sekos didžiųjų ir mažųjų raidžių. Jį reikia įterpti į ESP32 kodą atitinkamoje vietoje. - Įkelti:
- Patikrinti (✓) → Patikrinti kodą
- Įkelti (→) → Įkelti į ESP32
- Atidarykite serijinį monitorių:
Įrankiai→Serijinis monitorius- Baudų perdavimo greitis: 115200 (rodoma meniu ĮRANKIAI - Siuntimo greitis: .... nutraukiamas)
- Žiūrėti išvestį!
Užsakymas
Po sėkmingos sąrankos:
- "WiFi" ryšio testavimas
- Įkelti degimo išjungimo kontrolės kodą
- Prijunkite variklį ir galinį jungiklį
- Generuoti RaspberryMatic simbolį
- Bandymų sistema
ESP32 kodas
Reikalingas kodas yra išsamiai komentuojamas, todėl jį galima atsekti ir prireikus pritaikyti. (atsisiųsti)
ESP32 GRAFINĖ VARTOTOJO SĄSAJA
Grafinėje sąsajoje tai galima nustatyti rankiniu būdu ir nepertraukiamai bandymų tikslais, siekiant nustatyti išmetamųjų dujų temperatūros priklausomybę nuo sklendės atidarymo.
Stebimas liepsnos modelis ir atitinkamu metu nustatoma vizualiai „tinkama“ procentinė sklendės atidarymo vertė. Tuo metu iš RaspberryMatic nuskaityta temperatūros vertė priskiriama nustatytai procentinei sklendės atidarymo vertei kaip pradinė pokyčio vertė. Temperatūros vertė į gaunama iš kitos vizualiai „reikalingos“ sklendės atidarymo korekcijos.
Jei, pavyzdžiui, 150 °C buvo pripažinta pradiniu tašku (nuo ...) atidarymui iki 80%, o 200 °C - sumažinimo iki 45% verte, tuomet pagal pirmąją funkciją KITAS IF rodoma konsteliacija lemia, kad programa „Išdegimo kontrolė - Temperatūros kontrolė“, kaip parodyta.

„Testavimo režimas“ rodomas, jei prie ESP32 dar neprijungti jokie periferiniai įrenginiai, o kintamasis "const bool TEST_MODE =" vis dar „tiesa“ stendai.
Pakeisti į „klaidinga“ atšaukia bandymo režimą ir inicijuoja prijungto variklio etaloninę eigą, kad būtų nustatytos galinių jungiklių apibrėžtos pradžios ir pabaigos padėtys.
Tiesioginis registravimas

Diagnostika

Automatinis klaidų tvarkymas
Norint užtikrinti nuolatinį ir be sutrikimų veikiantį veikimą, labai svarbu užfiksuoti galimas klaidų būsenas. Todėl kodas turi toliau nurodytas procedūras, skirtas klaidoms atpažinti ir ištaisyti tinkamomis priemonėmis:
- Steko perpildymo apdorojimas
- Išjungimo iš tinklo aptikimas
- Padalijimas pagal NULIS
- Ribinis jungiklis avarinis išjungimas
- HTTP klaidų tvarkymas
- HTTP išimčių tvarkymas
- Integerio perpildymo tikrinimas
- Atminties stebėjimas
- millis() Perpildymas
- Variklio pavojaus signalo aptikimas
- Nustatymų atkūrimas
- Pozicijos apribojimai
- Apsauga nuo labai ilgų blokavimo operacijų
- "Telnet" klientų valdymas
- "Telnet" NULL rodyklė
- Siūlų saugumas
- Žetonų patvirtinimas
- Laikmatis "Watchdog
- "WiFi" automatinis pakartotinis prisijungimas
RaspberryMatic - Programos
Išdegimo kontrolė
Programa
IF sistemos būsena Burnup_Damper_Setpoint yra 0 ir mažiau nei 101 (proc.)
TADA SCENARIJUS ... IŠ KARTO
! ESP32 IP adresas (SUKURKITE ČIA!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";
! Gauti dabartinę sistemos kintamojo vertę
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();
! Sukurti ESP32 grįžtamojo ryšio URL adresą
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;
! Skambinkite ESP32
eilutė cmd = "wget -q -O /dev/null '" # url # "'";
system.Exec(cmd);
! Žurnalo išvestis (neprivaloma, skirta derinimui)
WriteLine("Burn-up: Send " # setpoint # "% to ESP32 " # esp32_ip);
Išdegimo kontrolė - Temperatūros kontrolė
Programa
JEIGU prietaiso pasirinkimas "PT1000_temperature_sensor_flue_gas" DĖL AKTUALIOS temperatūros nuo ... iki ...
Tada Sistemos būsena Burn-off_Damper_Setpoint IMMEDIATELY xxx*
PRIEŠINGU ATVEJU, JEI ...
Čia dvi viršutinės eilutės nuolat papildomos skirtingais temperatūros intervalais ir procentinėmis vertėmis naudojant funkciją KITAS IF, kol pasiekiami visi reikiami intervalai.
* xxx„ - tai pageidaujama procentinė atvartos atidarymo vertė.

Linijinės pavaros ir ribinio jungiklio mazgas
Priklausomai nuo laisvos vietos po sklendės mechanizmu, po juo montuojama linijinė pavara su varikliu. Prie vežimėlio pritvirtinta „šakutė“, kurią velenas judina pirmyn arba atgal ir į kurią įsitvirtina rankiniu būdu valdomas mechanizmas.
Paprastai svirtis suprojektuota taip, kad ją galima šiek tiek judinti aukštyn ir žemyn. „Šakutės“ ilgis atitinkamai sureguliuojamas taip, kad svirtį vis tiek būtų galima iš šio rankiniu būdu išjudinti ir visiškai pastumti ATVIRAI.
Viena vertus, tai padeda sukurti maksimalią trauką pripilant degalų, jei elektroninis valdymas dar nėra visiškai nustatytas į 100%.
Kita vertus, vis dar galima naudoti tik mechaninį valdymą, pvz., nutrūkus elektros energijos tiekimui.