Solution: BLE RGB Light¶
1 功能概述¶
本文主要介绍 PAN10xx BLE RGB 灯和手机 APP 进行连接,通过 APP 控制 RGB 灯的亮度与颜色, 此功能支持pan101x
和pan107x
芯片
2 环境要求¶
board:
pan107x
或者pan101x
uart (option): 显示串口log
安卓亿觅精灵灯app V1.5.5,或 微信小程序(待补充)
3 编译和烧录¶
pan107x
芯片例程位置:<home>\nimble\samples\solutions\ble_rgb_light\keil_107x
pan101x
芯片例程位置:<home>\nimble\samples\solutions\ble_rgb_light\keil_101x
使用keil
进行打开项目进行编译烧录。
4 演示说明¶
PAN107 EVB板GPIO P11、P12、P14与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资源使用情况¶
PAN107x:
Flash Size: 136.08k
RAM Size: 33.73 k
PAN101x:
Flash Size: 120.34k
RAM Size: 15.67 k