建筑环境监测系统中的智能终端硬件是基于ArDuino开发板设计的。Arduino开发板是基于ATmega328芯片设计的,其静态随机存储器(Static Random Access Memory, SRAM)容量较小,这在一定程度上限制了Arduino的使用场景。为解决内存容量较小的问题,建筑环境监测系统的智能终端硬件采用物联网开发板ESPDuino。ESPDuino开发板综合了物联网行业内流行的ESP8266系列模块与Arduino丰富的开发库,既集成了物联网发展不可或缺的Wi-Fi功能,又解决了Arduino内存容量较小的问题。ESPDuino开发板价格低廉,在物联网行业应用得较好,其实物如图3.2所示。
图3.2 ESPDuino开发板
ESPDuino开发板最重要的功能之一就是其集成的Wi-Fi功能,ESPDuino开发板具备 ESP8266 系列模块的两种无线访问接入模式,即Soft_AP(Soft Access Point)模式和STA(Station)模式。在无线AP(Soft_AP)模式下,ESP8266 模块通过驱动程序提供与无线AP(Access Point)类似的信号转接和路由等功能,其内部整合化的驱动软件可为首次接入网络的终端设备配置提供很大的便利。在STA模式下,系统不接受无线网络接入,只可连接到 Wi -Fi 或无线 AP(Soft_AP)与建筑环境监测系统进行通信。
建筑环境监测终端模块包括温/湿度模块、固体颗粒物浓度模块、有害气体浓度模块、红外热释电模块等,这些终端模块的程序均按照模块化思想设计,其设计流程具有相似性,主要分为模块初始化、等待配置过程、程序主循环三个部分,如图3.3 所示。①模块上电后进入模块初始化,读取保存参数,接着进入等待配置过程。②进入等待配置过程时,LED 将会快速闪烁并开始判断 flash键是否按下。通过判断flash键按下的时长来选择模式:当flash键长时间按下时,恢复出厂设置;当 flash 键短时间按下时,进行Smartconfig参数配置,若配置成功则可保存Wi-Fi名称和密码,若配置失败则重启模块。如果未检测到flash键按下但启动未超过5s,则等待配置。如果未检测到 flash 键按下且启动超过5s,则开启STA模式。开启STA模式并监测Wi-Fi是否能连接Internet,如果不能连接Internet,则进入Soft_AP模式并继续启动Http Server,通过连接Wi-Fi,重新配置STA模式的信息,并重启Wi-Fi模块进入STA模式尝试连接Internet。连接成功之后Wi-Fi模块进入程序主循环。③程序主循环中处理的函数功能包括检查 Wi-Fi状态、Http Server状态、传感器传回数据采集和处理和开启TCP Client状态。具体流程为先检查Wi-Fi连接状态:如果是首次连接,LED灯将常亮,开启TCP Client后进入检查Http Server状态;如果不是首次连接,则直接进入检查Http Server状态;Wi-Fi状态检查完成后,检查Http Server状态,在该状态下可以发送页面内容,保存页面参数,以及进行OTA固件升级。检查Http Server状态之后便是传感器数据采集和处理,数据采集和处理完成后开启TCP Client模式发送数据至建筑运维智慧管控平台。
图3.3 建筑环境监测系统终端模块程序设计流程
各种类型的建筑环境监测系统终端模块与建筑运维智慧管控平台实现数据交互的核心技术是Wi-Fi通信技术。Wi-Fi通信的步骤如下,当已知无线网络的服务标识集(Service Set Identifier, SSID)、名称和密码时,初始化模块开始后首先读取带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory, EEPROM)内的配置信息,然后开启STA模式连接默认配置的Wi-Fi网络,同时实时监测Wi-Fi网络连接状态,确认是否已经连接网络。配置Wi-Fi网络的关键程序如下。
在STA模式下,如果连接无线Internet成功,那么建筑环境监测系统终端模块可直接与建筑运维智慧管控平台实现数据交互。若无法连接到无线Internet时,终端模块则进入AP模式。例如,当终端模块首次工作时,由于STA模式下无线模块内部初始SSID和密码与现场的Wi-Fi名称、密码不匹配,ESPDuino自动进入AP模式建立无线网络热点,如图3.4所示。
在图3.4中,无线网络热点(Building-I18-T2_D2 -E4 -7D)前两组数据(Building-I18)表示环境监测传感器ID,第三组数据(T2)表示传感器类型,后三组数据(D2 -E4 -7D)表示传感器模块的后三位MAC地址。此时,用户连接该无线网络热点(Building-I18-T2_ D2 -E4 -7D)后,在浏览器中输入ESPDuino固定的IP地址,即可进入模块配置页面对模块信息进行 STA 模式参数配置(图3.5)。
图3.4 AP模式下的无线网络热点
图3.5 STA模式参数配置