壁埋め込みボックス用の ESP32 基板: 電力測定付きスマートコンセントと中性線あり/なしの 2 連 TRIAC スイッチ、KiCad と ESPHome のファイル
Ø60 の壁埋め込みボックスに入る非絶縁の ESP32-C3 基板。BL0937 で電力を測るリレー式コンセントモジュール、2 チャンネルの TRIAC 照明スイッチ、そしてランプ経由で給電する中性線なしのスイッチ。ESPHome で Home Assistant につながり、サーマルロックを備えています。KiCad プロジェクト、JLCPCB 向け Gerber/BOM/CPL、ESPHome の YAML をダウンロードできます。

壁のコンセントと照明スイッチをスマート化するために、小さな基板を 2 枚設計しました。2 連スイッチには中性線なしのバージョンもあります。いずれも Ø60 の壁埋め込みボックスに入り、コンセントやスイッチの裏に収まります。いずれも ESP32-C3 で動き、ESPHome 経由で Home Assistant につながります。クラウドもアプリも不要です。
- priz60: リレーモジュール。前にあるコンセントをオン/オフし、電流、電圧、電力、電力量を測定します。
- anahtar2: リレーを使わない 2 チャンネルの照明スイッチ。ランプを TRIAC で駆動し、既存の 2 連壁スイッチはそのまま使えます。
- anahtar2l: anahtar2 の中性線なしバージョン。スイッチボックスに中性線が来ていない建物向けで、基板はランプを通して自分に給電します。
KiCad プロジェクト、JLCPCB 向けの Gerber/BOM/CPL ファイル、ESPHome の設定は記事の最後からダウンロードできます。

まず安全について
どの基板も非絶縁です。回路のグラウンド (GND) が商用電源につながっているので、ESP を含む基板上のすべての点が 230 V の電位になります。小さなサイズと低コストの代償です。絶縁電源は Ø60 のボックスに入りません。
- 商用電源に接続している間は、基板に何もつながないでください。USB シリアル変換器も、オシロスコープのプローブも、パソコンもです。書き込みは商用電源を外した状態でテストポイント (TP1-TP6) から行います。その後の更新は Wi-Fi (OTA) で行います。
- ケースは完全に絶縁性でなければなりません。外部への接続 (USB、センサー) はなく、あってはいけません。
- 回路はブレーカーと 30 mA の漏電遮断器で保護されている必要があります。
- 基板はまだ製造しておらず、試作品のテストもしていません。以下の数値はシミュレーションと計算によるものです。
商用電源を扱った経験がない場合は、これらの基板を設置しないでください。ファイルは設計を調べたり学んだりするために公開しています。

priz60: 電力測定付きリレー
端子台 (左から右): SW · N · L · O。L は商用電源から、O はコンセントへ、N は電源用に必要で、SW には壁スイッチをつなぎます。
L ── シャント 1 mΩ ── リレー COM → NO ── O (コンセント)
N ── F1 500 mA T ── バリスタ ── 10 Ω ── M7 ── π フィルタ (4.7µ / 1 mH / 4.7µ)
→ LNK306 降圧 → 5 V → AMS1117 → 3.3 V → ESP32-C3
- リレー: Hongfa HF32FV-16 (16 A、5 V コイル)。コイルは 100 ms のあいだ定格電圧で吸着し、その後 20 kHz、50% の PWM で保持します。コイルの消費電力は 0.4 W から約 0.1 W に下がります。密閉されたボックスの中ではこの差が効きます。
- 測定: BL0937。電流は 1 mΩ のシャントで、電圧は 4 × 470k / 1k の分圧で測ります。ESPHome の
hlw8012コンポーネント (model: BL0937) がそのまま読み取ります。 - 電源: Power Integrations の LNK306 による降圧回路。基板の GND は L につながっていて、降圧回路は N から給電され、L に対して +5 V を作ります。
- 壁スイッチ入力: SW → 2 × 100k (1206) → BAT54S クランプ → GPIO。スイッチが L 側に閉じると入力は LOW になります。普通のスイッチを切り替えるたびにリレーが反転します。
どれだけの電流を流せるか
リレーは 16 A 品ですが、基板はその電流を連続では流せません。簡単な差分法モデルで銅パターンの電流密度と発熱を見積もりました (周囲温度 40°C、2 oz 銅、リレー接点は 3/5/8 mΩ の 3 シナリオ)。最も熱くなるのはリレーの NO ピンです:
| 連続電流 | リレーピン (現実的なシナリオ) |
|---|---|
| 8 A | 57°C |
| 10 A | 67°C |
| 12 A | 78°C |
| 16 A | 108°C |
つまりこの基板は連続で約 10 A までで、16 A は短時間だけです。2 kW のヒーターや洗濯機には十分ですが、3.5 kW のオーブンには向きません。

