有幸经朋友推荐参加了由富芮坤冠名、面包板社区主办的原创物联网开发板设计大赛活动,免费申请了一块符合BLE5.0标准的物联网开发板。
申请初心是想基于该开发板设计一套智能家电语音控制系统,奈何本人初次接触BLE协议栈编程且时间有限,于是退而求其次,基于该开发板开发了一套简单的单灯多控系统。
1.系统简介
根据要求,首先晒一张证件照(图1),整个板子小巧可爱,显示屏显示还是很清晰的。
图1 证件照
由于手中只有一块FR8016HA开发板,所以本套系统目前由一块开发板和两部安卓手机构成。FR8016HA开发板上的蓝牙作为central设备工作于master模式,两部手机上的蓝牙作为peripheral设备工作于slave模式。开发板上的蓝牙主动扫描蓝牙广播数据,当发现用于灯控制的蓝牙设备(本系统中的两部手机)后主动进行连接并将该设备添加到单灯多控系统中,最终实现一灯多控功能。
1.1FR8016HA开发板
开发板由上海富芮坤免费提供,详细资料可在官网下载。本系统中用到开发板上的资源包括符合BLE5.0协议的蓝牙功能,模拟实际照明灯的发光二极管LED2(图2)和central设备上模拟实际开关1的按键K2(图3)。开发板上的蓝牙经程序配置为central设备扫描设备名为“huxl6513”的peripheral蓝牙设备,扫描发现后主动连接并将设备地址和连接号存储在系统内以备其他程序调用,程序中最大连接数定义为2。
图2 模拟灯LED2
由于开发板上控制LED2的管脚和控制LCD屏背光的引脚共用且连接在NPN三极管基极,所以当LED2输出高电平时,发光二极管并不亮,但是LCD背光会打开,视频中也只能看到LCD背光的亮灭变化。
图3 模拟开关1按键K2
1.2安卓手机
由于时间有限,未能在安卓设备上开发出配置手机蓝牙功能为peripheral设备的软件,这里用nRF Connect软件代替,用装有nRF Connect软件的两部手机分别模拟实际开关2和开关3。打开软件,设置广播包数据,配置GATT Server,添加用户服务和属性,打开广播,就可以等待central设备扫描连接。peripheral设备用户服务和属性配置如图4:
Service | UUID | Characteristic | UUID | Property | Permission |
lightControl | 0xd0ff | btnClicked | 0xd001 | notify | read |
lightSta | 0xd002 | write | write |
图4 peripheral设备服务和属性配置
peripheral设备有三个服务,其中Generic Attribute和Generic Access为默认服务,不用自己添加,第三个服务和特性需要自己添加。本系统中,用户服务lightControl共使用两个特性,第一个特性btnClicked为通知特性,用来通知central设备有按键按下,第二个特性lightSta为写特性,显示当前灯的状态。实际工作时,peripheral设备通过通知特性给central设备发送字节0x31来模拟有按键按下,central设备收到通知请求后,根据当前灯的状态决定新的灯的状态,并把新的灯的状态写到peripheral设备写特性里。
2.工作过程
整个系统工作状态如图5所示。首先开发板上电,让开发板蓝牙工作于主模式,扫描设备名为“huxl6513”的灯控蓝牙设备,同时配置开发板按键K2模拟实际开关1。
打开手机nRF Connect软件,使能广播,等待开发板蓝牙连接。开发板蓝牙发现手机蓝牙后,主动发起连接请求,手机方输入pin码确认,连接上后,该手机就可以控制开发板上LED2的亮灭。演示视频地址:https://m.youku.com/video/id_XND ... 3ea227&from=message
图5 一灯多控系统
3.主要代码
3.1central设备配置代码
主要配置开发板蓝牙工作于central模式,并且添加感兴趣特性UUID。
3.2central设备扫描连接代码
主要解析扫描到的广播包数据,判断是否是灯控设备,如果是则发起连接。
3.3开关1控制灯代码
如果开发板上K2按键被按下,更新灯的状态,并更新已连接灯控设备的写特性值。
3.4开关2和3控制灯代码
如果收到灯控设备通知请求,更新灯的状态,并更新已连接灯控设备的写特性值。
4.阶段心得
既因为疫情,也因为富芮坤给提供的机会,下定了决心研究一下BLE技术,为以后BLE产品的应用做一点铺垫。
FR8016HA作为一颗符合BLE5.0标准的国产SOC芯片,和国外优秀产品相比,虽然不知道性能怎么样,但是一切优秀的产品都需要经过一个从无到有的过程,在目前复杂的国际环境下,全民更应支持国产,打造自己的生态圈。
在本系统的开发中,确实遇到不少问题,自己知识能力有限,国产芯片生态缺乏,都会延长开发周期。
FR8016HA这颗芯片可玩性还是很高的,自己用了几天的时间开发出一个不太象样的系统,期间确实学到不少知识,也期待更多的开发者设计出更优秀的作品,真希望国产芯片生态能够越来越好,开发者越来越多。
继续阅读本篇相关更多标签
全部回复 1
- 2 主题
- 3 帖子
- 597 积分
身份:LV3 中级技术员
E币:461
发消息
烧录程序上去,没有看到服务,按键可以控制灯,但是APP控制不了,求指导
>>资料:智慧物流动态跟踪管理系统设计