Smart Display はヒューマンマシンインターフェースとして機能し、UART シリアル通信を介して ESP32-C3 モジュールと通信します。ESP32-C3 は WiFi 接続を担い、Nanoleaf Shapes スマートライトパネルの Open API を呼び出すことで、照明制御およびシーン取得の検証を行います。本稿では、Smart Display から ESP32-C3 へカスタム UART コマンドを送信する構成による事前検証を中心に、UART 通信、WiFi ネットワーク接続、および Nanoleaf API 呼び出しの実現性を確認します。この段階は、今後の完全なスマートディスプレイ制御システム開発の基盤となるものであり、UART ブリッジおよび IoT API 連携の信頼性を検証するものです。

システム構成
Smart Display ↔ UART ↔ ESP32-C3 ↔ WiFi ↔ Nanoleaf Shapes (Open API)

ハードウェア要件
1.Smart Display
- WINSTAR Smart Display(TouchGFX GUI 対応)

2.ESP32-C3-DevKitC-02

3.Nanoleaf Shapes
- 通信方式:WiFi(2.4 GHz b/g/n)
- 電圧:100VAC - 240VAC
- 最大電力:42W
- パネルあたりの最大消費電力:2W

PC制御テスト
1.Nanoleaf Shapes の設定
⏹︎ モバイルアプリ(iOS)による Shapes デバイスのペアリング
- Nanoleaf 公式アプリは App Store から入手できます。
- Shapes のペアリング
- Dashboard 画面で右上の鉛筆アイコンをタップします。
- 「Add Device +」をタップします。
- アプリが自動的にペアリング画面を開きます。
- 画面の案内に従って、以下のいずれかの方法で進めます。
Option A:QRコードを読み取る
Option B:電源ユニット、コントローラ、または Quick Start Guide / Welcome Card に記載された 8 桁のペアリングコードを入力する
Option C:NFC タップを使用し、モバイル端末の上部をコントローラのボタン部分に近づける
- これで Nanoleaf Shapes は接続され、使用可能な状態になります。
⏹︎ Nanoleaf Shapes へのシーンのダウンロード

2.ESP32-C3 の設定
⏹︎ PC による ESP32-C3 の設定
PC-->USB to UART converter-->esp32-c3

⏹︎ Station モードの設定
ESP32-C3 の WiFi モードは ESP32 および ESP8266 と同様で、以下の 3 つの一般的なモードをサポートしています。
- Station mode (STA mode): ESP32-C3 はクライアントとして動作し、既存の WiFi ルーター(例:家庭内ネットワーク)に接続します。このモードでは、インターネットへのアクセスや、同一ネットワーク上の他デバイスとの通信が可能ですが、自身でホットスポットは作成しません。適用例:センサーがクラウドへデータをアップロードする用途(例:MQTT、HTTP)。
- SoftAP mode (AP mode, Soft Access Point): ESP32-C3 自身が WiFi ホットスポットとして動作し、他のデバイス(例:スマートフォン、PC)が直接接続できます。通常、初期ネットワーク設定やローカル制御に使用されます。デフォルトの SSID は一般的に「ESP32-AP」のような名称で、デフォルト IP は 192.168.4.1 です。ESP32-C3 は最大 4 台までのクライアント同時接続をサポートします(ESP8266 よりやや少ない)。適用例:モバイルアプリ(例:EspTouch、Web 設定ページ)を用いて家庭用 WiFi 認証情報を入力する場合。
- Station + SoftAP mode (STA+AP concurrent mode): STA モードと AP モードを同時に有効にする構成です。ESP32-C3 はルーターに接続してインターネット通信を行う一方、自身のホットスポットを提供してスマートフォンから直接接続することもできます。これはスマートホーム用途で最も一般的なモードであり、通常のクラウド連携を行いながら、インターネットがない場合でもスマートフォンによるローカル制御を可能にします。なお、ESP32-C3 は単一アンテナ構成のため、両モードは同一チャネルを共有し、単独モードと比べて性能がやや低下しますが、多くの用途では十分です。
AT: AT+CWMODE=1

