基于物联网技术的室内环境在线监测系统设计

2020-04-17 13:52童耀南曹鹂晨李金桂
关键词:应用层室内环境测控

童耀南, 王 欣, 曹鹂晨, 李金桂

(湖南理工学院 信息科学与工程学院, 湖南 岳阳 414006)

0 引言

伴随着我国信息技术的发展和物联网行业的成长, 家居环境正进行着改头换面的变化, 人们在提高生活质量的同时更加向往健康的生活, 对环境安全亦愈加重视.因此室内的各项环境数据在线监测就变得尤为重要.加之新兴材料五花八门, 室内装修材料纷繁复杂, 使得室内的环境污染越来越多[1], 室内有毒气体监测变得刻不容缓.传统的技术与手段是基于仪器监测和环境算法, 这需要大量的人力成本, 无法适应设备轻小型化的发展趋势, 也无法适宜巨大的社会变化带来的室内环境变化, 实时、集成、高效的监测技术成为了研究重点.基于物联网的室内环境在线监测系统给环境监测所带来的智能化、集成化、大数据来源、云平台的大数据分享, 可以为环境监测提供更深入、更详尽、更真实且具有客观性的数据[2,3].

本文根据室内环境实时监测的需求, 基于Wi-Fi 和STM32 设计和实现了一套室内环境在线监测系统, 能快速直观地显示环境数据, 实现监测和预防.

1 系统架构

本文设计的室内环境在线监测系统架构如图1所示.按照物联网三层架构分为感知层、网络层、应用层.

图1 系统框架图

具体的实现方式是通过传感器所在的硬件感知层将感知到的四项环境数据通过串口通信传输给测控芯片STM32, STM32 对数据进行处理后驱动ESP8266Wi-Fi 模块进行网络传输, 通过网络层的HTTP 协议将环境数据传输到云端服务器.最后云主机将环境数据进行数据库存储, 并搭建起Web 服务器, 允许Web应用进行远程的数据请求.通过上述方式, 可以使得环境数据的获取变得高效, 环境数据的实时显示变得方便, 相较其他传统的非物联网的环境监测有着明显的优势.

2 硬件设计

2.1 硬件整体设计

系统的硬件设计由两大部分组成[4,5].一是以STM32 为控制核心加上光敏电阻传感器、MQ-2 烟雾气敏传感器、DHT11 温湿度传感器三个传感器模块构成的数据测控模块, 对与室内环境紧密相关的温湿度、烟雾或有毒气体、光照强度进行动态数据获取.二是ESP8266Wi-Fi 模块为主的数据发送模块, 负责将采集到的数据发送给云服务器.硬件整体设计如图2所示.

图2 硬件整体设计图

2.2 数据测控模块

数据测控模块以STM32F103 单片机为核心, 这是一款增强型MCU, 拥有64 个引脚和256K 字节的闪存, 具有低功耗特性, 丰富的快速I/O 端口, 成本低却拥有较高的性能.测控模块硬件构成如图3所示.

控制器模块的主要作用就是将 32 位单片机STM32F103 作为测控节点的控制芯片, 控制温湿度传感器采集温湿度数据, 光敏电阻传感器采集光照强度, 烟雾传感器采集烟雾浓度, 并将采集到的数据在LCD屏上显示.

图3 数据测控模块

2.3 数据发送模块

本系统采用由ALENTEK 推出的一款高性能串口无线模块, 内置TCP/IP 协议栈可以轻松实现串口与Wi-Fi 之间的转换.兼容3.3V 和5V 单片机系统, 可以与测控板进行连接.支持串口转无线站点、串口转热点和无线站点加无线热点的三种模式, 从而快速地构建串口Wi-Fi 数据传输方案, 方便测控板与互联网进行数据传输.无线通信模块硬件如图4所示.

图4 Wi-Fi 通信模块

3 软件设计

3.1 感知层与网络层的软件设计

软件设计思路着眼于实现数据的获取、封装、发送、显示等功能, 从以下几个方面进行设计.

(1) 第一部分: 对传感器进行初始化之前, 使能复用对应的GPIO 口, 并打开模数转换器, 同时短暂等待20 秒, 让MQ-2 烟雾传感器预热, 使得其测量数据真实准确, 这样便为接下来的传感器获取数据做好准备.

(2) 第二部分: 进行数据的获取.初始化时对四项参数进行了置零处理, 用以表示初始化完成.每隔5 秒获取一次传感器获得的数据并显示在LCD 屏幕上, 做到本地环境数据的实时显示.驱动Wi-Fi模块对远端服务器进行连接, 若未能成功连接, 则在0.5 秒后继续请求连接直至成功.

