杜英魁,楊國棟,李 娟,張首星,孫 博,原忠虎
(1.沈陽大學信息工程學院,沈陽 110014;2.沈陽大學體育學院,沈陽 110014)
已有研究表明,居室裝修導致的室內空氣污染會對人體健康造成嚴重的危害。當甲醛濃度高于0.08 mg/m,會直接對眼睛、肝臟和肺部產生嚴重影響,甚至會導致血癌。總揮發性 有 機 物(total volatile organic compounds,TVOC)如苯類揮發性有機物,主要來源于各種建筑材料、家具、涂料、壁紙和黏合劑等。世界衛生組織國際癌癥研究機構公布的致癌物清單中,甲醛和苯為一類致癌物。
室內的甲醛和TVOCs的監測,主要有離線監測和在線監測兩種方式。離線監測方式依據《室內空氣質量標準》(GB/T 18883-2002)國家標準,甲醛采用苯酚試劑分光光度法測定。TVOCs采用氣相色譜儀分析,成本高、監測周期間隔大。在線監測方式是利用電化學和半導體傳感器,進行甲醛和TVOCs濃度實時連續監測,具有長時監測和成本極低的突出優勢。
本文設計了一種結構緊湊的甲醛和總揮發性有機物濃度無線監測終端,以ESP-12F模組為核心器件,將數據采集、顯示和無線傳輸等功能進行了一體化集成設計,有效降低了終端體積和功耗。一鍵式網絡連接設計,則極大地簡化了用戶網絡設置過程。
ESP-12F模組的幾何尺寸僅為24 mm×16 mm×3 mm,如圖1所示。內置WIFI前端和高性能的32位MCU。

圖1 ESP-12F模組
該模組支持UART、I2C、PWM、GPIO等多種模式。支持80MHz和160MHz主頻,支持IEEE 802.11 b/g/n協議,具有完整TCP/IP協議棧,集成板載天線。支持RTOS。
該模塊能耗極低。深度睡眠保持電流僅為10 uA,關斷電流小于5 uA,待機狀態消耗功率小于1 mW,喚醒時間小于2 ms。本文能耗控制采用睡眠模式。
傳感器采用DS-HCHO-20電化學和半導體雙模集成數字式傳感器,幾何尺寸為29 mm×14 mm×9 mm,如圖2所示。內置電化學和半導體雙模塊,內置數據處理單元采用雙模塊修正經驗算法,兼容TVOC標定曲線,不同溫度和濕度環境數據自動修正,UART通信模式。

圖2 DS-HCHO-20傳感器
設計了下載電路和復位電路,以ESP-12F為核心模組,進行了無線監測終端的硬件系統集成,如圖3所示。利用ESP-12F模組GPIO端口的狀態,配置CPU的運行模式,實現了程序下載和運行之間的模式切換。復位電路用于保證系統處于確定狀態,并從初態開始工作。

圖3 終端系統組成
數據顯示方面,則采用0.91寸低功耗OLED液晶屏。ESP-12F模組通過GPIO模擬IIC時序驅動屏幕顯示。依據《民用建筑工程室內環境污染控制規范》(GB50325-2001)國家標準,利用采集到的甲醛和總有機揮發物濃度數據,自動進行空氣質量的優、良、差三級評價和顯示,用戶可據此判斷甲醛和總有機揮發物的濃度是否處于安全水平。
設計了心跳機制。周期性地查詢當前端云網絡通信狀態,以解決長時間斷網條件下的長鏈接更新以及云端無效鏈接請求的資源消耗問題,不僅能夠保證云平臺監控系統有效地得到各節點的網絡連接狀態,也大幅降低了云端網絡通信資源消耗。
這個用于周期性查詢網絡狀態的數據幀由起始符、詢問標識符和設備識別碼組成。除了設備識別碼唯一之外,其他位的數據是統一的。
應答包設備識別碼與上傳數據通信協議設備識別碼相同,主控芯片通過解析云平臺下發的應答包判斷數據是否上傳成功。同心跳包類似,應答包也包含起始字符、標識符和設備識別碼,同時應答包還包括接收時間和BCC校驗碼。
云平臺依據該協議判斷設備是否登錄成功否則,中斷后續操作。登錄幀里除起始字符、命令標識字符、設備識別碼之外還增加有數據單元長度、數據單元內容兩個數據段。
用于保證數據上傳時帶有的時間戳的正確性。硬件終端開機后對RTC功能進行初始化設置,使能PWR時鐘和后備寄存器,配置RTC的時鐘源并使能RTC時鐘。設置分頻系數和時鐘格式、初始化時間和日期。
數據上傳通信協議,如表1所示。由基礎的起始字符、命令單元、設備設別碼、數據包里特有的數據加密方式、數據單元長度、可擴展數據單元、校驗碼組成。

表1 數據上傳的數據包結構和定義
片上軟件設計,包括數據采集模塊、手機配網模塊、網絡數據傳輸模塊和網絡連接狀態監測模塊組成。片上軟件的執行流程如圖4所示。

