基于物联网的病房环境监测系统设计与实现

2021-11-09 13:10李国利邹惟清王昊宇
科技创新与应用 2021年31期
关键词:光照度环境参数温湿度

姚 科,李国利,邹惟清,王昊宇

(金陵科技学院 机电工程学院,江苏 南京211169)

病房的环境直接影响病人的睡眠质量和心理状态,间接决定病人的康复速度,对病房环境的远程监测为管理病房环境提供很大的便利。研究病房环境采集、远程监测病房环境系统具有重要的意义。远程环境的监测实时体现病房的环境质量。随着物联网技术的日趋成熟,物联网已被广泛应用在医疗、交通与物流、能源与公用事业、零售业等领域。物联网传感节点作为物联网和物理世界的交互节点,负责信息的采集和简单处理,与将数据传输到应用层进行数据分析和处理。物联网技术通过多样的数据采集传感器,采集所需的信息数据,并按照一定的数据传输协议实现物与物、物与人之间的连接。由于物联网设备的存储、计算能力和网络带宽往往有限,采用HTTP协议作为应用层通信协议存在时效性差、传输效率低、功耗大等问题,因此设计一种可以在硬件性能不佳、网络状况糟糕的病房环境使用的监测系统显得十分重要。本系统采用轻量级传输协议MQTT消息队列遥测传输协议作为本项目的物联网传输协议。MQTT协议针对低带宽网络和低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。本文设计了采集病房环境参数并上传至服务器,远程实时监测环境变化方案,并制作实物对需求和目的进行验证和调试。

1 系统硬件布局设计

本文基于ESP8266 WiFi模块、STM32系列MCU和MQTT协议设计了一种环境监测控制系统,环境采集传感器由温湿度传感器DHT11和光照度传感器BH1750组成,实现温湿度和光照度的采集;数据处理模块采用STM32的主控芯片实现传感数据的接收、存储、分析和显示,将处理完的数据以串口的形式发送给ESP-01物联网模块,由ESP-01将数据上传至服务器;阿里云ECS云服务器平台作为MQTT消息代理,负责主题订阅管理、消息转发和缓冲,实现传感节点与数据采集中心的信息交互。数据上传模块与阿里云ECS云服务器的交互数据类型为JSON格式。用户端通过基于TCP的MQTT协议订阅设备上行数据主题获取数据,并下发命令至服务器,ESP-01订阅下行命令主题并接收下行命令,以串口的方式发送至数据处理模块,由数据处理模块处理成控制信号用于控制下端设备。

MQTT通信协议是一种基于发布/订阅式的消息协议。协议定义了发布服务器和客户端两个对象,作为整个通信系统网络核心的发布服务器,可以连接多个客户端。系统硬件布局图如图1所示,系统硬件原理图如图2所示。

图1 系统硬件布局图

图2 系统硬件原理图

1.1 环境数据采集硬件系统设计

DHT11是一款单总线输出数字信号的温湿度传感器。其内部包括电阻式感湿元件和NTC测温元件。DHT11通过单线制串行接口与MCU传输信号,使系统集成变得简易快捷。它体积小、功耗极低、相对温湿度一体式测量,使其成为该类传感器在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。

GY-302是基于I2C总线通信的数字型光强度传感器集成电路,采集光照强度采用BH1750FVI芯片。BH1750的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。

模块输出的电信号是由光敏二极管通过光生伏特效应将输入光信号转换成的,再将电信号通过运算放大器放大,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中。进入光窗的光越强,光电流越大,电压就越大,所以通过电压的大小就可以判断光照大小。该光照强度传感模块的分辨率高,可以探测较大范围下细微光强度变化。它通过I2C总线接口通信、输出对应亮度的数字值、对应广泛的输入光范围(相当于1-65535lx)误差很小,最小误差变动在±20%、受红外线影响很小,模块原理图如图3所示。

图3 GY-302模块原理图

1.2 数据处理及上传系统设计

