简介
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
- 华凌光电 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 设置
⏹︎ 通过手机 App(iOS)配对 Shapes 设备
- 可在 App Store 下载官方 Nanoleaf App。
- 配对 Shapes 设备
- 在 Dashboard 页面点击右上角的铅笔图标。
- 点击“Add Device +”。
- 应用会自动打开配对界面。
- 按照屏幕提示,通过以下方式之一完成配对:
方式 A:扫描二维码
方式 B:输入电源模块、控制器或 Quick Start Guide/Welcome Card 上的 8 位配对码
方式 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 类似,支持以下三种常见模式:
- Station mode (STA mode): ESP32-C3 作为客户端连接到现有 WiFi 路由器(如家庭网络)。在该模式下,设备可以访问互联网或与网络中的其他设备通信,但不会创建自己的热点。应用示例:传感器向云端上传数据(如 MQTT、HTTP)。
- SoftAP mode (AP mode, Soft Access Point): ESP32-C3 自身作为 WiFi 热点,允许其他设备(如手机、电脑)直接连接。通常用于初始网络配置或本地控制。默认 SSID 通常类似于 "ESP32-AP",默认 IP 为 192.168.4.1。ESP32-C3 最多支持 4 个客户端同时连接(略少于 ESP8266)。应用示例:通过手机 App(如 EspTouch、网页配置页面)输入家庭 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 是常用的 HTTP 客户端命令,适用于与 Nanoleaf API 交互(例如获取信息、查询场景列表等)。
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:第一次点击开灯,第二次点击关灯。
点击 Button1 开灯
再次点击 Button1 关灯
结论
本次测试成功验证了 Smart Display 可通过 UART 串口命令有效控制 ESP32-C3 模块,实现网络连接并调用 Nanoleaf Shapes API,从而快速完成 Nanoleaf Shapes 灯板的开/关控制。这为后续基于触控图形用户界面(GUI)的灯光控制系统开发奠定了基础。系统具备低延迟、高稳定性和可靠通信等特点。未来还可扩展为完整的灯光控制功能(例如亮度调节、颜色变化、动态场景切换),并可在 Smart Display 上显示面板状态、实时反馈或自定义控制面板,进一步整合更多 IoT 应用。
参考资料