很久不分享手搓党作品拉!
今天分享一个“基于毫米波雷达的睡眠监测仪”作品!
用Air700E开发板+毫米波雷达,手搓一个开箱即用的睡眠监测仪,不花冤枉钱!
来仔细瞧瞧!
一、项目原理及硬件制作
毫米波是指频率范围从30-300GHz的电磁波,它的波长很短,雷达发射的毫米波会随人体反射回来,同时人体微小的移动会改变毫米波。有了这些变化,雷达可以计算出人体移动的距离速度以及方向。
- 项目原理 -
毫米波雷达测人体胸腔起伏,根据起伏计算心率和呼吸频率,然后通过算法推算睡眠状态,使用手机小程序读取和展示数据。
相比市面上的手环,毫米波雷达无需佩戴即可实现无感体验的隐形监测。
- 主要物料 -
本文睡眠监测仪主要硬件物料包含:毫米波雷达R60ABD1、合宙Air700E开发板、传感器(AHT20、BH1750等等)、底板和外壳。除了底板需要打板和外壳需要3D打印,其他零件都可以在网上购买组装。
01. 毫米波雷达R60ABD1:
常见的毫米波雷达有24/60/77GHz三种,原理上频率越高,雷达感知的微动幅度越小。这款60GHz自带睡眠监测功能的毫米波雷达,它很接近我的想法。
02. 合宙Air700E开发板:
按照以往经验,睡眠监测仪最简单直接的做法是,找一块开发板连上雷达串口,将雷达数据通过蓝牙转发出去,客户端通过蓝牙读取雷达数据,然后展示出来。
但为了让家里的老人也能用,我打算加上远程看护的功能,所以这里要改用可以Wi-Fi或者4G通信的开发板,还要部署一套存放和查询数据的后端服务。
虽然我对开发板选型没有任何偏好,但觉得有必要把吃灰的羊毛利用起来——以前入手的合宙Air700E开发板不仅性价比高,而且可以用Lua写嵌入式,特别适合。
03. 自制底板(可选):
自制的底板用于整合Air700E开发板、毫米波雷达R60ABD1和其他传感器(AHT20、BH1750等等)。
所以其实即使没有底板,用杜邦线连接它们,然后刷入固件,也可以在小程序验证毫米波雷达的睡眠监测能力。不过为了避免验证过程中发生各种问题,我还是建议用底板验证。
04. 自制外壳(可选):
设计外壳时,要注意到雷达的距离最好是半波长的整数倍;加上USB口和按键,硬件图形就出来了。为了方便调试,外壳保留了开发板上的开机键和关机键。
- 硬件组装 -
拿到板子开始组装,先焊接元器件和Air700E开发板,再装雷达。可以看到堆叠后雷达和Air700E开发板还有一点点距离,雷达性能应该不会有太大影响。
安装外壳也是很简单,几乎不可能犯错。上好螺丝之后,测试一下按键有没有问题,到这里硬件算是完成了。
- 开源链接 -
目前基于毫米波雷达的睡眠监测仪项目硬件,已在立创平台开源。可通过原工程链接获取项目相关详细操作步骤、注意事项,以及原理图、PCB等最新文件:
原工程链接:
https://oshwhub.com/zomco/MR60LT0
开源协议:
CERN Open Hardware License
二、功能实现及效果测试
- 功能实现 -
项目代码嵌入式部分,我直接用合宙官方的模板工程。删掉不需要的代码,加上雷达串口通讯相关代码。雷达协议并不复杂,心率、呼吸频率、体动是实时上报的,所以比较好调试。而睡眠数据每10分钟才上报一次,调试会比较困难。
后端部分主要分三块:
-
从雷达拿数据存到数据库
-
提供历史数据查询接口
-
提供实时数据查询接口
对接雷达的部分会麻烦一些,其他都是很简单的增删查改。
前端部分我直接参考小米运动的设计,除了要有查看历史数据和实时数据的页面,还需要有调整雷达和绑定雷达的入口。到这里软件也好了,可以测试一下效果。
- 效果测试 -
01. 绑定设备:
插卡开机,等待指示灯常绿。长按绑定键,雷达进入绑定状态;然后打开小程序OWR Care,扫描开发板表面的二维码,等待绑定完成。调整雷达位置,确保雷达距离合适。
02. 心率测试:
我们先看看实时数据,心率测试结果和手环的有一些偏差,但也不是太离谱:
03. 睡眠测试:
睡眠数据要等睡醒才会有,而且雷达只能做单人睡眠监测。但我没有这样的测试条件,这里只好先给出双人监测测试结果,最后我测了三组数据:
有几个地方需要注意:
首先因为睡眠数据的上报,频率是10分钟一次,所以雷达计算睡眠时长最小单位是10分钟。
其次,手环可以测出快速眼动期时长,雷达则不能;雷达会计算清醒时长而手环就没有。最后我无法确认手环和雷达对睡眠状态定义是否一致,也无法得知他们的结果是否能反映实际情况。
但至少从三组数据可以看出,手环和雷达测得的睡眠时长,总体上接近实际时长。第三组数据偏差较大,估计在双人监测场景,雷达无法区分哪个人先睡或者先醒,直接将睡眠时长叠加计算了。
考虑到项目定位不是医疗器械,我觉得这种偏差是可以接受的,使用几天整体感受也是很好。
- 待改进完善 -
指示灯太亮:
挂在床头就有点光污染,不过可以将外壳做厚避免透光,但我估计会影响雷达性能。当然,最好的办法是换其他材质的外壳。
雷达自身算法也可以再优化一下:
实测发现,有吹风干扰的时候,雷达会误判有人在睡觉,或者雷达安装角度不够,有时候会没有数据,不知道厂商那边有没有升级计划。
总体上看,个人认为雷达使用体验比手环好多了,它更符合用户长期使用的习惯,要回查睡眠数据也是很方便。如果你也对毫米波雷达睡眠监测仪感兴趣,不妨自己试试DIY~