ソフトウェアによる保護
- 電流が 16 A を超えるとリレーを解放します。
- 基板上の NTC が 85°C を超えるとリレーを解放し、サーマルロックがかかります。ロックは停電しても残ります。ロック中は壁スイッチ、ボタン、Home Assistant のどこからもリレーをオンにできません。Home Assistant の「Termal kilidi aç」(サーマルロック解除) ボタンは、基板が 60°C 未満になったときだけロックを解除します。
anahtar2: 2 チャンネル TRIAC スイッチ
端子台: S1 · S2 · L · O1 · O2 · N。2 連の壁スイッチを S1 と S2 につなぎ、スイッチはそのまま残ります。ランプには O1 と O2 から給電します。このバージョンは中性線が必要です。
- スイッチング: チャンネルごとに BT136S-600E TRIAC を 1 個 (TO-252、4 A / 600 V)。ランプ 1 個あたり最大 100 W で、その負荷で TRIAC の発熱は約 0.4 W です。リレーがないのでカチッという音も接点の摩耗もありません。
- ゲート駆動: ESP → AO3400A → 330 Ω → ゲート。ゲート電流は約 12 mA で負方向 (TRIAC の第 2、第 3 象限) なので、N-MOSFET 1 個で足ります。
- 内蔵バイパス: 各出力に O → 2 × 1k → 47 nF X2 → N。スイッチがオフのとき、LED ランプは TRIAC から漏れるわずかな電流でうっすら光ったりちらついたりします。バイパスはその電流に別の経路を作ります。別売りのバイパスモジュールは不要です。
- 電源: priz60 と同じ部品ですが、ここでは LNK306 を負出力の昇降圧回路として使っています。L が回路の +5 V レールで、ESP の GND は L より 5 V 低くなります。TRIAC の MT1 を直接 L につなげるので、ゲート駆動が簡単になります。
- 保護: L ラインに 2 A T ヒューズ、電源側に 500 mA T ヒューズと 275 VAC バリスタ。2 個の TRIAC の間に NTC があり、95°C を超えると両方のランプを消して、priz60 と同じようにサーマルロックがかかります (70°C 未満で解除)。

anahtar2l: 中性線なしバージョン
古い建物では、スイッチボックスに中性線が来ていないことがよくあります。来ているのは活線とランプへの線だけです。anahtar2l はそのためのものです。端子台: S1 · S2 · L · O1 · O2 (6 番目は未使用)。考え方は Shelly 1L/2L と同じで、基板はランプを通して自分に給電します。
- ランプ経由の給電: O1 と O2 を 2 個の M7 ダイオードでまとめ → 500 mA T ヒューズ → 10 Ω → π フィルタ → LNK306 昇降圧 (L に対して -3.9 V) → 470 µF ポリマーコンデンサ → ME6211 LDO → 3.3 V。ランプがオフのときは、基板が消費するわずかな電流がランプを通って流れます。
- 給電ウィンドウ: ランプがオンで TRIAC が導通していると、基板には電圧が残りません。そのため 2 つのランプがオンのときは、チャンネル 1 を正の半周期ごとに 1.5 ms 遅らせて点弧し (
charge_delay)、その間に基板が給電します。オンのランプが 1 つだけなら遅延はなく、オフのランプ側の経路から給電します。 - ゼロクロス: O1 → 2 × 470k → 10k → IO7、BAT54S クランプ付き。ゲートをゼロクロスに合わせて駆動するために、ESPHome 用のコンポーネント (
components/triac_nl) を書きました。ESP-IDF のハードウェアタイマーで 50 µs ごとに動き、TRIAC が消弧できるよう各ゼロクロスの 0.8 ms 前にゲートを放します。ゼロクロスが失われると両チャンネルともオフになります。 - パルスゲート: ゲートは 150 Ω を通して約 18 mA で駆動しますが、点弧ウィンドウの間ずっとではなく、300 µs ごとに 100 µs のパルスを与えます。LED ドライバのせいで電流が TRIAC の保持電流を下回っても、次のパルスで再点弧します。平均ゲート電流は連続駆動の約 3 分の 1 で、ランプ経由で給電する基板ではこの差が効きます。
- 設置条件: 各ランプの近く (天井のボックス) にバイパスを付ける必要があります。たとえば Shelly Bypass、または 47 nF X2 と 2 × 1k の直列です。バイパスがないと LED ランプはオフでもうっすら光り、基板の給電も弱くなります。ランプは少なくとも 1 つ必要で、ランプ 1 (O1) は常に接続しておく必要があります。ゼロクロスは O1 からしか取っていないので、ランプ 1 がないとどちらのチャンネルもオンにできません。ランプが 1 つだけの設置では O1 につなぎます。Home Assistant の「Sıfır geçiş」(ゼロクロス) 診断センサーでこの状態がわかります。
表面にはミーアキャットのロゴも入っています。

