白 娜,李文举,任少丙
(哈尔滨石油学院,黑龙江 哈尔滨 150027)
随着人们生活水平的提高,越来越多的人开始关注睡眠健康。 通过新兴物联网思维帮助人们解决睡眠质量问题,对人们的睡眠过程进行数据监测,并且通过科学的数据分析,为人们提供睡眠健康指导分析是非常有必要的。 本文提出的基于单片机的智能睡眠监测系统是利用传感器对睡眠过程中的5 种数据进行实时监测和统计,再通过数据整合后,上传至服务器,经过数据分析与数据转发后,通过移动终端App 向人们传达睡眠过程分析结果,帮助人们及时关注自己的睡眠情况,通过分析结果,判断是否出现睡眠障碍问题,并以此来帮助改善睡眠[1-3]。
本设计提出的基于单片机的智能睡眠监测系统主要由硬件端睡眠数据监测部分、云服务端数据处理部分和移动App 终端三大部分组成。
本文提出了一种结合非接触式和接触式监测两者优点的新型智能睡眠监测系统。 通过搭载少量的接触式传感器对被监测者心率、心电图、血氧浓度信息进行监测。 同时,搭载声音传感器、压力薄膜传感器对被监测者的鼾声、体动进行监测,丰富睡眠数据的可靠性,以实现更为精准的睡眠信息分析。 系统框如图1所示。
图1 系统框
1.2.1 睡眠数据实时监测功能
本系统主要利用物联网技术、传感器技术对睡眠相关数据进行实时监控。 通过单片机控制心率脉搏传感器、心电图传感器、声音传感器、压电薄膜传感器、血氧浓度传感器,对被监测对象的心率、心电图、鼾声、体动、血氧浓度数据进行实时监测,并利用无线传输模块将监测数据实时上传至云服务器做进一步的分析处理,以实现帮助人们对睡眠过程中的相关情况进行监控[4-7]。
1.2.2 睡眠异常预警功能
若在对睡眠监测对象进行数据监控的过程中,检测到血氧浓度变化异常,代表病患呼吸不畅,同时结合其他传感器监测数据对病患的鼾声频率、心率变化、心电图数据进行分析,以判断监控对象出现间歇性呼吸综合征、阻塞性呼吸暂停等健康问题。 如果发现异常情况时,会通过手机App 发送报警信息,提醒监护人及时对睡眠监测对象进行看护,以避免危险情况的产生。异常数据也会实时记录在云服务器中,用户通过手机App 就可以查看历史异常信息。 同时,本系统云服务端通过数据接口进行数据交互,可以与其他监管平台进行数据对接,以实现更为丰富的功能[8]。
1.2.3 睡眠数据分析和远程监控功能
考虑到整个系统在运行过程中不能对被监测对象的睡眠过程产生干扰,所以本设计通过搭建服务器和移动端App,实现了远程监控功能。 当硬件设备检测到睡眠数据后,会通过无线传输模块将数据上传到服务器,服务器会进行数据转发,移动端App 可以随时查询当前睡眠监测数据。 如果发现被检测对象出现异常信息,App 会立即生成异常通知,提醒监护人进行查看。 被监测对象睡醒后也可以通过App 查询历史睡眠信息,查看分析结果和健康建议[9-11]。
系统采集到的睡眠监测数据利用无线传输模块实时上传至云服务器。 云服务器中的数据分析接口会针对不同传感器监测的数据进行睡眠数据处理。 系统主要通过鼾声分析、体动分析、心电图分析、血氧浓度分析过程实现睡眠质量分析。
本课题硬件系统电路结构包括核心D1 WiFi 模块、无线网络模块、薄膜微动传感器、声音检测传感器、心电图传感器、血氧浓度传感器、心率脉搏传感器等,通过这些传感器模块实现对睡眠信息进行监测的功能。 硬件系统电路,如图2 所示。
图2 硬件系统电路
D1 WiFi 是一种新兴的开发平台,D1 WiFi 板载ESP8266 无线传输模块。 用户只需要调用ESP8266的WiFiMulti.h 库和HTTPClient.h 库,创建WiFi 连接和HTTP 无线网络通信,实现无线网络连接和数据传输功能。 D1 WiFi 的核心控制器为ATmega328 处理芯片,其属于8 位处理器,拥有32 kB 的闪存和读写能力,具有多种开放功能。 其带有5 个模拟信号引脚、15 个数字信号引脚和多个供电引脚,可以完成对传感器的控制。 数字信号引脚中带有两组I2C 引脚,即D4、D5 和D14、D15 引脚,通过SDA 数据线和SCL时钟线路构成串行总线,对每一个连接到总线的设备定义唯一地址,可以完成多组传感器数据识别而且相互间互不干扰。
MAX30102 血氧浓度传感器的额定供电电压为3.3~5.0 V,可以直接利用D1 WiFi 板载供电,通过检测探头直接接触人体指尖、手掌、耳垂、腕部和胸口的皮肤就可以快速识别人体的心率及血氧浓度信息。 此传感器采用IIC 通信,需将其SCL、SDA 引脚分别接入主控模块D13、D14 引脚。
PulseSensor 脉搏心率传感器封装体积小、结构简单,主要由光电模块和滤波电路构成。 整个传感器搭载3 个外部引脚,分别为模拟数据输出、电源正、负极。3 个外部引脚分别接D5 引脚和电源正负极。 连接建立后,传感器会通过模拟信号引脚输出采集到的心率模拟值。
为了检测睡眠中人的心电数据变化,以实现数据全方位检测,本设计加入了HL8059 心电图传感器。HL8059 传感器可以控制外部分布的检测电极,实现对运动生物个体心电变化数据的实时检测、信号滤波、信号放大功能,同时板载A/D 转换电路,其功耗低、工作状态稳定,有较好的生物电信号检测效果。
为实现对被检测对象睡眠过程中体动数据的检测,本设计加入薄膜微动传感器。 当传感器感知到外界压力时,传感器电阻值发生变化,采用电路将传感器感知压力变化的压力信号转换成相应变化强度的电信号输出。 这样通过检测电信号变化就可以得到被监测对象的体动变化情况。
本系统搭载的声音检测传感器主要用于检测睡眠环境中的鼾声信息。 此传感器基于LM2904 放大器和内置的麦克风,它可以从麦克风中接收到高频信号并且进行放大和滤波处理,并输出正包络。 此传感器输出值取决于声音输入的电平高低,输入信号会经过两次滤波来避免不必要的信号干扰。
硬件设备开始运行,系统进行初始化,同时获取WiFi 连接,传感器组开始对睡眠监测数据进行采集,若成功检测到睡眠数据,D1 WiFi 模块对数据进行收集、格式化操作,控制无线传输模块通过WiFi 与云服务器建立无线通信;若成功接收到云服务器返回的创建成功Message 信息,D1 WiFi 模块将格式化后的数据通过WebSocket 数据传输协议上传至云服务端进一步处理。
本设计选择FLASK 框架来实现所有的Web 功能和数据处理过程。 所有接口用到的模块安装完成后,可以试编译,编译无问题后,开始对整个后端接口进行编写。 后端接口采用MVC 设计模式,将model 数据类表、view 视图逻辑和controller 控制层分开,消除各模块之间的耦合度。 首先在model.py 模块编写数据表结构,然后在view.py 中编写核心控制逻辑,最后将view功能函数映射到urls.py 中,将接口实例化,最后配置main 方法后编译运行,通过接口管理工具就可以用url链接访问接口,实现数据交互。 硬件系统实时上传的数据会经过数据解析、数据验证,经过匹配算法分析后,将结果数据和原数据按照时间戳的顺序存入数据库中。
图3 主程序流程
App 主要利用Hybrid 开发框架搭建。 当用户使用App 时,App 会首先向云服务器FLASK 服务接口发送数据请求,创建长连接,并且接收服务接口返回的睡眠数据,经过JSON 解析后,通过setView 函数向VIEW 页面的Layout中渲染数据,最终完成整个移动端App 的设计。
本系统是基于单片机的智能睡眠监测系统利用D1WiFi 模块控制血氧浓度、脉搏心率、心电图、声音,对被监测者的血氧浓度、心率、体动、鼾声、心电图进行实时监测,同时检测数据会通过无线网络上传至云服务器。 系统通过数据接口接收、解析、处理、存储硬件系统检测的睡眠监测数据。 本设计开发了移动端App,利用App 就可以远程查看被监测者的实时睡眠状态。 如果系统检测到异常信息时,App 也会及时发送报警信息,提醒监护人及时照顾被监测者,因此本系统可应用于养老院、卧床患者的睡眠监控。 用户本人也可以通过App 查看历史睡眠分析结果。