Skip to content

amekusa03/Virtualdev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32-C6-GEEK Virtual Smart PC

ESP32-C6-GEEK(Waveshare)を使って、Matter プロトコル経由でスマートフォンから ON/OFF 操作できる 仮想スマートデバイスです。 実際の PC ハードウェアを接続しなくても、LCD に ON/OFF 状態を表示しながら動作確認ができます。


特徴

  • Matter 対応 — Apple Home / Google Home / Amazon Alexa などのスマートホームアプリから操作可能
  • LCD リアルタイム表示 — ON/OFF 状態・WiFi 接続状態・IP アドレスを 20fps でアニメーション表示
  • バックライト自動調光 — イベント発生後 10 秒で全輝度、その後 22 秒かけてゆっくり消灯
  • 仮想モード/実機モード切替 — 1 行変更するだけで実際の PC 電源ボタン制御(フォトカプラ GPIO)に切り替え可能
  • OTA アップデート対応 — 無線でファームウェアを更新可能

ハードウェア

部品 型番
マイコン Waveshare ESP32-C6-GEEK
LCD ST7789(基板内蔵 135×240px)

実機モード(PC_VIRTUAL_MODE 0)では別途フォトカプラ回路が必要です。


ソフトウェア要件

ツール バージョン
ESP-IDF v5.4.1
ESP-Matter 最新(GN 必須)
Python 3.12.3 以上
LovyanGFX components/ に同梱

セットアップ

1. WiFi 認証情報を設定

main/wifi_creds.h を編集します:

#define WIFI_SSID     "your-ssid"      // WiFi のネットワーク名
#define WIFI_PASSWORD "your-password"  // 暗号化キー

2. 環境を準備してビルド

source /home/kusa/esp/esp-idf/export.sh
source /home/kusa/esp/esp-matter/export.sh

cd /path/to/Virtualdev
idf.py build

3. ESP32-C6-GEEK にフラッシュ

idf.py -p /dev/ttyACM0 flash

Matter ペアリング手順

  1. デバイスを起動し、LCD が Ready になるまで待つ(IP アドレスがフッターに表示される)

  2. スマートホームアプリで 「デバイスを追加」 を選択

  3. 手動入力を求められたら以下の 11 桁コード を入力:

    34970112332
    

シリアルモニターでも確認できます:

idf.py -p /dev/ttyACM0 monitor

起動ログ内の Manual pairing code: の行に表示されます。


LCD 表示の流れ

起動
 └─ connecting...   (WiFi 接続中)
      └─ Ready      (IP 取得・Matter 待機中)
           ├─ ON    (Matter から ON コマンド受信)
           └─ OFF   (Matter から OFF コマンド受信)

フッターには常に取得済み IP アドレスが表示されます。


設定パラメータ

仮想モード / 実機モード

main/pc_control.h

#define PC_VIRTUAL_MODE 1   // 1=仮想モード(デフォルト)/ 0=実機GPIO

実機モード(0)にすると、GPIO 20 のフォトカプラ経由で PC 電源ボタンを制御します。

バックライト調光

main/lcd_display.cpp

#define BL_MAX          220   // イベント直後の輝度(0〜255)
#define BL_HOLD_MS    10000   // 全輝度を維持する時間 [ms]
#define BL_FADE_STEP_MS 100   // フェードのステップ間隔 [ms](小さいほど速い)

プロジェクト構成

Virtualdev/
├── CMakeLists.txt
├── partitions.csv              OTA 対応カスタムパーティション
├── sdkconfig.defaults          ビルド共通設定
├── sdkconfig.defaults.esp32c6  ESP32-C6 固有設定
├── main/
│   ├── app_main.cpp            Matter ノード・イベントコールバック
│   ├── lcd_display.cpp/hpp     LovyanGFX LCD 描画・バックライト制御
│   ├── pc_control.c/h          仮想/実機 電源状態管理
│   └── wifi_creds.h            WiFi SSID / パスワード ← 要編集
├── components/
│   └── LovyanGFX/              LCD ドライバライブラリ
├── managed_components/         ESP-IDF マネージドコンポーネント
└── doc/
    ├── readme.md               このファイル
    └── BUILD_INSTRUCTIONS.md   詳細ビルド手順

ライセンス

MIT License


謝辞

  • ESP-Matter — Espressif 公式 Matter SDK
  • LovyanGFX — 高速グラフィックライブラリ

About

Virtual Smart Home Devices Using the ESP32

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors