基于物联网的家居睡眠环境监测系统设计与实现
2018-11-28蒋秀林朱文婕
谢 静,蒋秀林,朱文婕
蚌埠医学院公共基础学院,蚌埠,233030
1 引言
随着生活水平的提高,人们越来越重视自己的身体健康,家居环境监测正越来越多地受到人们的关注。物联网( Internet of things,IOT) 是将识别感知技术、数据通信技术和信息处理技术高度融合的新一代信息技术,在环境监测领域[1-3]和智慧医疗领域[4,5]有着广泛的应用。
睡眠环境是保证睡眠能够正常进行的外部条件,良好的睡眠环境,是健康睡眠的重要保障。睡眠养生学强调应以人为本,人应与睡眠环境相协调,并提倡睡眠应有舒适的卧具、枕具等,从而使人能够在适合的睡眠环境中获得良好的睡眠[6]。本文设计并实现了基于物联网的家居睡眠环境监测系统,利用物联网的感知技术采集睡眠环境数据;利用物联网的数据通信技术将数据上传至云服务器;用户通过手机APP可随时查看睡眠环境数据。该系统通过对睡眠环境的监测研究,对比分析影响睡眠的环境因素,帮助用户了解哪些环境因素会对自身的睡眠产生影响以及对这些因素的敏感程度如何。基于此,一方面,用户可以通过调节控制敏感因素,使其处于可以接受范围,减少对自身睡眠的影响;另一方面,通过观察对影响因素的敏感程度,对自身的睡眠情况有更深入的了解。
2 睡眠环境监测系统的设计与实现
2.1 系统总体设计
本文设计的睡眠环境监测系统主要针对家庭用户。本系统根据家庭睡眠环境需要设计需求分析。系统整体结构由数据采集终端节点、ZigBee协调器、家庭网关、服务器、Android手机终端模块组成。系统工作流程如下:将传感器接在ZigBee终端节点上,将终端节点放在睡眠环境中合适的位置,ZigBee协调器通过USB线与家庭网关相连;协调器创建网络并等待终端节点的加入;终端节点加入网络,此时ZigBee网络搭建完成。在此系统中,终端节点定时将传感器采集的数据发送给ZigBee协调器,协调器将收到的数据以数据包的形式发给家庭网关处理;
家庭网关再将数据通过Internet 网络上传至云服务器中的数据库;最后,手机APP 应用通过http 协议与阿里云服务器通信,发送请求并将接受来自云服务器发送的数据进行实时显示。
系统总体设计如图1所示。
图1 系统总体结构图
2.2 系统硬件部分设计
系统硬件部分主要由终端节点层、ZigBee模块和家庭网关构成。
(1)终端节点层
终端节点层即信息采集层,主要负责向协调器发送传感器采集来的各种信息。该层由多个终端节点组成,微处理器与无线传输模块是终端节点的核心部分。本设计采用的微处理器是ST公司的STM32F103C8处理器,该处理器的核心是cortex-M3处理器,拥有32位CPU,采用并行总线结构,并嵌套中断向量控制单元,调试系统及标准的存储映射。支持ZigBee协议并自带ADC转换通道,为无线数据采集设备提供了完整的解决方案;支持多种工作模式,可有效降低功耗,延长电池的使用寿命。终端节点层的另一重要组成部分是传感器。传感器将采集到的非电量信息,如温度、湿度等转换成电量,再通过A/D转换为数字量[7]。
本系统用来采集温、湿度的传感器为DHT11,该传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,采用专用的数字模块采集技术和温、湿度传感技术,以确保产品的可靠性和稳定性。设计采用STM32的PB10与DHT11的pin2引脚连接用于数据的通信与同步。
系统采用BH1750采集光照强度。BH1750是一种数字型光强度传感器集成电路,其内置一个接近人眼反应的光敏二极管,具有接近视觉灵敏度的光谱特性,可探测大范围的光强度变化。设计采用STM32的PA6与BH170的pin4连接用于传输命令与数据,STM32的PA7和BH170的pin6引脚连接用于时钟同步。
系统采用MP-135作为空气质量传感器。当该传感器所处环境中存在污染气体时,气敏电阻的阻值随空气中污染气体浓度的升高而减小。设计将MP-135的输出信号通过两个10 kΩ的电阻分压后与STM32的PA4口连接,以将气体浓度变化产生的模拟量输入STM32中。
(2)ZigBee模块
因家居环境传输距离的要求比较低,并且环境监测系统的各个节点需要传输的数据量不大,因此采用具有低功耗,低成本,可靠性高,可自组网等特点的ZigBee技术来组建无线室内网络。系统采用Zigbee 无线传输网络代替有线通信方式,布线简单且无须进行太多线路变动,可以有效解决线路改造时重新布线的问题。
此环境监测系统由若干个普通的终端节点和一个协调器节点组成。该协调器与所有终端节点组成了一个星形的无线传感器网络。无线传感网络中的每个终端节点可与协调器进行通信。协调器节点负责接收终端传来的数据,并将数据传给家庭网关。协调器节点的核心组成部分包括微控制器和无线收发模块。本设计的微控制器采用TI公司的CC2530芯片,该芯片能够以非常低的成本建立功能强大的网络节点,并结合了增强型的8051 CPU,具有8KB RAM,提供4个可选闪存版本,有21个数字输入/输出引脚,且具有不同的运行模式,非常适合低功耗、低传输速率的系统。
(3)家庭网关模块
家庭网关作为系统信息的处理和数据存储中心,是整个系统的核心。目前,嵌入式技术发展迅速,嵌入式系统的优点逐渐凸显出来,嵌入式处理器的芯片更新换代频繁,嵌入式处理器的性能越来越强。本系统的家庭网关采用了三星公司的型号为的s3c6410的arm芯片。其价格低廉,性能优越,功耗低,成本低,体积小,相比于以往的通用计算机有着独特的优势。系统选择以太网的入网方式。
2.3 系统软件部分设计
系统软件部分主要由ZigBee协调器模块、数据库模块和Android客户端模块组成。
(1)ZigBee协调器设计
ZigBee协调器主要负责无线网络的组建和信息的收发。首先上电进行系统初始化,初始化完成后ZigBee协调器搜索附近有无入网需求的终端节点,若有终端节点则将该节点地址(每个终端节点都有一个唯一并且固定的节点地址)加入已联网的地址表中,即组建ZigBee网络,然后,协调器将更新的地址表发送给服务器,无线网络组建成功。此后,该程序会一直监听是否有入网请求的终端节点。一旦检测到有入网需求的合法节点时,协调器会将该节点加入该网络。图2为协调器组网流程图。当ZigBee网络组建成功后,软件就会分别对ZigBee和串口进行监听。终端节点的数据通过ZigBee传送至协调器,协调器再将数据由串口上传给家庭网关。而家庭网关的控制命令将通过串口传至协调器,协调器将数据经由ZigBee发送给指定的终端节点。
图2 ZigBee程序流程图
(2)数据库设计
因家庭睡眠环境监测系统采集到的数据量不大,故采用MySQL数据库来存储。数据库中主要存储的数据表有:用户信息表、传感器数据表和已采集数据表。用户信息表主要用来存储用户的注册信息,如用户名、密码等;传感器数据表用来存储从无线传感器采集到的各种数据及时间信息,如表2所示;已采集数据表用来存储按照日期采集的信息表,如表3所示。为方便使用,本系统采用阿里服务器作为云服务器,在云服务器上部署代码就可以与Android客户端通信,数据传输采用json数据格式,服务器每60秒自动读取数据库中的数据。
表1 用户数据表
表2 传感器数据表
表3 已采集数据表
服务器每天都会以当日的时间为表名新建一个表,即在已采集数据表中创建一个新表。如表2中所示,采集到一号节点的温度为22 ℃,序列号是用来做表的关键字。通过已采集数据表,可以很方便地查询某天的环境数据。
(3)Android客户端设计
Android客户端的设计是方便用户实时查看睡眠环境的各个数据,以便更好地了解自身所处的环境并对环境做出适当的调节。
本设计中Android客户端软件的界面设计思路如下:
首先在登录界面登录(图3),输入正确的用户名和密码后,就会跳转到初始主界面。初始主界面提供当前数据显示和历史数据查询功能。在这个界面上可以直接看到当前数据和查询历史数据。初始主界面跟其他所有的界面都可以互相跳转。
图3 登录界面
系统软件的开始界面即为登录界面,用户需要在界面中输入用户名和密码,经过系统验证后界面才会跳转,第一次使用还需要进行注册。然后点击登录按钮,手机将用户名与密码通过4G/Wi-Fi 网络发送到服务器,等待反馈,验证成功后即进入到操作界面初始界面。图3为登录界面。
用户登录成功后进入主界面,智能控制终端应用APP对数据库进行访问,对文件是否存在进行判断,若文件不存在则提示无相应数据。若文件已经存储在数据库中,则将实时数据显示在用户主界面上,如图4所示。
图4 实时数据显示
3 系统测试
该睡眠监测系统的意义就在于为用户提供一份直观的睡眠环境数据,用户可结合自身的睡眠质量和睡眠环境数据作对比分析,以找到最佳的睡眠环境。系统软硬件调试完毕后,可在PC机及手机APP上实时显示监测的环境数据。如图5所示为pc上监测的温、数据。
图5 串口测试1
图6为光照强度数据。图6为手机APP显示的实时环境数据。
图6 串口测试2
4 结 语
本系统监测睡眠环境信息,一方面将这些数据实时的传送给服务器,方便用户实时查看睡眠环境的具体数值信息;另一方面,用户可以根据一段时间的环境信息和睡眠质量进行统计分析,找出最佳的睡眠环境。该系统运用目前较为流行的Android平台作为客户端开发平台,使用云服务器作为客户端和数据库之间的纽带,系统具有实用性和先进性,不仅具有良好的交互性,而且功耗低、实时性好,便于扩充。