基于Arduino的自适应助眠系统设计

2021-05-24 10:34陶恒屹汤志曹
物联网技术 2021年5期
关键词:智能家居远程传感器

陶恒屹,汤志曹,车 行

(四川大学,四川 成都 610207)

0 引 言

如果每天按睡眠8 h计算,那么人的一生有1/3的时间是在睡眠中度过的。睡眠质量的好坏与人的心理和身体健康息息相关,而影响睡眠质量的重要因素之一就是睡眠环境。随着物联网技术的迅猛发展,带动了传感器网络和智能家居的快速发展[1]。智能家居基于物联网等技术,对家居环境内的家电控制、环境监控、信息处理、娱乐等功能进行集成化管理[2],已成为人、物、环境之间互联互通的重要表现[3]。现有与睡眠相关的物联网产品几乎均只能对睡眠质量进行监测,仅由传感器采集睡眠数据,虽然可以得到睡眠质量的数据,但对改善睡眠质量并无裨益。因此依托智能家居的助眠系统便应运而生。

本文系统以改善睡眠质量为突破点,借助传感器网络进行数据采集,通过手机端程序进行数据分析,并经由Arduino实现对智能家居的控制,实时自适应调节睡眠环境,以达到改善睡眠质量的目的。

1 系统整体架构

基于健康行为学理论,并查阅相关文献[4]对影响用户睡眠质量的影响因子进行调查研究,并将其结果转化为计算机可以处理的数据。

系统架构如图1所示,主要包括如下几方面。

图1 系统架构

(1)监测系统:运用传感器网络对睡眠环境(例如环境光、温湿度、气压等)进行实时监测,并通过WiFi模块将数据上传至小程序端。

(2)矫正系统:程序端接收到监测系统传来的数据之后,通过Arduino控制智能家居(米家),对用户睡眠环境中偏离正常值的环境因子进行矫正。

(3)反馈系统:通过手机内置的陀螺仪对用户睡眠状态进行检测[5],并作为反馈因子作用于前述矫正系统,实现系统的自适应调节。

2 系统硬件设计

2.1 传感器网络

2.1.1 BMP180气压传感器

BMP180是一款高精度、小体积、超低能耗的气压传感器[6],其工作电压为1.8~3.6 V,典型工作电压为2.5 V,内部包含电阻式压力传感器、A/D转换器和控制单元,其中,控制单元包括E2PROM和I2C接口。读取BMP180时会直接传送没有经过补偿的温度值和压力值,而在E2PROM中则储存了176位单独的校准数据,这些数据将对读取的温度压力值进行补偿,176位的E2PROM被划分为11个字,每个字16位,这样就包含有11个校准系数,每个器件模块都有自己单独的校准系数,在每一次计算温度、压力数据之前,单片机先读出E2PROM中这些校准数据,然后再开始采集温度数据和压力数据。

2.1.2 DHT11温湿度传感器

DHT11是一款有已校准数字信号输出的温湿度传感器[7],尺寸为28 mm×12 mm×7.2 mm,其湿度精度为±5 %RH,温度精度为±2 ℃,湿度量程为20 %RH~90 %RH,温度量程为0~50 ℃,它的数据端口带上拉电阻,连线长度小于20 m时使用5 kΩ的上拉电阻,采用3.3 V供电时连线长度不得大于1 m,必要时在VCC和GND间连接一个0.1 μF的电容用于去耦滤波。

2.1.3 HC-SR04超声波测距模块

HC-SR04超声波测距模块提供了2~400 cm的非接触式距离,性能稳定、测量精度高[8]。HC-SR04需要提供一个10 μs以上的脉冲触发信号来激活模块进入工作状态,进入工作状态后,模块内部发出8个40 kHz周期电平并检测回波,当检测到有回波信号时输出回响信号,回响信号脉冲宽度与所测距离呈线性相关,为了防止发射信号对回响信号的干扰,触发信号周期取60 ms以上。

2.1.4 WiFi模块

WiFi模块保持了ESP-12F的优势。ESP-12F使用的PCB板层为四层,使用上更加稳定,创乐博公司对其进行升级,增加了WiFi模式和远程模式。WiFi模式下该模块产生一个局域网,手机在同一个局域网内控制该模块;而远程模式下只需要模块接入本地的WiFi,理论上就可以实现手机APP远程控制该模块。

2.1.5 雨滴传感器