该系统主控芯片采用STM32系列的嵌入式微控制器对传感器采集的参数进行接收、处理、存储、分析并以串口的形式将处理好的数据发送至ESP-01物联网模块。STM32F103C8T6最小系统包括了外部晶振模块、复位电路模块、J-link连接模块、供电指示模块等部分。ESP-01集MCU与WIFI于一身,支持I2C总线、支持UART、可支持一个数字输入/输出口,可采用AT指令控制模块。该模块核心处理器ESP8266在较小尺寸封装中集成了超低功耗32位微型MCU。

MCU处理并打包完的数据发送给ESP-01物联网模块,由ESP-01将数据上传至服务器;阿里云ECS云服务器平台作为MQTT消息代理,负责主题订阅管理、消息转发和缓冲,实现传感节点与数据采集中心的信息交互。数据上传模块与阿里云ECS云服务器的交互数据类型为JSON格式。用户端通过基于TCP的MQTT协议订阅设备上行数据主题获取数据,并下发命令至服务器,ESP-01订阅下行命令主题并接收下行命令,以串口的方式发送至数据处理模块,由数据处理模块处理成控制信号用以控制下端设备。数据处理及上传系统框图如图4所示。

图4 数据处理及上传系统框图

2 系统软件设计

病房环境监测参数涉及温度、湿度和光照度。BH1750光照度传感器采用I2C通信,负责采集病房的光照度参数。DHT11模块采集温湿度参数,采用单总线数据格式输出已校验的数字信号。MCU把采集到的环境参数打包成Cjson数据包格式通过串口发送给WIFI模块。WIFI模块把设备测的数据通过TCP的MQTT协议上传到服务器,并订阅服务器的下行命令主题以接收服务器下行命令。为了环境数据采集程序和上传数据不冲突,在主程序中定义一个变量timeCount作为一个时间间隔变量执行计时功能,timeCount时间计时到相应的时间节点触发相应的程序。主程序执行一循环需25ms并使timeCount增1,设定当timeCount%40==0执行一次环境参数采集和异常状态鉴定。设定当++timeCount>=200执行环境参数上传参数清空ESP8266缓存并使timeCount重新计数。病房环境监测上传程序流程图如图5所示。

图5 病房环境监测上传程序流程图

2.1 DHT11温湿度读取程序设计

定义四个整形指针u8*humiH(湿度高8位数据),u8*humiL(湿度低8位数据),u8*tempH(温度高8位数据),u8*tempL(温度低8位数据)做温湿度读取函数的形参。定义buf[5]存放环境参数四个字节数据和最后一位检验位。函数的开始先复位DHT11并检测DHT11是否存在。若复位成功并检测到DHT11的存在,用for循环函数循环5次读取DHT11发送过来的5个字节共40位数据。前四字节位DHT11检测到的环境参数,最后一个字节为校验字节。判断buf[0]+buf[1]+buf[2]+buf[3]是否等于buf[4]。如if判断成立代表数据校验正确,buf[]数组前四个参数分别存入程序开始前定义的四个形参,并返回函数运行状态值,完成温湿度的读取。

2.2 BH1750环境光照度读取程序设计

BH1750光照度传感器采用I2C进行通信,主机MCU发起I2C总线启动信号,把光照度传感器地址BH1750_Addr与1进行运算,使BH1750_Addr最低位为1,主机将这8bit数据发送给I2C总线设备传感器表明主机接下来进行读数据。

接收到应答信号后读取传感器发送的光照度数据,主控MCU为I2C总线的主机设备,由I2C的工作原理可知,每接收到一个字节从机数据需要发送一个应答信号,在收到最后一个字节数据后,MCU发送一个否应答信号,BH1750作为从机设备接收到否应答信号,结束数据发送并释放数据线,MCU发起I2C总线停止信号。

2.3 数据上传服务器程序设计

病房环境数据的上传采用MQTT协议。所以需要一个发布消息的主题(topic),所需要上传的数据就是该主题下的消息内容(msg)。

定义一个结构体变量MQTT_PACKET_STRUCTU RE存放协议数据、写入数据长度、缓存总大小和内存使用方案作为协议包。在数据发送前要进行Pulish消息组包,入口参数包括包名称、发布的主题、消息体、消息体长度、重发次数、离线消息推送和包指针,并且若组包成功返回值为“0”。消息数据发送前判断MQTT_PacketPublish(MQTT_PUBLISH_ID,topic,msg,strlen(msg),MQTT_QOS_LEVEL0,0,1,&mqttPacket)是否为0,若成立执行向平台发送数据函数ESP8266_SendData(),函数入口形参为数据(data)和长度(len)。

执行ESP8266_SendData()先清空接收缓存,然后执行发送命令函数ESP8266_SendCmd()。ESP8266_Se ndCmd()用来发送AT指令并检查返回指令。若返回指令正确,发送采集到的环境数据并在结束后释放数据内存。

3 系统调试与功能实现

首先系统尝试连接通过串口转物联网模块尝试连接服务器并订阅主题,如图6所示。

图6 病房环境监测模块连接服务器成功

连接服务器成功后对环境数据进行采集并进行编码上传服务器,执行过程同样可以在串口调试助手上输出,如图7所示。上侧框里内容是将采集的数据每5s一次上传至服务器相应主题中。下侧框里内容是每秒一次对环境参数进行采集。

图7 串口调试助手环境采集上传图

通过板载的OLED显示屏实时观测环境参数,数据每一秒更新一次,如图8所示。

图8 板载OLED观察环境数据

通过安卓客户端开发软件订阅服务器存放环境参数的主题,实现安卓客户端远程读取环境参数,如图9所示。

图9 通过安卓客户端远程订阅环境

在对环境监测系统中,系统的稳定高效是非常重要的,为了测试通信的稳定性,结合下位机、服务器数据监控终端和客户端进行系统数据传输实验。本次测试时间持续7天,每天让设备上线60-90min,实时监测环境的采集上传、服务器的数据状态、客户端的订阅显示。数据包理论上每15s对环境采集的数据进行打包和上传,该实验实际测试结果如表1所示,每次环境参数数据包传输成功时,下位机屏幕显示环境参数与服务器数据监控终端数据、手机客户端显示界面数据均一致,该系统数据采集上传成功率最低为97.3%,通信网络丢包率平均为1.97%,如表1所示。在测试过程中发现,连接中断的次数与所连接的无线网络密切相关,而数据包丢失主要与网络波动有关。当WIFI网络稳定时,成功的数据传输数量接近理论传输数量,通信稳定,满足系统所需的稳定高效通信要求。

表1 系统数据传输丢包率测试统计

4 结束语

本文介绍了一款实时远程监测病房环境温湿度和光照度系统的硬件布局设计和软件程序设计。通过DHT11温湿度传感器和BH1750环境光照强度传感器采集病房的环境参数并传送至主控MCU。MCU对接收的数据处理,并打包成MQTT协议包,通过串口发送至ESPWiFi模块。ESPWiFi模块把测得的环境数据通过TCP的MQTT协议上传到服务器。客户端订阅服务器数据,实现远程环境参数的监测。系统运行稳定,成本低、体积小,采用MQTT推送机制,速度快、实时性好,时效性高,适用于硬件性能低下的远程设备以及网络状况糟糕的情况。该系统经调试结果表明硬件设计方案可行、采集的环境参数准确稳定、数据传输成功率最低97.3%,平均丢包率1.97%,通信传输满足系统要求,控制算法正确,实现了高效环境监测及远程控制功能,系统通用性好,具有较好的应用前景。

猜你喜欢
光照度环境参数温湿度
光照度传感器在智能家居照明系统中的应用
三种光照度对广西地不容生理生化特性的影响
基于梯度提升决策树算法的鄱阳湖水环境参数遥感反演
基于AT89C51的数字型蚕用温湿度计的设计
一种食用菌大棚环境参数测控系统设计
基于单片机的光照度检测装置
基于温湿度控制的天气预测装置
基于DSP和μcos的温湿度检测系统的设计
PLC在计算机空调机房温湿度控制中的应用
“农地种电”型光伏电站可种植区域光温环境参数研究