1. 引言
互联网已经成为21世纪加速人类历史发展进程的重要因素,成为推动全球创新与变革、发展与共享、和平与安全的重要议题。互联网已经全面融入社会生产和生活各个领域,引领了社会生产新变革,创造了人类生活新空间,带来了国家治理新挑战,并深刻地改变着全球产业、经济、利益、安全等格局。其中最具代表性的产业便是智能家居 [1] [2],本文所设计的基于WIFI和RS485通信的模拟机温湿度运营环境监控系统就运用智能家居平台,根据实际需要扩展应用。
模拟机运行的时候是一个相对独立的环境系统,由于接口系统和仪表系统在工作时产生大量的热量,所以模拟机有专门的冷却空调持续不断供给模拟机冷却气体,从而达到对模拟机冷却的目的。如果冷却系统出现故障,大量的热量积累,温度上升,会损坏模拟机仪表和接口系统,甚至造成火灾。模拟机设计的时候采用了温度保护,一旦冷却气体的温度超过15℃模拟机会激活EPO (Emergency Power Off),接口系统和仪表系统自身的系统和软件在没有关闭的情况下强制掉电,会损坏模拟机仪表和接口系统,而模拟机上使用的仪表绝大多数都是真飞机件,维修成本高,送修周期长。所以保障模拟机输送的冷气持续稳定,是保障模拟机运行的重要工作之一。
2. 系统设计
本文设计的系统是多台模拟机的采样点,集中显示在维护值班室以提醒维护人员,当前模拟机运营环境的温湿度的状态为目的,如果当前模拟机的运营状态不是在稳定区域,系统会发出语音警告以提醒。
系统采用客户端与服务器的形式设计,他们之间使用MQTT通信协议,通过发布/订阅的方式来实现,订阅和发布是基于主题(Topic)的。发布方和订阅方通过这种方式来进行解耦,它们没有直接地连接,它们需要一个中间方。在MQTT里面我们称之为Broker,用来进行消息的存储和转发。最后通过APP软件达到不同等级的颜色提醒显示和语音警报显示。系统原理图如下图1所示。
每个ESP8266模块作为一个客户端(Client)向MQTT Broker发布主题(Topic)发布消息。MQTT Broker接收消息负载的主题,并接受APP运用软件的订阅,应用软件根据实际需要设定的温度三个等级:绿色表示温度正常;黄色表示警戒温度;红色则表示温度超限。用以不同的颜色显示,可以更为直观的提醒维护人员。维护人员可以根据当前温度显示的颜色,评估出模拟机运营环境的状态。如果当前状态,不是稳定的状态,应用软件还会利用语音服务系统发出警报。
3. 系统网络设计
模拟机大厅是根本模拟机制造厂家的要求设计建造,IT网络的分配在设计之初已经确定。模拟机之间的间隔在12米以上,重新进行有线网络的分配势必会增加的任务量。鉴于此,本系统是利用WIFI网络通信,避免了布线的麻烦,分布点个数也不受限制,灵活性较大。这里采用的WIFI华为Q2 Pro之母路由器组建WIFI网络(图2所示:网络构架图),一个母路由器建立一个网络,子路由器把接收到的母路由器的WIFI信号放大和拓展。这样所有的ESP8266模块都连接到同一个域里。
4. 系统通信设计
整个通信过程由以下三个部分组成:无线WIFI网络,它是用来实现ESP8266与服务器之间的通信,整个网络由串口WIFI模块发起;异步串口通信,用来实现ESP8266模块与转换电路之间的通信;485通信,实现温湿度模块和转换电路的通信。具体实现过程如图3所示:温湿度模块选用标准的485温湿度模块,保证数据的统一有效性;转换电路把485信号转化成UART协议;ESP8266通过IO引脚虚拟成串口接受信息,然后通过WIFI网络把信息发送给服务器;服务器则接收并存储信息,方便应用软件调用。