雨滴传感器是一个模拟/数字输入模块,也叫雨水、雨量传感器,常用于农业[9]检测是否下雨及雨量的大小,转成数字信号(DO)和模拟信号(AO)输出,AO模拟输出可以连接单片机的模拟I/O口,检测滴在上面的雨量大小。DO数字输出可以连接单片机的数字I/O口,检测是否有雨。

2.1.6 光敏传感器

光敏传感器是对外界光信号或光辐射有响应或转换功能的敏感装置。光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。

2.2 效应器网络

考虑到可靠性和成本,本文选择米家效应器[10]。米家基于家庭网关和系统软件建立智能家居平台[11],在测试中表现优异。但由于米家暂时不支持个人开发者接入,因此本文选择点灯科技的Blinker库作为中继站,接入小爱音响,进而接入米家智能家居系统,小程序通过前述传感器网络的数据智能调度米家设备,实现环境调节。

3 系统软件设计

助眠系统通过Arduino IDE集成环境完成对睡眠环境数据的采集和处理,系统工作流程如图2所示。系统工作步骤具体如下:将WiFi模块和传感器接入Arduino开发板之后,各个模块开始初始化并准备接受Arduino IDE信号输入;Arduino IDE信号经过串口指令发送给Arduino开发板和各个模块;手机通过APP输出规定标准广播信号,WiFi模块识别信号并开始执行操作;各个传感器传回检测到的睡眠环境变化数据。

图2 系统工作流程

3.1 WiFi模块和手机连接

综合性能和成本,本项目最终采取创乐博公司提供的通信解决方案。通信方案有局域网和远程模式两种连接方式,由于本系统要求持久的信号连接且信号控制的范围较大,因此选择远程模式。在连接远程模式之前,先要将WiFi模块的开关拨到局域网模式,等待WiFi模块上的指示灯长亮,说明已产生热点信息,通过手机搜索热点,再将WiFi模块的开关拨到远程模式,指示灯快速闪烁说明正在配对,输入WiFi密码和模块密码之后,控制手机产生一个广播信号,当WiFi模块指示灯的闪烁频率变慢,说明连接成功。

3.2 手机和各个模块传输通信

手机发送的信息由WiFi模块识别,而WiFi模块和手机的通信满足规定的格式化输出,在该格式化的规划内实现自由通信。

远程控制RGB灯的输出输入格式如图3所示。

图3 远程控制RGB灯的输出输入格式

在图3中:设备发送的数据以“#”结尾;手机发送的数据以“^”结尾;“$”符号后为模块的名称;RGB代表红、绿、蓝三通道的颜色占比;Arduino开发板读取到WiFi模块中的数据之后,会控制I/O输出,最终控制RGB灯不同颜色的变化。

经测试,传感器模块数据可以上传到手机APP中保存,存储于数据库中方便后续分析和数据处理。

3.3 可视化界面的使用

在程序端输入设备ID,即WiFi模块密码,便可进入后台数据界面。在界面上可以发送手机信号,显示采集的传感器参数,方便用户查看睡眠环境的参数,同时也有利于程序迭代。远程温湿度采集与曲线的可视化界面如图4所示。

图4 远程温湿度采集与曲线的可视化界面

3.4 系统测试

各个传感器模块均搭建完成并经过多次的环境测试和数据采集后,与集成度较高的小米传感器相比,该系统传感器对室内环境变化响应快,数据和米家传感器一致,同时,可视化界面的数据样本采集快、显示迅速,APP运行稳定,该系统可以满足用户的长期使用需求,未出现不良记录的现象。所有数据均存储于本地服务器后台,供后期分析睡眠质量的影响因素,为改善睡眠环境提供建议,以达到改善用户睡眠质量的目的。

同时,考虑到心理因素对于睡眠质量的影响(例如工作压力)[12],在程序端加入了白噪音,通过舒缓的音乐引导用户减轻压力,提高睡眠质量。

4 结 语

本文采用Arduino开发板、WiFi模块和手机端程序设计了高效率、低成本、高可靠性、高精度的自适应助眠系统。经一定规模样本测试后证明,本文所设计系统可以在一般环境中正常运行,并能起到较好的助眠效果。

猜你喜欢
智能家居远程传感器
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
远程诈骗
基于Zigbee的无线通信技术在智能家居中的应用
基于LD3320的智能家居控制
一次神奇的远程渗透破袭战