图5 软件设计流程图

(3) 第三部分: 将获取到的环境数据, 封装成HTTP 请求, 以GET 的形式提交给云端Web 服务器, 而服务器会将提交的数据存在MySQL 数据库中, 方便对环境数据访问, 但程序并未走完, 系统的设计功能是能实时不断地进行数据获取和远程访问, 所以每隔5 秒后又重复第二部分和第三部分的程序流程, 直到手动终止程序进程.软件设计流程图如图5所示.

3.2 应用层的软件设计

通过在阿里云租赁的云主机进行应用层的服务器搭建, Web 服务器的软件设计分成三步, 按照Django的MVT 框架进行代码编写.第一步是在线监测系统前端界面的编写; 第二步是利用基于Python 的Django框架搭建出一个简单的Web 服务器, 为了提高Web 服务器的稳定性, 采用uWSGI 代理web 服务, 从而提高服务器的响应能力和抗压能力; 第三步是在云主机上安装MySQL 数据库, 由数据库来接收从传输层发来的环境数据.应用层设计结构图如图6所示.

4 系统测试

4.1 传感器与LCD 屏测试

测试用到了三种传感器模块、LCD 屏和测控板, 主要目的是为了验证是否能获得准确的环境数值以及能否在LCD 屏幕上正确显示.初始化温湿度传感器等待3 秒左右, 但MQ-2 烟雾传感器模块由于需要预热才能测量精准所以需要等待20 秒, 此后LCD 屏幕上开始刷新传感器采集到的实时环境数据, 环境的参数每隔5 秒刷新一次, 新获得的数据会更新在LCD 屏上.测试效果图如图7所示.

图6 应用层设计结构图

图7 测试效果图

4.2 Wi-Fi 通信测试

测试用到了Wi-Fi 模块、温湿度传感器、测控板和手机, 目的在于验证传输层的Wi-Fi 模块能否有效开启两种模式并成功传输数据.分别测试Wi-Fi 模块的AP 模式和STA 模式.首先将Wi-Fi 模块作为热点, 热点名称为ATK-ESP8266.让手机直接连接Wi-Fi 模块, 以此来直接获取Wi-Fi 模块传出的数据.调试实际效果如图8所示.

图8 AP 模式测试图

接着进行STA模式的测试.在连接到路由器后, 程序会执行对云服务器的连接, 只有与服务器连接成功后, 程序才会继续往下执行.这样设计的目的是为了让每一次从传感器处获取的数据都能发送给远程的服务器, 确保数据不丢包, 从而保证本系统的数据真实性.将ESP8266模块作为STA接入路由器测试的实际效果图如图9所示.

4.3 服务器与客户端测试

测试用到了云主机服务器、测控板、三种传感器模块和Wi-Fi 模块, 目的是为了验证感知层获取的数据能否有效地通过网络层上传到应用层服务器, 并且能通过Web 应用访问到相应数据.数据在感知层获取后不断地通过HTTP 请求将环境参数发送给远程服务器.在测控板上获取到环境数据并发送给服务器的界面截图如图10所示.

图9 STA 模式测试图

图10 获取发送数据测试图

在手机终端或电脑浏览器上访问云服务器主机地址, 网页应用会每5 秒刷新一次环境数据.服务器运行结果见表1.感知层的传感器通过Wi-Fi 模块为主的网络层, 将数据传输到服务器并保存在MySQL数据库, 就能实现在任何地方进行室内环境数据的实时监测.

表1 服务器获取数据测试

5 结语

针对室内环境监测的实时高效需求, 研究和设计了基于物联网技术的室内环境监测系统, 实现了室内环境数据的自动采集和上传等功能.该系统包括感知层、网络层、应用层三部分, 感知层由传感器和STM32 测控主板构成, 网络层由Wi-Fi 通信模块构成, 应用层由云服务器和Web 应用构成.实验结果验证了系统的有效性.

猜你喜欢
应用层室内环境测控
住宅的绿色全装修室内环境全过程管理
浅析GB50325-2020与GB/T18883-2002关于室内环境污染物检测法的区别
软装饰元素在室内环境设计中的应用
昆山祺迈测控设备有限公司
室内环境下基于图优化的UWB定位方法
传输层和应用层的隧道技术
基于分级保护的OA系统应用层访问控制研究
基于现代测控技术及其应用分析
虚拟仪器技术在农业装备测控中的应用
向着新航程进发——远望7号测控船首航记录