基板設計
3 枚とも 2 層で、Ø60 の円形です。非絶縁なので「商用電源側 / 低電圧側」という一般的な区分はありませんが、商用電源の異なるノード同士には距離が必要です。KiCad のカスタムルールファイル (.kicad_dru) に 3 つのネットクラスを定義しました:
| クラス | ネット | 最小クリアランス |
|---|---|---|
| HV | N、O、S、降圧回路の入力 | 2.5 mm |
| SWN | LNK306 のスイッチングノード | 2.0 mm |
| HVCH | 直列抵抗チェーンの中間ノード | 1.5 mm |
部品配置は Python スクリプト (scripts/place.py) で行いました。大電流の経路と商用電源の銅箔もスクリプトで描き (copper60.py、copper2t.py、copper2l.py)、残りの信号配線は自作の自動配線ツール fastroute がつなぎました。priz60 と anahtar2l では最後に、表と裏の GND 銅箔の島をビアで結合しています。3 枚とも KiCad の DRC でエラー 0、未接続パッド 0、ERC でエラー 0 です。
部品コスト (JLCPCB、2026 年 10 月の価格、基板と実装込み): priz60 は 5 枚で約 53 ドルに extended 部品の手数料 (17 × 3 ドル) が加わります。anahtar2 は 5 枚で 92 ドル、10 枚で 126 ドル、50 枚で 385 ドルです。
ESPHome
3 枚とも YAML を用意してあります。Wi-Fi の情報は secrets.yaml に書きます。最初の書き込みは商用電源を外した状態で、テストポイント TP1-TP6 (3V3、GND、TXD、RXD、IO9、EN) に USB シリアル変換器をつないで行います:
uvx esphome run priz60.yaml
Home Assistant では、priz60 はリレースイッチと、電流、電圧、電力、電力量、基板温度のセンサーとして表示されます。anahtar2 は 2 つのライト、2 つの壁スイッチ入力、TRIAC 温度として表示されます。どちらにも「Termal kilit」(サーマルロック) の状態と「Termal kilidi aç」ボタンがあります。priz60 では、最初の設置時に既知の負荷とマルチメータで BL0937 の係数を校正してください。
anahtar2l の YAML は隣に components/triac_nl フォルダが必要です (パッケージでは両方が一緒に入っています)。Home Assistant では anahtar2 と同じように表示され、さらに「Sıfır geçiş」(ゼロクロス) 診断センサーがあります。charge_delay、zero_cross_offset、ゲートパルスは YAML で設定します。
試作で確認すること
- LNK306 電源: 負荷時と Wi-Fi 動作時の出力電圧とリップル、SOURCE ピンの温度。測定は必ず絶縁トランス越しに行います。
- EMI: π フィルタで足りるかどうか。
- priz60: 密閉したボックス内で 10 A と 16 A を流し、リレーピンの温度を熱電対で測る試験。BL0937 の校正。
- anahtar2: 小さな LED ランプ (3-5 W) でのオフ時の発光とオン時のちらつき、100 W 負荷 2 つでの TRIAC 温度、LED ドライバの突入電流。
- anahtar2l: 2 つのランプがオンで Wi-Fi 動作中に 3.9 V レールが落ちないこと (必要なら
charge_delayを増やす)。ゼロクロスの遅れをオシロスコープで測って調整すること。パルスゲートでさまざまな LED ランプでも TRIAC が毎半周期導通を保つこと。
ダウンロード
| ファイル | 内容 | サイズ |
|---|---|---|
| priz60-kicad.zip | KiCad 10 プロジェクト: 回路図、PCB、ルール、フットプリントと 3D モデル、回路図 PDF、Gerber/BOM/CPL、ESPHome YAML、配置と銅箔のスクリプト、熱シミュレーション | 3.5 MB |
| anahtar2-kicad.zip | KiCad 10 プロジェクト: 回路図、PCB、ルール、フットプリントと 3D モデル、回路図 PDF、Gerber/BOM/CPL、ESPHome YAML、スクリプト | 3.5 MB |
| priz60-gerber.zip | Gerber + Excellon のみ。JLCPCB にそのままアップロードできます | 0.1 MB |
| anahtar2-gerber.zip | Gerber + Excellon のみ。JLCPCB にそのままアップロードできます | 0.1 MB |
| anahtar2l-kicad.zip | KiCad 10 プロジェクト: 回路図、PCB、ルール、フットプリントと 3D モデル、回路図 PDF、Gerber/BOM/CPL、ESPHome YAML と triac_nl コンポーネント、スクリプト、ロゴ | 4.2 MB |
| anahtar2l-gerber.zip | Gerber + Excellon のみ。JLCPCB にそのままアップロードできます | 0.1 MB |
| priz-anahtar-esphome.zip | 3 枚の基板の ESPHome 設定、anahtar2l 用の triac_nl コンポーネント、セットアップメモ | 12 KB |
JLCPCB 用の BOM と CPL ファイルは、各 KiCad パッケージの production/ フォルダにあります。実装プレビューで部品の向きを必ず確認してください。一部のパッケージでは KiCad と JLCPCB で 0° の定義が異なります。
プロジェクトファイル内のコメントと README はトルコ語です。