Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
9,000円のシーリングライトを Matter化して HomeKit最強のデバイスを作る
Search
mongachi
December 24, 2025
Technology
0
19
9,000円のシーリングライトを Matter化して HomeKit最強のデバイスを作る
New!!梅キャン勉強会 vol.3での発表資料
https://umeume-oit.connpass.com/event/377185/
mongachi
December 24, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
260
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
390
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
230
Red Hat OpenStack Services on OpenShift
tamemiya
0
140
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
230
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
620
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
170
Agile Leadership Summit Keynote 2026
m_seki
1
680
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
210
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
5.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Everyday Curiosity
cassininazir
0
130
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Transcript
HomeKit Matter ESP32-C6 UART
9,000円のシーリングライトを 9,000円のシーリングライトを して して HomeKit最強のデバイスを作る HomeKit最強のデバイスを作る 坂上 智朗 大阪工業大学 M1 Matter化 Matter化 〜 完璧なプロトコル解析と、敗北した電源回路 〜
発表者紹介 坂上 智朗 Tomoaki Sakaue 大阪工業大学 M1
IoT / Smart Home NextJS PROFILE 大阪工業大学 ロボティクス&デザイン工学研究科 修士1年。 フロントエンドエンジニア。 React/Next.jsが得意。 画面の中だけでなく、IoTや電子工作にも興味があります。 CONTACT / LINKS @shading6339
動機と野望 Project: Matter Ceiling Light 現状の課題 (Before) 専用アプリ/クラウド必須
Tuya Smartアプリを経由する必要があり、インター ネット接続がないと操作不能。 レスポンスが悪い スイッチを押してから点灯するまでに1〜2秒のラグ が発生。 スマートホーム統合が面倒(Home Assistant等の中 継サーバーが必要) 。 Target: アイリスオーヤマ製 LEDシーリングライト 野望と目標 (After) Tuyaモジュールを ESP32-C6 に換装し、完全ローカ ル制御へ。 Matter over Wi-Fi 対応 Apple HomeKitから追加ハブなしで爆速操作を実現 したい。 サーバーレス構成。 クラウドへの依存を完全に排除し、プライバシーと 可用性を確保。
STEP 0 ハードウェア調査 Teardown & Analysis 解析の突破口 無線モジュール(TYWE3S)は単なる「UARTゲートウェイ」として機能して いる。
つまり、ここをESP32に挿げ替えれば乗っ取れる可能性が高い。 決定的な証拠を発見 RX/TX Pinout Main MCU Tuya Module システム構成と役割分担 TYWE3S 通信担当 (Wi-Fi) STM32F070 制御担当 (LED) 完全分業制: 通信モジュールと制御用MCUが明確に分かれている 理想的な構成。 親切設計: 基板上に「RX」 「TX」のシルク印刷があり、信号線の 特定が容易。 UART Serial
STEP 0.5 事前検証プロセス Feasibility Study 検証1: 汎用アプリ FAILURE HYPOTHESIS
中身がTuyaモジュールなら、純正「Smart Life」アプリで直接ペアリ ングできるはず。成功すれば改造不要。 検証2: モジュール切断 SUCCESS HYPOTHESIS 無線モジュールを物理的に引き抜いても、照明としての基本機能(リ モコン・壁スイッチ)は維持されるか? OEM IDロック ペアリングの最終段階で拒否される。メーカー側で「アイリスオーヤマ純 正アプリ以外は弾く」設定が施されているため、非破壊でのスマート化は 不可能と判明。 フェイルセーフ確認 モジュールなしでも、赤外線リモコンや壁スイッチによる操作は完璧に動 作。 「改造に失敗しても照明としては壊れない」 という最強の安全マージ ンが確保された。
STEP 1 解析戦略: UARTスニッフィング Intercepting Serial Communication 配線図 (Man-in-the-Middle)
Tuya TX D7 (RX) Tuya RX D2 (RX) GND GND ハマりポイント: 送信ピンの無効化 単にSerial.beginするとTXピンが駆動してしまい、通信線に干渉(信号衝突)を起こす。 TXピンを -1 に設定し、ハイインピーダンス(受信専用)にすることが必須。 src/main.cpp PlatformIO void setup() { ...// Initialize Serial Monitor & Downlink void loop() { // 1. TYWE3S -> MCU (Hardware Serial) if (Serial1.available()) { Serial.print("[TYWE3S->MCU]: "); while (Serial1.available()) { uint8_t c = Serial1.read(); Serial.printf("%02X ", c); } Serial.println(); } // 2. MCU -> TYWE3S (Software Serial) if (swSerial.available()) { Serial.print("[MCU->TYWE3S]: "); while (swSerial.available()) { uint8_t c = swSerial.read(); Serial.printf("%02X ", c); } Serial.println(); } } Xiao ESP32C6と解析対象の接続 Signal Listen Common
STEP 2 解析結果 Decoded Protocol & Discoveries 特定されたDPIDマップ 01
Power Bool 0 (OFF) / 1 (ON) 03 Brightness Integer 0 〜 100 % 04 Color Temp Integer 0 (Warm) 〜 100 (Cool) ※ DPID 2 (Mode) は未使用または欠番 パケットログの実例 CMD -> 55 AA 00 06 00 05 01 01 00 01 01 0E Command: 0x06 (Control) | DP: 1 (Power) | Val: 1 (ON) <- RPT 55 AA 00 07 00 05 01 01 00 01 01 0F Report: 0x07 (Status) | 本体が「点灯しました」と応答 <- RPT 55 AA 00 07 00 08 03 02 00 04 00 00 00 64 ... Report: 物理リモコン操作時もステータスが報告される! 重要な発見: 物理リモコンの共存 純正の赤外線リモコンで操作した際も、MCUからUART経由でステータス報告 (0x07)が送信されていることを確認。 これにより、「物理操作をHomeKit側にリアルタイム反映する(双方向同期) 」 ことが可能と判明。
システムアーキテクチャ(理想) Components & Data Flow 完全ローカル制御 外部クラウドや専用ブリッジを排除。HomeKit からダイレクトにパケットが飛び、コンマ秒単 位のレスポンスを実現。 制御の乗っ取り
ESP32-C6が「私は純正Tuyaモジュールです」と 振る舞うことで、メイン基板(STM32)を騙して LEDを制御する。 既存資産の活用 電源回路やLEDドライバ、リモコン受信部は既 存のものをそのまま流用。改造は無線モジュー ルの換装のみ。 iPhone Apple Homeアプリ Matter over Wi-Fi UART (9600bps) STM32 Original PCB LED Driver / PSU ESP32-C6 Matter End Device "Tuya MCU" Emulation NEW
STEP 1 技術的攻略: プロトコル完全解析 Tuya MCU Protocol v1.0 初期化の儀式
(The Ritual) データポイント(DP)変換ロジック src/TuyaConverter.cpp C++ // Matter(0-254) to Tuya(0-100) Scaling uint8_t matter_brightness = 127; uint8_t tuya_val = (matter_brightness * 100) / 254; // Construct Tuya Packet frame send_dp_command(DP_ID_BRIGHTNESS, tuya_val); これをパスしないと点灯しない CMD: 0x00 (Heartbeat) ACK OK 生存確認。ESP32起動直後に送信 CMD: 0x01 (Query Info) JSON RX 製品ID等の情報を取得 CMD: 0x02 (WiFi State) MODE SET Wi-Fi接続状態をMCUへ通知 罠1: 色温度の逆転 Tuyaの値は一般的な直感と逆。0が「暖色」 、100 が「寒色」としてマッピングされている。 0 (Warm) 100 (Cool) 罠2: 常夜灯モード 輝度を下げても常夜灯にはならない。 専用の DP_MODE を "night" に切り替える例外処 理が必要。 常夜灯の挙動が undocumented!!
STEP 2 双方向同期の闇 Sync Issues & Fixes 解決策
(Stable Sync) 細粒度フラグ制御 単一の「更新中フラグ」ではなく、DPごとのロックを実装。 is_onoff_updating がTrueの間は、OnOff以外のパケット(輝度など)は 通過させる。 過渡状態の無視 常夜灯切り替え時に一瞬発生する不安定な値(例: br=18 )をフィルタリン グ。 状態遷移が完了するまでMatter側への報告を遅延させる。 UARTログの停止 通信タイミングがシビア(9600bps) 。 printf() のブロッキングでパケットを取りこぼすため、運用時は全ログを 無効化。 競合と発振 アプリ操作とリモコン操作が同時に行われると、状態更新通知が無 限にループする。 Brightness Value (Oscillation) LOOP HomeKit ESP32
STEP 3 開発の成果 Phase 1 Complete (USB給電時) 遅延ゼロのレスポンス
Matter over Wi-Fiにより、タップした瞬間に点灯。 クラウド経由の1〜2秒のラグは過去のものに。 Siri 音声コントロール 「Hey Siri, 電気を消して」で即座に反応。 HomePod mini経由でも完璧に動作。 双方向完全同期 物理リモコンで操作しても、0.1秒以内にiPhone側の表示ステータスが更新される。 9:41 マイホーム シーリングライト 点灯 • 100% 「勝った。 最強のスマートライトが完成した。」 ただし、USB給電環境下において—— "はい、電気をつけました"
STEP 4 運命のハードウェア実装 Final Integration Phase 「USBでの動作確認は完璧。あとは本体の電源につなぐだけ。 」 誰もが勝利を疑わなかった、運命の瞬間。
STATUS: ALL GREEN USB Power Main PCB 3.3V 01 USB給電を卒業。 デバッグケーブルを取り外す。 02 本体基板と直結 3.3VラインをSTM32基板から拝借。 03 筐体を閉じて天井へ。 あとはスイッチを入れるだけ。 ESP32-C6 Matter Enabled
STEP 5 実機への組み込みと不具合発生 CRITICAL FAILURE 不可逆的な損傷 単なるバグではない。ハードウェアレベルでの破壊。 ESP32C6を取り外した後も、シーリングライトは二度と正常な光を放つことはなかった。
T+00:00 スイッチON ライトが点灯。 一見、正常に動作しているよ うに見えた。 T+00:05 挙動不安定 Homeアプリからのレスポン スが極端に遅くなる。 Wi-Fi接続が断続的に。 T+00:30 点滅 (チカチカ) ライトが不規則に明滅を開 始。 制御コマンドを一切受け付け ない状態に。 ACTION 緊急取り外し 直ちに電源を切り、ESP32を 取り外して出荷時構成に戻 す。 RESULT 症状継続 純正モジュールに戻しても点 滅が止まらない。 メイン基板(STM32)が破損。
STEP 6 原因考察 (Failure Analysis) Root Cause & Theory
電源容量の欠如 市販シーリングライトの制御系電源(3.3V)は、余剰電力がほぼゼロで設 計されている可能性が高い。Tuyaモジュール(低消費電力版)に特化してお り、ESP32のピーク電流に耐えられない。 Brownout & Latch-up Wi-Fi送信バースト時の急激な電圧降下により、同ライン上のSTM32が Brownout(低電圧誤動作)を起こした。最悪の場合、ラッチアップによ り過電流が流れ続け、回路自体が焼損した恐れがある。 検証と対策(Next Steps) 3.3Vラインのリップル・ドロップ測定 (オシロスコープ) ダミー負荷による電源容量の限界テスト 外部電源の増設またはBOD(Brown-out Detector)設定の見直し 3.3V Line Voltage Drop (Hypothesis) SIMULATION
ご清聴ありがとうございました CONCLUSION まとめ・今後の課題 Project Summary 成果 (Software Works)
Tuya MCUプロトコルの完全解析完了 ESP32-C6によるMatter over Wi-Fi制御の実装 USB給電環境における制御ロジックの正当性検証 断念 (Hardware Fails) 既設電源回路(3.3V)の容量不足による動作不安定 AC100V回路への介入は「電気工事士」資格が必要かつ高リスク ハードウェア実装プロジェクトを凍結 今後の判断 安定動作には、外部絶縁DC-DCコンバータの増設や回路改造が必要とな る。 しかし、安全性とコンプライアンス(PSE法等)を最優先し、本プ ロジェクトは「技術検証完了」としてクローズする。 Safety First 「既製品の電源回路を流用する際は、 容量マージンの事前測定が不可欠」 THE LESSON Never assume there is free energy.