基于RSL10的智能物联网学生寝室
作者:dql2016
一、作品简介
学生时代修的是电子信息专业,当时有个想法就是利用所学知识构建一套自己的物联网智能家居系统(我想每个爱折腾的童鞋也许都有过类似想法吧),但由于各种原因耽搁了,正好论坛和安森美给了这样一个机会,本次作品的目的是针对学生寝室生活特点,利用安森美RSL10低功耗蓝牙芯片构建一个物联网智能寝室系统,实现若干功能节点,在控制端采用十分方便的微信小程序进行数据的监控。通过RSL10板卡组成的功能单元进行数据采集或者动作控制,在实现微信小程序监控的功能,本项目是一套简单的智能化控制学生寝室解决方案,可作为相关专业学生课程/毕业设计,亦或是安森美大学计划课件案例。本次作品制作了3个功能节点,照片如下:
二、系统框图
环境监测节点:采用RSL10-SENSE-DB-GEVK实现,充分利用板载传感器,环境光、BME680气体、压力、湿度和温度传感器,INMP522(超低噪声数字麦克风),实现对室内环境数据的采集,板卡预留的一个IO用于控制风扇开关。
照明控制节点:采用RSL10-002GEVB+扩展版实现,扩展板上有RGB灯珠,通过I2C接口RGB恒流驱动芯片SM726EB来驱动,可实现任意颜色控制和灯泡开关。
植物管家节点:采用RSL10-002GEVB+扩展版实现,扩展板上有光敏电阻(通过AD读取数据)用于采集光照,电容式土壤湿度传感器(通过AD读取数据)用于采集土壤湿度,直流小水泵(通过IO控制)用于浇水。
用电管理节点:采用RSL10-002GEVB叠加扩展板实现,扩展板板载贝岭BL0937电能计量芯片用于采集用电量和电流电压有效值参数,继电器用于控制输出断电。
健康管理节点:预留,这个界面功能十分丰富,可以添加多种常见健康测量装置,如心率、血氧、体脂等。后续有时间慢慢研究完善。
三、部分功能说明
环境监测节点:在本节点中RSL10是外网设备实现GATT Server,提供一个自定义服务,该服务包含2个特征值,一个具有通知权限和可读权限,另外一个具有可写权限,周期性采集数据后,将数据以数据包的形式用通知发送给微信小程序(中央设备,实现GATT Client),数据包长度为10字节,依次是温度(1byte)、湿度(1byte)、气压(2byte)、空气质量(2byte) 、光照(2byte)、声音(2byte)。微信小程序节点功能界面提供对采集数据的显示以及图表分析功能以及可以通过采集数据判断自动/手动方式控制风扇开启通风。
RSL10设备端将采集的传感器数据打包发送出去:
接收到微信小程序发送的控制指令后采取的动作,主要是控制IO:
微信小程序端接收到数据进行解析:
调试过程界面如下:
照明控制节点:在本功能节点中,使用到了RSL10-002GEVB的I2C接口,在本节点中RSL10是外网设备实现GATT Server,提供一个自定义服务,该服务包含1个特征值,具有可写权限。微信小程序节点功能界面提供了一个拾色器用于用户选择颜色以及开关按钮用于控制灯泡亮灭。
RSL10设备端接收到数据后进行RGB颜色控制:
微信小程序端获得取色器结果后发送出去:
数据收发过程:
颜色控制效果:
植物管家节点:在本功能节点中,使用到了RSL10-002GEVB的一个GPIO接口(驱动三极管控制直流小水泵)和2路ADC接口(一路A0用于读取光敏电阻处电压得到光照数据,另一路A1用于读取土壤湿度传感器数据),在本节点中RSL10是外网设备实现GATT Server,提供一个自定义服务,该服务包含2个特征值,一个具有通知权限和可读权限,另外一个具有可写权限,周期性采集数据后,将数据以数据包的形式用通知发送给微信小程序(中央设备,实现GATT Client),数据包长度为4字节,依次是光照(2byte)、土壤湿度(2byte)。微信小程序节点功能界面提供了一个图标按钮用于用户控制是否开启直流小水泵进行浇水。
RSL10设备端采集2路AD数据后使用通知方式发送出去,高字节在前:
RSL10设备端接收到微信小程序下发的控制数据后进行处理,主要是控制IO:
微信小程序接收到数据就进行显示,并简单判断土壤湿度状态:
用户点击浇水控制图标按钮后将发送数据给RSL10设备端:
用电管理节点:考虑到安全性仅仅设计了原型,没有通电调试。其实功能和其它节点类似,采集数据然后通知上传,接收下发控制指令控制IO控制继电器。
四、作品源码
RSL10端(包含环境监测、照明控制、植物管家3个功能节点):
https://download.eeworld.com.cn/detail/dql2016/620211
微信小程序:
https://download.eeworld.com.cn/detail/dql2016/620212
五、作品功能演示视频
六、项目总结
(项目文字总结+帖子分享链接汇总。)
通过本次DIY大赛活动,我熟悉了BLE蓝牙及其微信小程序蓝牙功能的开发,在此对板卡提供方安森美半导体及安富利电子、活动举办方EEWorld表示感谢。本次DIY算是完成了BLE蓝牙SoC RSL10与微信小程序之间通过蓝牙相互通信的功能,这里没有采用广播的方式进行数据的传输,而是采用写特征值、订阅通知的方法,由于时间以及本人能力有限,作品比较粗糙,敬请见谅,本项目只是简单的通过一个服务的2个特征值(一个具有读权限和通知权限,另外一个具有写权限)实现了项目的基本功能,实际产品通常会用到多个服务和多个特征值。本次项目充分利用板卡软硬件资源和手头现有硬件模块,实现了环境监测、照明控制、植物管家3个功能节点,其实这些功能都是类似的,抽象起来无非就是蓝牙设备与微信小程序之间的数据收发,不同的功能节点主要就是应用层逻辑功能不同。对于开发而言,在实现微信小程序和RSL10的数据双向收发后,我们可以利用RSL10的超级低功耗特性实现许多智能化的实用产品,例如智能体脂秤、智能水杯等对续航要求较高的产品。
帖子分享链接汇总:
资料查找RSL10-COIN-GEVB:https://bbs.eeworld.com.cn/thread-1162910-1-1.html
资料查找RSL10-SENSE-DB-GEVK:https://bbs.eeworld.com.cn/thread-1162914-1-1.html
固件下载方法:https://bbs.eeworld.com.cn/thread-1162922-1-1.html
RSL10官方入门指南中的2处错误:https://bbs.eeworld.com.cn/thread-1162933-1-1.html
资料查找RSL10-002GEVB:https://bbs.eeworld.com.cn/thread-1162909-1-1.html
RSL10-002GEVB蓝牙功能测试:https://bbs.eeworld.com.cn/thread-1163866-1-1.html
BLE蓝牙基本概念:https://bbs.eeworld.com.cn/thread-1163878-1-1.html
RSL10蓝牙SoC手机应用构建一:https://bbs.eeworld.com.cn/thread-1164284-1-1.html
RSL10-SENSE-DB-GEVK测试:https://bbs.eeworld.com.cn/thread-1166273-1-1.html
RSL10-002GEVB原理图的疑问:https://bbs.eeworld.com.cn/thread-1167285-1-1.html
RSL10-002GEVB扩展板设计:https://bbs.eeworld.com.cn/thread-1168442-1-1.html
样板初步调试:https://bbs.eeworld.com.cn/thread-1169552-1-1.html
RSL10 adc多通道数据采集:https://bbs.eeworld.com.cn/thread-1169554-1-1.html
RSL10 BLE蓝牙广播:https://bbs.eeworld.com.cn/thread-1170122-1-1.html
RSL10 RTE添加定时器:https://bbs.eeworld.com.cn/thread-1170272-1-1.html
RSL10蓝牙特征值读写:https://bbs.eeworld.com.cn/thread-1170300-1-1.html
微信小程序与RSL10蓝牙双向通信:https://bbs.eeworld.com.cn/thread-1170400-1-1.html
RSL10 合并工程后printf无法输出浮点数https://bbs.eeworld.com.cn/thread-1170823-1-1.html
RSL10-SENSE-DB-GEVK环境监测节点设计:https://bbs.eeworld.com.cn/thread-1171333-1-1.html
RSL10-002GEVB照明控制节点设计:https://bbs.eeworld.com.cn/thread-1172136-1-1.html
RSL10-002GEVB植物管家节点设计:https://bbs.eeworld.com.cn/thread-1172725-1-1.html
RSL10-002GEVB用电管理节点设计:https://bbs.eeworld.com.cn/thread-1172736-1-1.html
微信小程序设计思路:https://bbs.eeworld.com.cn/thread-1172742-1-1.html
七、其他
在实验过程中发现RSL10的许多硬件特性还是需要深入研究才能应用好的,比如我在使用中发现RSL10的GPIO驱动能力有点弱的问题,有的时候某个IO无法完成驱动换一个就好了。有的时候,似乎程序只有打开RTT调试软件才能运行,断开RTT调试软件程序就停止了。
最后感谢各位管理员和论坛网友的无私分享和奉献。
作品提交文档下载:
微信小程序:
RSL10端3个功能节点程序:
手机同时连接四台设备吗?
看了视频,是分别进行连接,刚开始在想小程序居然这么先进了。以前有尝试过用安卓程序连接多个设备,不过不好管理。如果能用上Mesh的话就更好了。
引用: w494143467 发表于 2021-7-19 14:50 看了视频,是分别进行连接,刚开始在想小程序居然这么先进了。以前有尝试过用安卓程序连接多个设备,不过不 ...
理论上是可以同时连接多个设备的,不过管理起来太麻烦了
引用: dql2016 发表于 2021-7-19 14:54 理论上是可以同时连接多个设备的,不过管理起来太麻烦了
最近研究Mesh,比蓝牙难且高级些。以后分享出来~
引用: w494143467 发表于 2021-7-19 15:15 最近研究Mesh,比蓝牙难且高级些。以后分享出来~
向大佬学习