目次
更新日 - 2026年2月3日
最近の薪ストーブには通常、燃焼制御システムが組み込まれている。もしまだこの自動システムがない薪ストーブをお持ちなら、Smarthome(Raspberry Pi)と組み合わせて自分で制御システムを構築することができます。.
薪の投入を自動化することがまだ不可能でも、ペレットストーブは別として、自動化により、より均一な燃焼、一定の温度、より高い効率で最大30 %の薪消費量を削減することができる。.
もしあなたがすぐに「やる気」が出ないのであれば、私もかつて同じように思ったことがある。しかし、例えばRaspberry Pi上でRaspberryMaticが提供するこのテーマと可能性をよく見てみれば、すぐに「できる」と確信できるはずだ!
そして、人生にはよくあることだが、一緒の方がいい!さあ、取り組もう!
理論
炎の模様や色から肉眼で見えるものは、燃焼室から約20cm上の排ガス管にねじ込まれた高温センサーによって検知される。.
約200℃の維持温度に応じて、ラズベリーパイのシンプルなプログラムを使って給気フラップを開閉する。
原理的には単純なメカニズムだ。本当の意味での機構は、ステッピングモーターによって動くリニアドライブによって実現される。設定値と比較した実際の温度値に応じて、ステッピングモーターは、温度が低すぎる場合に給気を増やすべきか減らすべきかの情報を受け取る。従って、リニアスライドに機械的に連結された給気ダンパーの(手動)作動レバーが前方または後方に動かされ、ダンパーの開閉が行われる。.
RaspberryMaticではステッピングモーターに直接アドレス指定することができないため、ステッピングモーター・コントローラーを接続できる小型コンピューター、ESP32-IDFを使用する。.
RaspberryMaticとESP32-IDF間の通信は、ESP32-IDFにすでに統合されているWLAN経由で行われる。ESP32-IDFはC++、Arduino IDEでプログラムされており、いくつかのパラメータを変更するだけで簡単に転送できるように、この記事に含まれています。.
温度とリニアステッピングモーターの位置を記録するプログラムも、簡単に転送できるように用意されている。.
買い物リスト
- ラズベリーパイ4モデルB ハウジング、ファン、電源ユニットとのセット - 約95ユーロ
- SDカード 16 GB (ラズベリーマティック・インストール用) - 約10,000ユーロ
- ラズベリーマチック (ダウンロード無料
(を含む ラズベリー・パイ・ベイカー (マック) または ラズベリーパイ・イメージャー (ウィンドウズ) SDカードにコピーする;;
変数の作成 バーニングステータス (タイプ 文字列); バーニングフラップ (タイプ 番号); バーンオフ_フラップ_デザイアード (タイプ 番号); 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 結果 は出力行の最後尾にある。19827“) - ESP32開発ボード (例:ESP32 DevKit V1) - 約12,000ユーロ
Arduino IDE 2.x ダウンロード (マック) (ウィンドウズ) - CL86Y ステッピングモータドライバ (またはTB6600)*。
- NEMA 17ステッピングモーター (200ステップ/rev)* - セット約80,000ユーロ
- リニア駆動 100 mm、150 mm 上記ステッピング・モーター・タイプに適合 約50,000ユーロ
- 2xリミットスイッチ (機械式) - 約4,000ユーロ
- DC48V電源ユニット (モーター12A用) - 約39,000ユーロ
- 電源ユニット DC5V (ESP32用、USBなど) - 約7ユーロ
- ELV PT1000 高温センサー 4線式 Art.258570 - 約24ユーロ
- ELVプラチナ温度センサーインターフェース - アートNo. 162126 - 約45,000ユーロ
- 真鍮パイプ継手 M10 x 6 mm PT1000温度センサー用 - 約4,000ユーロ
合計約370ユーロで、これは本格的かつ非常に安価な代物であり、後付けキット(もしこのストーブに後付けキットがあればの話だが)は通常750~1,500ユーロする!
準備
Raspberry Pi 4 BのSDカードへのRaspberryMaticのインストールは以下の通りです。 これ キットを購入していない場合は、ハウジングの取り付けも含めて詳しく説明します。.
ESP32 - セットアップ
マックオス
ステップ1:Arduino IDEのインストール
- ダウンロード
- https://www.arduino.cc/en/software
- macOS用「Arduino IDE 2.x」のダウンロード
- 選ぶ
.dmgインテルまたは.dmgアップル・シリコン(M1/M2/M3)用
- インストール:
.dmgファイルを開く- Arduino IDEをプログラムフォルダにドラッグします。
- Arduino IDEを起動する
ESP32ボードサポートのインストール
- Arduino IDEを開く
- オープンボードのマネージャー
- メニュー
アルドゥイーノIDE→設定(またはCmd + 、 ,) - Additional boards manager URLs」にURLを入力する:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- をクリックする。
OK
- メニュー
- ESP32ボードを取り付ける:
- 左側のボードアイコンをクリック(または メニューバー
ツール→ボード→ボード・マネージャー) - 検索する:
エスプ32 - インストールする: „エスプレシフ・システムズの “esp32" (バージョン2.0.17以降)
- インストールが完了するまで待ちます。
- 左側のボードアイコンをクリック(または メニューバー
USBドライバ(OS 10.14まで)
ESP32が認識されない場合:
- ダウンロード https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- ファイル
macOS_VCP_Driver.zipダウンロード - Macのインストールと再起動
CH340チップ用:
- ダウンロード https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
- Macのインストールと再起動
ESP32の接続
- USB経由でESP32を接続する
- ポートをチェックする:
- アルドゥイーノIDE メニューバー:
ツール→ポート - 同様のポートを選択する:
/dev/cu.usbserial-0001または/dev/cu.SLAB_USBtoUARTまたは/dev/cu.wchusbserial*。
- アルドゥイーノIDE メニューバー:
セレクトボード
- Arduino IDE:
- メニューバー
ツール→ボード→エスプ32→ „「ESP32 Dev Module“
- メニューバー
- 設定だ:
- アップロード速度: 115200
- フラッシュの頻度: 80MHz
- フラッシュモード: QIO
- フラッシュサイズ: 4MB(32メガバイト)
- パーティション・スキーム デフォルト4MB、スピフ付き
テストアップロード
- サンプルコードを開く
- メニューバー
ファイル→例→01.基本→瞬き
- メニューバー
- コードをアップロードする:
- アップロードボタンをクリック (→)
- 接続中...」と表示されるまで待つ。
- 接続中...」がハングした場合: ESP32のBOOTボタンを長押しする。
- 成功だ:
- „RTSピンでハードリセット...“= アップロード成功!
- ESP32のLEDが点滅します。
ウィンドウズ
Arduino IDEをインストールする
- ダウンロード
- https://www.arduino.cc/en/software
- Windows用「Arduino IDE 2.x」のダウンロード
- 選ぶ
.exeインストーラー
- インストール:
- インストーラを実行する(管理者として)
- すべてのオプションを有効にしておく
- インストールの最終決定
ESP32ボードサポートのインストール
- Arduino IDEを開く
- Board Managerを設定します:
- メニューバー
ファイル→好みAdditional boards manager URLs」にURLを入力する:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json- をクリックする。
OK
- メニューバー
- ESP32ボードを取り付ける:
- メニューバー
ツール→ボード→ボード・マネージャー - 検索
エスプ32 - インストールする: „エスプレシフ・システムズの “esp32" (バージョン 2.0.17+)
- インストールが終わるまで待つ
- メニューバー
USBドライバのインストール
WindowsはESP32を自動的に認識しないことが多い!
CP2102/CP2104チップ用(最も一般的):
- ダウンロード
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- ファイル
CP210x_Universal_Windows_Driver.zip
- インストール:
- ZIPを解凍する
CP210xVCPInstaller_x64.exe管理者として実行する- インストールの最終決定
- Windowsを再起動する
CH340/CH341チップ用:
- ダウンロード
- インストール:
- ZIPを解凍する
CH341SER.EXE管理者として実行する- INSTALL „をクリック“
- Windowsを再起動する
チップの種類を調べる:
- ESP32の接続
- デバイスマネージャーを開く:
Windows + X→デバイスマネージャー - 接続(COMおよびLPT) 開く
- 検索する:
- „シリコンラボ CP210x...“= CP2102
- „「usb-serial ch340“ = ch340
- „「SLAB_USBtoUART“ = CP2102
ESP32を接続し、ポートをチェックする
- USB経由でESP32を接続する
- 港を調べる:
- メニューバー
ツール→ポート - 選択する: COM3, COM4, COM5 その他.
- (システムによって数は異なる)
- メニューバー
ポートが見えない? → ドライバがインストールされていないか、ドライバが間違っている!
セレクトボード
- セレクトボード
<メニューバーツール→ボード→エスプ32→ „「ESP32 Dev Module“
- アップロードの設定:
- アップロード速度: 115200
- フラッシュの頻度: 80MHz
- フラッシュモード: QIO
- フラッシュサイズ: 4MB(32メガバイト)
- パーティション・スキーム デフォルト4MB、スピフ付き
テストアップロード
- 負荷の例:
- メニューバー
ファイル→例→01.基本→瞬き
- メニューバー
- アップロードする
- アップロードボタン(→)をクリック
- 接続中...」の可能性があります。. BOOTボタン ESP32を保持する
- 成功だ:
- „ハードリセット中...“= ✅ アップロード成功!
燃焼制御用ライブラリ
自動的に含まれる(ESP32コア):
- WiFi.h
- HTTPClient.h
- WebServer.h
- 環境設定.h
- esp_task_wdt.h
トラブルシューティング
問題:「ポートが見つかりません„
マックだ:
# ターミナルを開いて確認する:
ls /dev/cu.*
# 表示されるはずです:
/dev/cu.usbserial-XXXXX
/dev/cu.SLAB_USBtoUART
ウィンドウズ
- デバイスマネージャーを開く
- 接続の確認(COMとLPT)
- ドライバーの再インストール
- Windowsを再起動する
„「接続中...」ハングアップ
解決策
- BOOTボタン ESP32を長押しする
- 次にアップロードボタンをクリックします。
- Writing... „と表示されるまでBOOTボタンを押したままにします。
- リリースボタン
それに代わるものだ:
- EN ボタンを短く押す(リセット)
- その後、もう一度アップロードしてみてください。
„「コンパイルエラー“
一般的な原因
- 選択したボードが違う
- ESP32ボードサポートがインストールされていない
- コードの構文エラー
解決策
- もう一度ボードをチェックする:
ESP32 Devモジュール - ボードマネージャーを開く → esp32を再インストール
アップロードはうまくいくが、シリアルモニタが空になる
解決策
- ボーレートをチェックする:
- コード
Serial.begin(115200);; - シリアルモニター:また 115200 セット
- コード
- ポートをチェックする:
- 正しいCOMポートが選択されていますか?
- ENボタンを押す:
- アップロード後のリセット
初回アップロード前のチェックリスト
- [Arduino IDEをインストール
- [ESP32ボード・サポート搭載(バージョン2.0.17以上)
- [USBドライバをインストール(Windows!)
- [USB経由で接続されたESP32
- [Arduino IDEで確認できるポート
- [ボード:「ESP32 Dev Module」を選択
- [アップロード速度: 115200
- [フラッシュサイズ:4MB
- [シリアルモニター ボーレート:115200
- [ルータ NTP リリース
NTPリリース
一部のルーターはデフォルトでNTP共有なしに設定されているため、NTPポート123経由のリクエストは転送されず、その結果、アドレス指定されたNTPサーバーからデータをリクエストできません。.
したがって、対応するルールを定義しなければならない:

学習リソース
公式文書:
- ESP32 Arduino: https://docs.espressif.com/projects/arduino-esp32/
- Arduinoのリファレンス: https://www.arduino.cc/reference/en/
コードのアップロード
- ファイルを開く
- について このファイルのテキスト内容 を空の(!)Arduino IDEウィンドウに入力します。
- WiFiのカスタマイズ:
WIFI_SSID = "DEIN_WIFI"; WIFI_PASSWORD = "DEIN_PASSWORT";; - XML-APIトークンを入力します:
const char* XML_API_TOKEN = "DEIN_TOKEN_HIER";;
RaspberryMatic に XML API アドオンがインストールされている必要があります。XMLAPIアドオンの設定は トークン登録.cgi トークンを生成することができます。トークンは今後すべての GUI ログインに有効で、大文字と小文字の 16 桁のシーケンスで構成される。ESP32のコードの適切な場所に挿入する必要があります。. - アップロードする
- ベリファイ (✓) → チェックコード
- アップロード (→) → ESP32 にアップロードする
- シリアルモニターを開く:
ツール→シリアルモニター- ボーレート: 115200 (メニュー「TOOLS -」に表示されます)。 アップロード速度: ......中止)
- 出力を見る!
コミッショニング
セットアップ成功後
- WiFi接続のテスト
- バーンオフ・コントロール・コードのアップロード
- モーターとリミットスイッチを接続する
- RaspberryMaticトークンの生成
- テストシステム
ESP32コード
必要なコードは完全にコメントされているため、追跡可能で、必要に応じてカスタマイズすることができます。(ダウンロード)
ESP32 GUI
GUIでは、排気ガス温度のダンパ開度依存性を調べるためのテスト目的で、手動で連続的に設定することができます。.
炎のパターンを観察し、視覚的に „適切 “なダンパー開度パーセンテージ値をその時点で調整する。その時ラズベリーマチックから読み取られた温度値は、設定されたダンパー開度パーセンテージ値に変更開始値として割り当てられます。温度値への変更は、次にダンパーの開度を視覚的に „必要 “と思われる値に修正することで行われます。.
例えば、150℃が80%への開放の開始点(...)として認識され、200℃が45%への低減の値として認識された場合、最初のOTHER IF関数の下に示されたコンステレーションは、プログラム„バーンオフ制御 - 温度制御“を図示した。.

„周辺機器がまだESP32に接続されていない場合、“Test mode "と表示されます。 "const bool TEST_MODE =" まだ„真の“が立っている。.
に変更する。„擬似“ はテストモードをキャンセルし、リミットスイッチによって定義された開始位置と終了位置を決定するために、接続されたモーターの基準走行を初期化します。.
ライブロギング

診断

自動エラー処理
可能性のあるエラー状態を検出することは、トラブルのない連続運転に不可欠である。そのためコードには、エラーを認識し、適切な手段を用いて修正するための以下のルーチンが用意されている:
- スタックオーバーフローの処理
- ブラウンアウト検出
- ゼロによる分割
- リミットスイッチ緊急停止
- HTTPエラー処理
- HTTP例外処理
- 整数オーバーフローチェック
- メモリ監視
- millis() オーバーフロー
- モーターアラーム検出
- 環境設定の回復
- ポジションの制約
- 非常に長いブロック操作からの保護
- Telnetクライアント管理
- Telnet NULLポインタ
- スレッドの安全性
- トークンの検証
- ウォッチドッグタイマー
- WiFi自動再接続
RaspberryMatic - プログラム
バーンオフ・コントロール
プログラム
IFシステム・ステータス Burnup_Damper_Setpointが0以上101(パーセント)未満の範囲にある。
すぐにスクリプト...
!ESP32 IPアドレス (ここでカスタマイズしてください!)
string esp32_ip = "IP_Adresse_ESP32_eingeben";;
!システム変数の現在値を取得する
var sollwert = dom.GetObject("Abbrand_Klappe_Soll").Value();;
!ESP32コールバックのURLをビルドする
string url = "http://" # esp32_ip # "/setSoll?value=" # sollwert;;
!ESP32を呼び出す
string cmd = "wget -q -O /dev/null '" # url # "'";;
system.Exec(cmd);;
!ログ出力(オプション、デバッグ用)
WriteLine("バーンアップ:#設定値 "# "% "をESP32"# esp32_ip "に送信);;
バーンオフ制御 - 温度制御
プログラム
IF デバイス選択 "PT1000_temperature_sensor_flue_gas" 実際の温度は ... から ... まで。から...
その後、システムステータス バーンオフ_ダンパー_設定ポイント 即時 xxx*
さもなければ.
ここで、上の2行は、必要な範囲がすべてカバーされるまで、OTHER IF関数によって異なる温度範囲とパーセンテージ値で連続的に補足される。.
* xxx „は、フラップ開口部の望ましいパーセンテージ値である。.

リニアアクチュエータ&リミットスイッチアセンブリ
フラップ機構の下のスペースに応じて、モーターを備えたリニアドライブが下に取り付けられる。キャリッジには „フォーク “が取り付けられ、スピンドルによって前方または後方に移動し、そこに手動操作機構がかみ合う。.
レバー」は通常、わずかに上下に動かせるように設計されている。フォーク」の長さは、レバーが手動でこの状態から外れても、全開で押すことができるように、適宜調整される。.
一方では、電子制御がまだ100%に完全に設定されていない場合に、燃料を追加する際に最大喫水を発生させる役割を果たす。.
一方、純粋に機械的な操作オプションは、例えば電源障害が発生した場合にも利用できる。.