Solution: BLE RGB Light¶
1 功能概述¶
本文主要介绍PAN1080 BLE RGB灯和手机APP进行连接,通过APP控制RGB灯的亮度与颜色。
2 环境要求¶
board: pan108xxb5_evb
uart (option): 显示串口log
安卓亿觅精灵灯app V1.5.5,或 微信小程序(待补充)
3 编译和烧录¶
例程位置:zephyr\samples_panchip\solutions\ble_rgb_light
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
PAN1080 EVB板GPIO P10、P11、P16与RGB电路用跳线帽连接。
EVB板上电灯的颜色默认是蓝色,BLE广播设备的名字是”b+EMIE Elfy” 。
打开安卓手机”亿觅精灵灯“ app,在app上启动搜索设备。
搜索到后点击连接,连接成功后就可以控制灯的开关和颜色了。
5 设备连接和控制¶
5.1 广播数据¶
Adv Data Type |
Description |
Length |
Detail |
---|---|---|---|
0xff |
Device id |
6byte |
0x11, 0x00, 0xc9, 0x7a, 0xbb, 0x8f, 0xdd, 0x4b, 0x00, 0x11 |
0x07 |
128-bit UUID |
16byte |
0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, |
0x09 |
Device name |
n byte |
“b+EMIE Elfy” |
5.2 GATT服务¶
Function |
Service Attribute |
UUID(128bit) |
---|---|---|
Useless |
Primary service |
0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, |
控制灯的状态 |
Write characteristic declaration |
0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, |
Notify灯的状态 |
notify characteristic declaration |
0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, |
5.3 通信协议¶
5.3.1 Light Control¶
UUID = {0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, 0x93, 0xf3, 0xa3, 0xb5, 0x03, 0x20, 0x40, 0x6e}
Function |
Length |
Detail |
---|---|---|
off |
2byte |
off:0xaa, 0x03 |
Color |
5byte |
0xaa,0x16,red:0~255,green:0~255,blue:0~255 |
控制灯的开关、颜色。
5.3.2 Notify Light Status¶
UUID = {0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, 0x93, 0xf3, 0xa3, 0xb5, 0x02, 0x20, 0x40, 0x6e}
每次收到控制命令后将灯的状态通知给手机app。
6 RAM/Flash资源使用情况¶
Memory region Used Size Region Size %age Used
FLASH: 240448 B 1020 KB 23.02%
SRAM: 30024 B 52 KB 56.39%
IDT_LIST: 0 GB 2 KB 0.00%