圖4 片上軟件流程
ESP-12F模組內嵌的ESP8266芯片SDK采用基于“內核回調”編程方式。對于輪詢任務和監測狀態,無法采用常規單片機的“主循環”編程方式實現,需要依靠用戶任務或定時器回調函數來完成。本文采用定時器回調函數方式。
初始化硬件定時器。內核將調用硬件回調函數,在回調函數中通過串口問詢傳感器,并通過串口接收中斷處理傳感器采集的數據。
對數據進行解析后,首先將數據通過OLED屏幕進行實時顯示,再根據數據通信協議進行打包,通過數據傳輸模塊,上傳至云端。
設置網絡連接狀態監測軟件定時器,讀取flash中已保存的路由信息然后自動連接。在軟件定時器回調函數中設計網絡連接狀態監測函數,若網絡連接成功,則關閉軟件定時器并設置TCP連接,開啟網絡數據傳輸軟件定時器。若網絡連接失敗,則開啟手機配網。
采用“Smartconfig”方式,通過APP或微信公眾號進行配網。開啟sniffer模式,掃描所有開啟的路由器。通過手機UDP組播發送加密SSID和PASSWORD信息。ESP8266抓取并解密SSID和PASSWORD信息,從而連接路由。
系統連接路由成功后,將配置網絡信息,通過服務器IP地址或域名信息連接服務器。同時,開啟網絡數據傳輸軟件定時器,在軟件定時回調函數中調用打包的傳感器采集數據通過網絡發送給服務器。
利用TCP連接的接收回調函數,接收服務器的報文信息,判斷服務器連接狀態和接收信息,若發送失敗則重新發送,直至連續第3次發送失敗即放棄本次發送。若因服務器斷開TCP連接,則設備將通過TCP連接的成功斷開回調函數。
監測終端對云平臺的網絡鏈接狀態主動監測。設備上電或復位之后,設備首次連接已保存路由信息時的狀態監測。
若無路由信息或路由信息改變時,將由網絡連接狀態監測任務啟動設備配網模式,通過閃屏的方式告訴用戶需要通過手機APP進行配置有效的網絡。
首次監測網絡連接狀態后,將關閉網絡連接狀態監測軟件定時器,由更為可靠的硬件定時器監測網絡連接狀態,若發現網絡連接失敗,立即開啟配網模式。軟件定時器基于內核任務和內核資源實現。通過軟件定時器和硬件定時器的嵌套使用輪詢監測,能夠有效保了網絡連接的可靠和CPU資源的合理分配。
云平臺對監測終端的網絡鏈接狀態主動監測。云平臺根據心跳機制,周期性主動向監測終端發送心跳包,解析并判斷網絡連接狀態。在本文中,設置最大間隔為30 s,最大間隔實踐內,若未收到終端發送的心跳包,云端認為網絡中斷,自動刪除該終端節點的網絡長鏈接數據,終端狀態設置為設備下線。
基于Vue輕量級漸進式框架和Apache Cordova插件混合開發。具有對終端甲醛檢測儀的數據可視化分析、設備配置管理以及用戶管理等功能。采用Vue-Router、Vue-x、local Storage、Session Storage等插件,實現頁面路由跳轉配置,完成對用戶信息、設備信息以及組件的狀態管理和存儲。利用proxy Table代理解決前端開發的跨域問題。
使用AJAX請求后端服務提供的API接口,從而得到JSON格式的監測數據。基于ECharts圖表庫,進行數據可視化分析的圖形化表達。通過AppVersion、FileTransfer、FileOpener2等插件,完成APP軟件的版本號讀取、文件下載、打開文件等軟件安裝步驟以及在線升級功能。
基于SpringBoot微服務框架,主要實現對終端甲醛檢測儀的登錄處理以及對采集數據的處理。基于TCP協議,云端與終端依據自定義數據通信協議來實現數據傳輸以及業務下發。云端微服務平臺主要包括兩個部分:
(1)網關微服務。基于Netty高性能技術框架開發,實現對無線監測終端節點的高并發接入,數據存儲于Redis高速緩存數據庫。
(2)應用后臺微服務。采用Spring、Spring MVC以及My batis plus等后端Web技術搭建,主要實現對數據以及終端設備的CRUD業務邏輯編寫,為客戶端應用程序提供基于HTTP/IP協議的RESTful API接口。其中,后端監控微服務執行流程,如圖5所示。

圖5 后端監控微服務執行流程
采集終端運行測試內容是模組定時問詢傳感器,并解析傳感器的數據,并在OLED屏幕上實時顯示。硬件電路實物,如圖6所示。

圖6 終端硬件電路實物
終端功能測試結果,如圖7所示。

圖7 監測終端功能測試結果
網絡通信測試主要包括:設備連接路由是否穩定可靠、配網功能是否有效、網絡連接成功之后網絡數據傳輸是否可靠且穩定。通信實驗的測試過程包括以下幾個部分。
(1)上電重啟設備,測試是否能夠主動重連有效路由。
(2)若路由信息修改或無有效路由,測試設備是否進入配網模式且配網是否成功。
(3)當連接路由成功之后,測試向云端的數據上傳是否成功。
如圖8所示,串口調試助手顯示的TCP接收回調函數中接收的服務器應答信息,表明了無線監測終端數據上傳成功。

圖8 網絡數據傳輸測試結果
數據上傳成功后,APP頁面監測數據實時顯示和圖形可視化分析頁面,如圖9所示。

圖9 APP軟件的數據顯示頁面
本文研發了一種面向室內環境安全的便攜式甲醛和總揮發性有機物監測系統,以ESP-12F模組為核心器件,通過數據采集、顯示和傳輸功能的一體化集成設計,有效降低了終端功耗。跟據自定義數據通信協議所開發的一鍵配網和遠程監控等軟件功能,則有有效簡化了用戶操作過程。