摘要:设计了基于LINUX的远程实时监控系统, 实现了实验室环境参数的实时监控。使用3种传感器作为底层硬件和数据源头, 设计了数据采集器完成数据的采集和转发, 搭建云服务器作为数据中心实现人机交互, 从而构建了一个智能化的远程实时传感监控应用系统。该系统根据实际需求接入相应的传感器之后便可以对家居和实验室的温度、湿度、可燃气体等参数实时监控, 让监控人员不再局限于监控室。
关键词:LINUX; 云服务器; 人机交互; 远程实时监控; 无线传感器网络;
Abstract:The design of remote real-time monitoring system based on LINUX can real-time monitoring of laboratory parameters. In this paper, three sensors as the underlying hardware and data sources, it is designed to complete the data acquisition and forwarding of data collection, and build cloud server as a data center to achieve human-computer interaction, in order to build an intelligent real-time remote sensing monitoring applications. The system can real-time monitoring of laboratory of temperature, humidity, flammable gas and other parameters according to the actual needs of the access after the corresponding sensor, and allow monitoring personnel no longer limited to the control room.
Keyword:LINUX; cloud server; human-computer interaction; remote real-time control; wireless sensor networks;
1、远程监控系统总体方案设计
设计的远程实时环境监控系统涉及计算机软硬件、传感器数据采集、网页前端及后台程序等多方面内容。监控系统设计主要对系统的需求进行分析, 从而完成系统网络架构及总体设计。该系统不仅要对实验室环境进行远程监控, 还要保证用户的信息安全, 实现系统可配置、可修改、可扩展的特性。系统主要功能包括:
1) 数据采集功能。采集监控现场的各种监测数据, 用户可以根据自己的需求设计增加传感器, 采集范围包括温度、湿度、天然气泄漏等数据。
2) 数据存储及共享功能。按照用户的设置, 存储传感器检测到的数据, 并且传送到云端, 一旦设备发生故障, 可以协助完成故障分析工作。
3) 报警功能。对采集到的数据进行分析, 环境异常时发出警报并且通知相关人员。
4) 网络通信功能。系统可将传感器采集到的环境信息和报警信息通过网络传到云服务器。
5) 人机交互功能。用户可通过控制服务器的Web界面与实验室设备进行交互。
该文设计的基于LINUX远程实时监控系统, 实际上就是通过网络将实验室的各种环境参数通过传感器接收并整合起来, 通过数据采集器实现数据的采集与转发, 实现智能化的实验室环境。与传统实验室相比, 增加了内部与外部之间的交流, 使得实验室监控人员无需亲临现场, 或者在环境恶劣的情况下可以监视并且控制现场设备的状态及参数, 扩大了监控系统的应用范围[1]。
1.1、系统网络架构
系统使用了虚拟专用网络 (Virtual Private Network, VPN) 技术, 就是2个具有VPN发起连接能力的设备 (计算机或防火墙) 通过Internet形成的一条安全的隧道。在隧道的服务端, 用户的私有数据通过封装和加密之后在Internet上传输, 到了隧道的客户端, 接收到的数据经过拆封和解密之后安全地到达用户端。VPN服务器网络拓扑如图1所示。
图1 VPN网络拓扑图
VPN成功连接后, 数据将会使用VPN服务器网关进行内外网传输, 意味着所有的数据都通过VPN中转。该设计应用对象是家庭或实验室的环境参数, 传感器会将数据收集并通过Wi Fi无线方式和网络建立连接, 远程客户机通过访问网页, 经过用户身份认证后, 就可以访问数据采集器, 这样大大增加了远程访问的安全性[1-6]。
1.2、系统总体设计
系统总体设计框图如图2所示。
图2 系统总体设计框图
实验室环境远程监控系统主要分为两大模块:底层硬件模块和云服务器模块。底层硬件模块主要以无线传感器和数据采集器为支撑, 传感器实时获取实验室内部的环境数据, 数据采集器负责环境数据在本地和远端云服务器之间的通信任务。云服务器模块包括云服务器数据存储及用户交互子系统。云服务器数据存储系统包括了数据接收及数据处理功能, 可将数据按照不同种类分别存储, 以待用户使用。用户交互子系统通过Web服务器来实现, 用户通过访问网站可以实时查看到从实验室内部收集到的传感器数据并且可以对风扇进行控制[7]。
2、远程监控系统底层硬件
2.1、系统硬件构成
系统硬件结构如图3所示。系统数据采集器选用Raspberry Pi 2, 它是世界上最小的卡片式台式机, 虽然只有银行卡大小, 却具有标准电脑的所有基本功能。树莓派配备了一枚基于ARM架构BCM2835处理器, 使用SD卡当作储存介质, 操作系统采用开源的Linux系统。数据采集器接收传感器数据并实时显示到Web页面中, 并且提供各种控制功能。Web人机交互界面的设计极大地解放了操作人员, 使得操作人员可以随时随地使用手机或者PC通过对网页的访问来实现实验室环境数据的实时监控。
图3 采集系统硬件结构图
2.2、传感器的选型
传感器模块的设计必须满足扩展性好、使用方便、易于布线、安全节能。在布线方面, 系统需采用无线网卡来实现实验室内部的各种环境信息的传输如温度、湿度信息, 有毒气体浓度信息, 烟雾信息, 因为这些信息通常分布较远, 布线较为困难, 故需采取无线的通信手段, 既避免了布线的困扰也容易扩展。
2.2.1、温度、湿度传感器
采用SHT10数字温湿度传感器, 该传感器把所有传感元件和信号处理电路集成在一块微型电路板上, 输出完全标定的数字信号。传感器包含一个测湿敏感元件、一个测温元件, 并在同一个芯片上, 与14位的A/D转换器以及串行接口电路连接。该传感器具有低功耗、卓越的长期稳定性的特点, 采用SMD封装, 适用于回流焊的数字温湿度传感器。
2.2.2、Risym MQ-4甲烷传感器
MQ-4气体传感器所选用的气敏材料是在干净空气中电导率较低的二氧化锡 (Sn O2) 。当传感器所处环境中存在可燃气体时, 传感器的电导率随可燃气体浓度的升高而增大。利用简单的电路即可将电导率的改变转换为与该气体浓度相对应的输出信号。MQ-4甲烷气体传感器不仅对甲烷的灵敏度高, 对丙烷、丁烷也有较好的灵敏度。这种传感器可用来检测多种可燃性气体, 适用于家庭、实验室或工厂的甲烷气体、天然气等监测装置, 可测试天然气、甲烷300~10 000 ppm。
2.2.3、Risym MQ-7一氧化碳气体传感器
MQ-7气体传感器所选用的气敏材料是在干净空气中电导率较低的二氧化锡 (Sn O2) 。采用高低温循环检测方式, 低温 (1.5 V加热) 检测一氧化碳, 传感器的电导率随空气中一氧化碳气体浓度升高而增大, 高温 (5.0 V加热) 清洗低温时吸附的气体。利用简单的电路即可将电导率的改变转换为与该气体浓度相对应的输出信号。MQ-7一氧化碳气体传感器对一氧化碳的灵敏度很高, 这种传感器可检测多种含一氧化碳的气体, 适用于家庭、环境的一氧化碳探测装置。
3、远程监控系统数据采集器设计
3.1、传感器数据采集
系统中涉及到3个传感器, 分别是MQ-4甲烷传感器、MQ-7一氧化碳传感器和温湿度传感器。其中MQ-4和MQ-7是数字量输出, 低电平有效, 指示相应浓度超标;温湿度传感器是采用特殊的IIC协议进行数据传输, 因此需要进行数据采集程序的编写以获取相应的传感器的数据。
MQ-4甲烷传感器和MQ-7一氧化碳传感器只需要将数字量输出引脚接到树莓派的GPIO23脚和GPIO24脚即可进行数据读取。SHTx温湿度传感器则需要根据相应的时序图进行程序的编写来发送命令和读取传感器测量数据, SHTx温湿度传感器的时钟线SCL和数据线SDA分别接树莓派的GPIO26和GPIO16。
图4是以湿度测量为例的完整测量时序图。先是启动传输时序, 接着发送3位地址位000和5位命令位00101 (湿度测量) , 之后等待测量完成, 分2次共读取16位测量数据, 最后是CRC奇偶校验和停止时序。读取的16位数据需要转换为物理量。
图4 完整测量时序图
1) 相对湿度
为了补偿湿度传感器的非线性以获取准确数据, 使用下式修正输出数值:
图5为湿度转换系数。对高于99%RH的那些测量值则表示空气已经完全饱和, 必须被处理成显示值均为100%2RH。湿度传感器对电压基本上没有依赖性。
图5 湿度转换系数
湿度传感器相对湿度的温度补偿:实际测量温度与25℃ (~77℉) 相差较大时, 应考虑湿度传感器的温度修正系数:RHtrue= (T-25) · (t1+t2·SORH) +RH。图6为温度补偿系数。
图6 温度补偿系数
2) 温度
由能隙材料PTAT (正比于绝对温度) 研发的温度传感器具有极好的线性。可用下式将数字输出转换为温度值:
在极端工作条件下测量温度时, 可使用进一步的补偿算法以获取高精度。
3.2、传感器数据传输
该文选用的无线通信模块是EDUP牌的EP-N8508GS无线网卡, 它采用了智能节能技术, 能聪明控制传输电源及自动调整接口闲置状态, 省电最多可达50%。
传感器采集到数据后, 要将数据上传, 在云服务器上已经部署好了接收数据的客户端程序, 因此只需要结合数据采集程序来编写客户端程序即可。网络数据传输采用Socket套接字来实现, 服务器的IP和端口分别是121.42.217.227和8008。
4、远程监控系统云服务器软件设计
设计中主要是将云服务器作为一个数据共享和转发平台, GPS接收机接收的原始数据以及解算服务器解算后的解算结果都通过网络上传到云服务器, 云服务器上的转发器再将数据发送出来, 可以通过PC端、手机端软件连接网络, 随时随地获取想要的数据。
云服务器软件设计按照功能主要分为两部分, 一是云服务器作为数据存储中心, 二是云服务器搭建远程实时监控系统作具体的应用。
4.1、云服务器数据存储中心的设计
转发器顾名思义就是实现对数据的转发, 转发器的两端既可以做服务器 (Server) 、客户端 (Client) 也可以读取和发送串口数据。在使用转发器的时候, 需要分别对转发器的两端的模式进行配置。
4.2、云服务器上远程实时监控系统的设计
4.2.1、远程实时监控系统设计概述
Web浏览器可以让用户在自己的手机或电脑上随时获取Internet上的资源, 并且数据显示更为直观。用户的远程操作通过Web的HTTP/TCP协议传送到服务器;服务器响应请求并向智能终端发送命令;安装在家里或者实验室的智能终端接收并分析该命令, 通过无线网络直接控制传感器来响应各项指令, 传感器执行命令后, 又将数据反馈给智能终端, 智能终端再通过服务器反馈给用户端, 从而实现远程操作[8-10]。
该文使用阿里云服务器搭建远程实时监控系统, 由于阿里云服务器是具有固定IP的, 因此可以随时随地通过云服务器的固定IP和端口来访问Web监控页面以实现对甲烷、一氧化碳浓度和温湿度的实时监控。图7为Web服务器的工作流程。
图7 Web服务器工作流程
1) 先是创建服务端套接字Listen Socket, 在绑定了相应的IP和端口之后就开始监听客户端的连接请求。
2) 服务端的套接字监听到了客户端的请求。得到Client Socket, 接下来通过Client Socket与客户端通信。
3) 获取到客户端请求并进行处理。第一步是从客户端套接字中读取http请求的协议头和客户端传输的数据。第二步是处理请求, 根据客户端的要求来准备相应的要发送的数据, 最后通过客户端套接字发送给客户端。
4.2.2、前端页面设计
登录页面分别针对管理员和普通用户进行了不同的设计。管理人员需要提供相应的用户名和密码才能够进入主控制页面, 可以实现对甲烷、一氧化碳和温湿度的检测以及对风扇的控制;普通用户只需要提供一个随意的用户名就可以登录主控制页面, 但只能进行观测, 并不具备控制的权限。管理员登录页面如图8所示, 普通用户登录页面如图9所示。
图8 管理员登录页面
图9 普通用户登录页面
网页编程是通过HTML, CSS和Java Script的结合实现的, HTML定义了实际的网页内容;CSS为这些内容提供样式, 例如长度、大小、颜色等属性;Java Script可以实现网页的动态效果以及前后台的交互。实时数据显示如图10所示, 主控制页面如图11所示。
图1 0 实时数据显示
图1 1 主控制页面
4.2.3、后台程序设计
数据采集器的后台算法是使用Python编程语言来实现的, 后台的网络数据通信是用Socket套接字来实现的。互联网上的客户端和服务端通过建立一个可双向通信的连接来进行数据的传输, 客户端称为Client Socket, 服务端称为Server Socket。如图12所示, Socket的位置是处在应用层和传输层之间的, 不需要关注最底层的具体实现, 只要根据所需要实现的各种传输应用即可。
图1 2 Socket是应用层与传输层之间的桥梁
根据连接启动的方式和本地Socket (套接字) 要连接的目标, 套接字之间的连接可以分为3个步骤:服务器监听, 客户端请求, 连接确认[11]。
以上2个客户端和服务端Socket通信程序, 在实际的应用过程中还需要根据各种需求和情况进行更改和完善。对网路的异常断开, 例如突然拔掉网线、路由器重启等状况, 应该设计相应的解决方案和错误处理程序, 以保证网络连接的可靠性。
5、总结与展望
该文基于物联网大数据的背景, 通过对智能化的远程监控系统相关技术的研究, 包括无线传感器网络、搭建云服务器、Web开发等技术的研究, 从最底层的硬件选择到上层软件设计, 解决了传感器等信息需要的大数据存储空间, 远程控制要求的实时性和准确性, 布线复杂和高成本等问题。
远程实时监控系统适用于各行各业, 例如智能家居、远程安全监控、农情和苗情监测、气象灾害监测预警等, 具有广阔的应用前景和市场价值。
参考文献
[1]王建新, 杨世凤, 史永江, 等.远程监控技术的发展现状和趋势[J].国外电子测量技术, 2005 (4) :9-12.
[2]朱凯文, 陶波, 何岭松.基于Internet的测控系统--网络化仪器[J].中国计量, 2004, 11 (7) :53-54.
[3]于海未, 仲余杠.基于Internet的控制系统远程监控方案及实例[J].计算机自动测量与控制, 2001, 9 (5) :14-16.
[4]余成波, 陶红艳, 万文略.设备远程监控技术的研究[J].计算机工程与应用, 2002, 7 (18) :231-248.
[5]杨叔子, 史铁林, 李东晓.分布式监测诊断系统的开发与设计[J].振动、测试与诊断, 1997, 17 (1) :1-6.
[6]Nichols H M C, Bernard C B, David M H.Remote Instrunment Diagnosis on the Internet[J].IEEE Intelligent System, 1998 (5) :70-76.
[7]刘城龙.基于监控的智能家居系统设计与实现[D].吉林大学, 2015.
[8]Matt Richardso, Shawn Wallace.Raspberry Pi[M].李希凡, 译.北京:科学出版社, 2013.
[9]王保云.物联网技术研究综述[J].电子测量与仪器学报, 2009, 35 (12) :41-45.
[10]雷忠诚, 胡文山, 邬静阳, 等.基于Web的3D智能家居系统设计与实现[J].电子技术应用, 2014, 33 (9) :34-37.
[11]Wesley J Chun.Python核心编程[M].2版.宋吉广, 译.北京:人民邮电出版社, 2008.