[家庭智慧照明控制与室内环境监测系统] --10. 结项贴
[复制链接]
本帖最后由 传媒学子 于 2021-7-17 18:12 编辑
家庭智慧照明控制与室内环境监测系统
0.前言
本次大赛是对自我知识盲区的又一次挑战,从对蓝牙一窍不通,到基本能够读懂例程,修改例程,移植例程实现自己的想法;整个过程让人既痛苦又兴奋。BLE作为蓝牙技术的低功耗场景技术,已经融入到了我们生活中的方方面面。非常有幸能参加这次由安森美半导体和安富利赞助,EEWorld论坛举办的这场设计大赛。当能用手机通过BLE无线控制灯光开合的时候,我感觉到了自我突破的乐趣。希望我的作品能给大家带来乐趣,同时也希望相关代码能帮助到其它开发者。
一、作品简介
房间内有3个灯,均是传统的按压开关;而房子的开关位置设计的不太合理,因此,晚上睡觉时,需要下床去关灯,略显不便;结合RSL10的BLE通信能力,本作品设计了一个小型系统,通过手机app来实现对3个开关的无线控制,并且获取RSL10的beacon温度。
如果按照商用标准来开发,需要软件工程师,结构工程师,显然是不太现实的。因此,本作品从技术原理上,实现了预期的功能:手机app通过BLE控制室内3个开关并读取温度。三个开关的作品图如下,读取温度用的是COIN-GEVB.
3个自制的智能开关
二、系统框图
2.1系统原理图
本项目实现采用RSL10 BLE通信技术,实现对开关节点的无线控制;通过手机蓝牙作为Central设备,而开关节点作为server设备,进行双向通信。系统原理图如下所示;
2.2 软件流程图
软件部分分为2个部分,外围设备和手机APP。外围设备为3个无线开关和1个COIN-GEVB。COIN-GEVB板子程序为demo程序,这里不再赘述。手机app和无线开关的程序流程图如下所示。
三、各部分功能说明
3.1 开关硬件模块
目前的家用开关,基本上都是机械的单火线控制开关,而且是220V的市电,有一定的危险性;因此,决定利用采用外接机械进行控制;舵机驱动板子的供电电源,可以外接光伏发电设备,结合RSL10的低功耗特性,可实现家庭清洁自循环。
舵机可以实现较为精确的角度控制,可以用来控制机械开关的开合。RSL10自带了I2C外设,通过I2C来控制PCA9685生成PWM来驱动舵机;对于机械开关的开合,可以设定2个角度。而角度的设定需要针对每个开关进行整定。
开关硬件模块原理图
单节点实物图
3.2 程序设计
3.2.1 I2C程序移植
I2C的移植花费了一些时间,需要对官方提供的库进行深入的理解;
该部分代码移植可以参考https://bbs.eeworld.com.cn/thread-1166483-1-1.html;
基本的原子函数write_u8:
基本的原子函数read_u8:
3.2.2 BLE处理函数
为了调试方便,将舵机的转动角度用数值表示,从0~0x50进行变化,舵机角度会发生对应的变化。
因此相应的程序如下:
3.2.3 手机app
手机app支持Android和iOS两种,最终的调试是基于light blue软件进行的,这是一款基于iOS的开源BLE客户端。 ,AppStore可以下载到相应的demo app;本人对于app开发比较陌生,采用了demo app,进行调试,APP如下:
四、作品源码
见附件。
五、作品功能演示视频
温度获取功能可参阅帖子:
https://bbs.eeworld.com.cn/thread-1164149-1-1.html#pid3060943;
App控制三个开关的作品视频链接:https://training.eeworld.com.cn/video/30539;
六、项目总结
本项目基本上完成了预期的设想,但碍于自身缺乏App设计等能力,无法将作品完美呈现,只能是以demo形式展现出来。总体来讲,安森美的这款RSL10 BLE解决方案是非常棒的,超低功耗的无线连接;完成的开发环境,以及多样化的demo都极大的方便了开发者。
发帖链接:
1. 开箱贴&暖场贴 https://bbs.eeworld.com.cn/thread-1162962-1-1.html
2. 玩转RSL10-COIN-GEVB https://bbs.eeworld.com.cn/thread-1164149-1-1.html
3. RSL10开发环境熟悉 https://bbs.eeworld.com.cn/thread-1164619-1-1.html
4.【RSL10】I2C控制PCA9685 PWM输出 https://bbs.eeworld.com.cn/thread-1166483-1-1.html
5.【RSL10】蓝牙BLE上位机开发1 https://bbs.eeworld.com.cn/thread-1167287-1-1.html
6. 蓝牙BLE上位机开发2 https://bbs.eeworld.com.cn/thread-1170343-1-1.html
7. 修改蓝牙设备名字和地址 https://bbs.eeworld.com.cn/thread-1170344-1-1.html
8. 在ON-SEMI开发软件中合并2个工程 https://bbs.eeworld.com.cn/thread-1170345-1-1.html
9. 单节点蓝牙BLE灯光开关设计 https://bbs.eeworld.com.cn/thread-1170525-1-1.html
10. 作品提交https://bbs.eeworld.com.cn/forum.php?mod=post&action=newthread&fid=269
七、致谢
感谢论坛举办这次大赛,感谢安森美和安富利能够提供开发板和赛前培训。同时,感谢@just0_do等坛友以及论坛管理员的鼓励和帮助;希望大家能够以我的分享,获得灵感;也同时,希望我的作品能给大赛增添些许乐趣。
感谢各位!
|