⏹︎ Nanoleaf Shapes のホットスポットへ接続(ペアリングモードではパスワード不要)
- AT+CWJAP: ESP32-C3(Station モード)が指定した WiFi アクセスポイントへ接続します。
- "Shapes 4992": これは Nanoleaf Shapes ライトパネルの WiFi SSID です。
- "": 空のパスワード(Nanoleaf パネルは初期設定時またはリセット後のペアリングモードでは、通常パスワードなしのオープンなホットスポットになります)。
AT: AT+CWJAP="Shapes 4992",""

⏹︎ 取得した IP の確認
ESP32-C3 はパネルから割り当てられた IP アドレス(通常は 192.168.x.x セグメント)を取得します。
AT: AT+CIPSTA?

⏹︎ Nanoleaf Token の取得(コントローラを長押ししてペアリングモードへ移行)
- パネルのホットスポット上では、アドレスは http://192.168.2.1:16021/api/v1/new に固定されています。
- 成功すると、{"auth_token": "your long token"} のような JSON が返されます。まず、Shapes をペアリングモードにしてください。
まず、Shapes をペアリングモードにしてください。

Shapes token の取得:
AT:AT+HTTPCLIENT=3,0,"http://192.168.2.1:16021/api/v1/new",,,1,""

⏹︎ Nanoleaf Shapes のシーン一覧を取得
AT+HTTPCLIENT は、Nanoleaf API との連携(情報取得、シーン一覧の照会など)に適した、一般的な HTTP クライアントコマンドです。
AT:AT+HTTPCLIENT=2,1,"http://192.168.2.1:16021/api/v1/FXzbb1CapQ3e0GJsxrga6RvVKWXVjrbA/effects/effectsList",,,1

⏹︎ Shapes を点灯させる制御
HTTP PUT を使用して、照明をオンにするリクエストを送信します。
AT:AT+HTTPCPUT="http://192.168.2.1:16021/api/v1/FXzbb1CapQ3e0GJsxrga6RvVKWXVjrbA/state",23,2,"connection: keep-alive","content-type: application/json"

AT: {"on": {"value": true}}


⏹︎ Shapes を消灯させる制御
HTTP PUT を使用して、照明をオフにするリクエストを送信します。
AT:AT+HTTPCPUT="http://192.168.2.1:16021/api/v1/FXzbb1CapQ3e0GJsxrga6RvVKWXVjrbA/state",24,2,"connection: keep-alive","content-type: application/json"

AT: {"on": {"value": false}}


統合テスト(Smart Display + ESP32-C3)
開発環境:
- STM32CubeIDE: 1.16.0
- TouchGFX : 4.24.2 Designer
1.TouchGFX 設計(ボタンの作成)

2.プログラム実装(winstar_screenView.cpp)
カスタムの簡易コマンドプロトコルによる UART 送信機能を追加します。

ボタンクリックイベント:状態を切り替え、対応する UART コマンドを送信します。

3.点灯・消灯テスト
Button1 をクリック:1 回目のクリックで点灯し、2 回目のクリックで消灯します。
Button1 をクリックして点灯
Button1 をもう一度クリックして消灯
まとめ
本テストにより、Smart Display が UART シリアルコマンドを介して ESP32-C3 モジュールを有効に制御し、ネットワーク接続および Nanoleaf Shapes API の呼び出しを行うことで、Nanoleaf Shapes ライトパネルのオン/オフ機能を迅速に実装できることを確認しました。これは、今後のタッチベースのグラフィカルユーザーインターフェース(GUI)による照明制御システム開発の基盤となります。本システムは、低遅延、高安定性、信頼性の高い通信性能を備えています。将来的には、フルライト制御機能(例:輝度調整、色変更、動的シーン切り替え)への拡張や、Smart Display 上へのパネル状態表示、リアルタイムフィードバック、カスタム制御パネルの表示などにより、さらに多くの IoT アプリケーションとの統合が可能です。
参考資料