Figure 3. Communication system structure
图3. 通信系统结构
ESP8266模块 [3] 的共有三种工作模式,分别是Station模式,AP模式,AP + Station模式。ESP8266出厂默认是第三种模式。在对模块进行控制实现通信过程中主要是使用第一种模式。ESP8266先初始化,设置好工作模式和IP地址,这里使用固定的IP地址,方便调试以及以后的维护工作。然后询问服务器的端口,建立通信,如果服务器没有回复,则继续询问直到服务器回应。其流程如图4所示。

Figure 4. Esp8266 establish WIFI communication
图4. ESP8266建立WIFI通讯图
数据传输的实现过程是当ESP8266模块接收到温湿度模块发送的数据后,便把数据复制到ESP8266的外部的内存缓存区之中。当完成数据接收工作时,缓冲区内的数据将被复制到UART串口的缓存区之中以便触发新的串口来发送中断。中断指令函数也会把接收到的数据发送到控制系统中实现整体的控制。其流程如图5所示。
5. 程序的设计
ESP8266模块编程 [4] [5] 采用Arduino IDE作为编译器。Arduino是一款便捷灵活、方便上手的开源硬件产品,具有丰富的接口,有数字I/O口,模拟I/O口,同时支持SPI,IIC,UART串口通信。它是一种包含硬件(各种型号的Arduino板)和软件(Arduino IDE)的开源电子平台。硬件部分是可以用来做电路连接的Arduino电路板,并且可以直接使用模块的库函数里面的函数。如图6所示:使用ESP8266WiFi.h中的WiFiClient espClient函数,对模块进行客户端配置;使用PubSubClient.h中的client.publish()函数向服务器发布消息;使用SoftwareSerial.h中的SoftwareSerial softSerial()的函数直接把标准IO口转变成软串口进行通信等。
6. 服务器端配置
服务器需要全天候稳定运行,Windows系统虽然可视化界面比Linux好,但是其稳定性和经济性远不及Linux,本系统采用开源的ubuntu18.04作为操作系统。HomeAssistant是一个基于python3语言的开源家庭自动化平台 [6],它可以监控连接到平台上的所有设备,并实现自动化控制,使用MQTT消息队列遥测传输协议进行通信,通过MQTT,ESP8266模块实现把温湿度的数据发布到服务器上。
Influx DB是一个由Influx Data开发的一个开源分布式时序、事件和指标数据库,无需外部依赖。它被广泛应用于存储系统的监控数据和实时数据等场景 [7]。配置Influx DB如图7所示。

Figure 7. Configuration of Infix DB
图7. Influx DB的配置
使用Grafana图形化显示 [8] [9],可以更为直观的给维护人员以描述当前温度的状态。这里根据实际需要可以设置成三个的显示等级,绿色表示温湿度处于良好的区间,属于正常温度;黄色表示警戒区域,需要找一下造成温度升高的原因;红色代表危险区域,模拟机随时可能EPO,需要立刻采取保护措施。为了更加是页面更加值班,同时选用仪表盘和时序图,如图8所示。
语音报警是现如今智能化出行生活之中常见的一种现象,无论是在车辆上安装提醒还是在公共环境之下安装语音提示系统都比较为常见。这里采用语音服务报警则是避免维护人员24小时的盯着电脑屏幕,从听觉上给维护人员以警示,解放双眼。开源的语音服务国内最常用的就是百度语音服务 [10] [11] [12] [13] [14]。
7. 结论
基于WIFI和RS485通信的模拟机温湿度运营环境监控系统是智能家居系统的一个典型案例,通过华为Q2 Pro所创建的一个小型的局域网络,利用ESP8266模块作为客户端及传输端设备同时加入到该局域网中实现数据的互传与控制功能,在服务器端图形化显示,并有语音提醒的功能。
运营环境温湿度的数据也可以用于故障率大数据分析,寻找温湿度和送修的相关性,比如最为直观的就是在黄梅季节,模拟机的部附件送修率要高于平时。但是之前都没有直观的数据分析对比,本文设计的基于WIFI和RS485通信的模拟机温湿度运营环境监控系统投入使用之后,将是温湿度会影响送修率的重要佐证。