一、背景
前些天报名了阿里一个线上的蓝牙训练营,提交了一个简单的创意,结果居然赠送了一块CB6121 开发板给我。既然这样我就尝试按照当时自己的创意试试做一下吧。
我当时的创意想法是这样的,设计一款蓝牙名牌,用于幼儿园、早教班等小孩人数统计,预防小孩走丢等。 主要设计思路: 1.每个班级组成1个独立mesh网络,可以很快知道网络里有多少设备已经入网。 2.体积小巧,卡片圆形,直径大约30mm,厚度3mm,纽扣电池供电。 3.一个班的每个小孩佩戴一个身份卡,每个身份卡的mac地址与学生姓名绑定。 4.老师手机安装一个APP,通过蓝牙加入学生身份卡组建的mesh网络。 5.一旦某个学生离开网络超时,自动提示老师。 6.早上上课时老师不用挨个点名,app自动统计出勤情况 7.班级有活动外出时,方便老师知晓有没有学生走散。 8.低功耗设计,产品不用像儿童手表那样经常充电
二、方案设计
之前计划里是直接用手机蓝牙与开发板通信,然后做个APP来展示相关的数据,但是作为专业的硬件工程师,咱也不会做APP啊,现在找人也来不及,那就直接传阿里云了,然后用阿里云自带的APP展示了,效果都一样,意思到位了。
整体设计方案是这样的
用3块CB6121组成一个简单的蓝牙网络,1号和2号当做儿童设备节点,0号节点和我的CAT1开发板直接连上,作为蓝牙汇聚节点。1号与2号节点周期性与0号节点通信,发送一个心跳数据,证明节点还在网络里。然后通过开发板、CAT1模组直接把相关结果传到阿里云飞燕平台,最后通过云智能APP把结果展示出来。
实物照片是这样的
最后在APP看到的
三、硬件开发
硬件开发主要做2个事情,一个是把3个蓝牙板子组网,让其中2个做节点,一个做网关,另一个就是用开发板接收蓝牙网关节点发过来的数据,并解析其中内容,知道是哪个节点来的心跳数据。 CAT1开发板是我7月份做的一个测试板,所以上云这块就不用花什么时间了,有兴趣的可以看我之前的文章。
https://developer.aliyun.com/article/769244
https://developer.aliyun.com/article/769244
蓝牙开发板是这次阿里中奖后送的1个,然后我又自己买了2个,这样就组成了最简单的蓝牙网络吧。
四、软件调试
首先是按照阿里给的资料,下载Mesh Sdk包,安装交叉编译工具链等准备工作,然后进入SDK目录,编译mesh switch和mesh light。
下载安装nrfmesh,用来配置蓝牙节点和网络的。添加网络,添加节点,修改地址、秘钥这些都在APP完成。
添加分组
修改0号汇聚节点代码,接收到1、2号心跳后通过串口输出来,给CAT1开发板解析
这样蓝牙这边就可以了。 CAT1这边主要就是要解析串口收到的数据,以及接收到的时间,如果那个节点在10秒钟没有心跳进来就判定为掉线了,把相关的结果统计起来发送到阿里云即可。
模组这边的数据可以抓取到的
五、平台及APP
添加项目,添加产品,添加设备属性,自定义APP界面,熟悉飞燕的就知道这个很简单的啦。
最后开机测试就可以啦 ,我现在这个只能是个小班,全班总共两学生的,哈哈哈。