5824|1

1382

帖子

2

TA的资源

五彩晶圆(初级)

楼主
 

【家门电子值守】作品提交 [复制链接]

 

 

家门电子值守

 

作者:cruelfox

 

一、作品简介
  作品名称:家门电子值守。设想是使用RSL10搭配低功耗的加速度传感器,贴于门板的背面,通过采集加速度信息,检测敲门引起的门板振动和开门引起的门板加速运动,从而对敲门和开门的事件进行记录。RSL10的BLE功能实时将状态信息发送给BLE终端机,可以进行日志查看,还可以实现对其它电子设备的操控,例如拓展出无线门铃、入侵报警等功能。

 

二、系统框图
  作品包括贴于门板后面的无线传感单元(使用RSL10-COIN-GEVB开发板)和可移动使用的BLE终端机(使用RSL10-QFN-EVB开发板)两部分。无线传感单元是从机,使用3V纽扣电池供电;BLE终端机是主机,可用小型磷酸铁锂供电,也可以通过USB供电。

无线传感单元通过RSL10-COIN-GEVB预留I2C接口连接一只KX023三轴加速度传感器。

BLE终端机通过RSL10-QFN-EVB 的Arduino接口连接扩展PCB,其上有一个I2C接口的96x64单色图形液晶模块用于信息显示;还有6个按钮直接连在GPIO上用于操控。

无线传感单元与BLE终端机通过BLE连接进行信息交互。

 

三、各部分功能说明

无线传感单元启动后以50Hz采样率采集三轴加速度信号,并通过KX023内置的信号处理功能产生”DoubleTap”状态标志。RSL10软件通过Z轴加速度信号处理,识别开门动作,并直接读取KX023的”DoubleTap”检测结果作为敲门判断。加速度信号采集是24小时不间断工作的,BLE功能也是持续开启。当没有与BLE终端机连接时,它处于连续广播状态(1500ms间隔)。当BLE终端机扫描到设备并发起连接后,两者一直处于连接状态(400ms间歇),除非通信故障或一方掉电。

    BLE终端机启动后将自动扫描无线传感单元,并主动发起连接。连接成功后将获得目标设备的内部时间日期信息,并提供修改日期时间的操作界面。然后,BLE终端机显示当前最新的事件(开门和敲门)信息记录,并可以浏览目标设备内存储的最多达1024条事件记录。

 

BLE终端机的工作模式状态转移图如下:

  无线传感单元使用了一个自定义的BLE服务,包含两个Characteristic, 其中一个用于向终端传送日志记录(每条4字节,一次传输4条);另一个用于向终端发送状态信息(8字节,使用Notify方式),和接收终端发来的命令。

  无线传感单元的省电模式尤其重要,因为它要一直处于数据采集和处理状态,且无线通信是一直开启的,节省任何部分的耗电都关系到电池工作时间。因为KX023传感器有内部少量的缓存,在50Hz 数据速率下最多可以存储0.8秒的16-bit三轴加速度数据,只要RSL10的唤醒周期小于这个时间即可保证不丢失数据。本设计中,无线传感单元的RSL10主要工作在Sleep模式,也就是将它在不需要工作的时候的电流降到最低。通过RTC定时唤醒进行传感器数据访问和BLE操作,定时器的设置由BLE SDK函数自动完成,软件不直接干预,仅仅是读取了RTC的计数器值用于软件计时(因为没有硬件日历时钟功能)。

  通过功耗优化处理,无线传感单元的持续工作平均电流大约是30微安(包括KX023的工作电流11微安左右,包括COIN板上的温度传感器吃掉2微安)。BLE广播模式下平均电流比连接状态下稍小一些,是无线部分工作时间减少所致。
  在对BLE无线终端进行功耗优化时遇到障碍,因为RSL10若即使用到Standby模式,连接成功后却无法正常通信。最后只让其在普通模式下工作,RSL10有700~800微安的工作电流。不过无线终端是用户界面,不用一直开机。

 

四、作品源码

  如论坛帖子附件上传。
  从机和主机程序分别在SDK的 peripheral_server_sleep 和 central_client_uart两个例子的基础上进行开发。程序框架没有改变,都是基于Event Kernel 消息驱动的。
  代码使用GNU Makefile 进行工程组织,使用arm-none-eabi-gcc工具链进行编译。无线传感单元和BLE终端机的代码目录分别在home_mon和central子目录下。

 

五、作品功能演示视频

上传至 EE 大学堂:  https://training.eeworld.com.cn/course/6120

  用贴在门后的加速度传感单元(RSL10+KX023)检测振动和运动,实现开门和敲门的事件检测,并通过BLE与终端机进行信息交互,在手持终端机上实现日志查看。
  手持终端机也是RSL10实现的。开机后自动扫描目标设备并连接,连接后获取设备的时间日期信息(此时可以修改),然后进入日志界面。
  视频中第一次敲门没有检测成功。

 

六、项目总结

  这个项目终于草草地收尾了——实在时间来不及完善了。本来计划了无线门铃的功能,PCB上都安排了蜂鸣器,没来得及软件里把功能做进去。虽然比起初的时间表延长了两周时间,没料到后面做LCD 界面功能做到了最后一刻。
  RSL10 BLE部分上手挺不容易的,前期就因为程序结构没有看懂,拖了进度。这部分文档缺少了,虽然我曾写过BLE应用的程序,也没有理解那么透,就捉襟见肘了。

  帖子分享汇总:

敲门事件和开门动作的检测

https://bbs.eeworld.com.cn/thread-1171117-1-1.html

RSL10的I2C操作与KX023加速度测量数据读取

https://bbs.eeworld.com.cn/thread-1170822-1-1.html

RSL10的低功耗模式

https://bbs.eeworld.com.cn/thread-1170349-1-1.html

关于RSL10 SDK中Event Kernel部分的代码分析(下)

https://bbs.eeworld.com.cn/thread-1168940-1-1.html

关于RSL10 SDK中Event Kernel部分的代码分析(上)

https://bbs.eeworld.com.cn/thread-1168457-1-1.html

SDK BLE范例工程的命令行编译(HeartRate设备)

https://bbs.eeworld.com.cn/thread-1164617-1-1.html

SDK范例工程的命令行编译(blinky) 

https://bbs.eeworld.com.cn/thread-1164611-1-1.html

RSL10的片上内存资源

https://bbs.eeworld.com.cn/thread-1164147-1-1.html

RSL10开发板电路概览

https://bbs.eeworld.com.cn/thread-1163113-1-1.html

 

七、其他

 

 

rsl10_cruelfox.zip

1.24 MB, 下载次数: 7

cruelfox_rsl10.doc

1.1 MB, 下载次数: 3

最新回复

家门电子项目很实用,虽然没完全实现无线门铃的功能,项目的设计过程资料很值得学习,收藏了   详情 回复 发表于 2021-7-19 14:15
点赞 关注
 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

家门电子项目很实用,虽然没完全实现无线门铃的功能,项目的设计过程资料很值得学习,收藏了

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表