葛彥凱,楊靜,趙清華
(1.太原理工大學信息與計算機學院,山西晉中030600;2.太原理工大學信息化管理與建設中心,山西太原030024)
近年來工業化進程不斷加快,城市中空氣質量污染狀況日漸加劇,因室內污染氣體超標而引起的呼吸道疾病發病率逐年提高,迫使人們越來越關注室內空氣質量,一批室內空氣質量監測設備應運而生。當前,國內外廠商生產的空氣質量監測設備可以監測多種空氣指標,并通過藍牙或IPv4 網絡遠程查看數據。但藍牙通信覆蓋范圍小,不適用于學校、辦公樓等場所[1];IPv4 網絡通信受限于IP 地址數量空間不足與節點移動性帶來的路由問題,難以滿足同時監測大量節點的需求[2-3]。隨著云計算、大數據、IPv6 等新技術的興起與發展,新型物聯網技術被大規模用于醫療、通信等領域[4-5]。文中基于新型物聯網與IPv6 通信協議相結合的思想,設計了一種基于IPv6 網絡實現通信,集空氣質量數據采集、歷史數據分析、圖形化數據展示等多種功能的室內空氣質量智能監測系統。
基于IPv6 的室內空氣質量智能監測系統由智能監測終端與云平臺兩部分組成。
智能監測終端基于GD32VF103C 微處理器設計,GD32 通過串口將DHT11、MQ- 7、SGP30、UBLOX_NEO-M8N 等傳感器所采集的溫濕度以及一氧化碳、二氧化碳、總揮發性有機化合物(TVOC)濃度、空間位置等信息傳送至ESP32 無線模塊,ESP32無線模塊得到信息后通過編解碼協議將其編碼成一組十六進制數據包,通過IPv6 網絡將其上傳至云平臺[6]。云平臺在得到數據包后通過編解碼協議將其解碼為十進制數據并保存至后端MySQL 數據庫,用戶可通過上位機登陸云平臺查看當前時刻與歷史數據。系統結構圖如圖1所示。

圖1 總體設計方案結構圖
智能監測終端微控制器采用GD32VF103C 微處理器作為控制單元,包括傳感器組、LCD 液晶顯示模塊、北斗定位模塊、ESP32 無線模塊,結構框圖如圖2所示。

圖2 智能監測終端結構框圖
監測終端的主控單元采用GD32VF103C 32 位通用微處理器,基于RISC-V 內核設計,采用了全新的基于開源指令集架構RISC-V 的Bumblebee 處理器內核,支持RV32IMAC 指令子集的組合,配備精簡的指令預存單元和動態分支預測單元,具有108 MHz主頻[7],支持flash 訪問頂等待,以提供最大效率。
GD32 微控制器提供128 kB 的片上flash 以及32 kB 的SRAM 緩存,支持連接到APB 總線的增強型I/O 口和各種外設多種標準高級通信接口,包括SPI、I2C、USART 和I2S,可連接不同類型的傳感器。GD32 以10 s/次的頻率控制傳感器組進行數據采集,得到數據后通過UART串口傳送至ESP32無線模塊[8]。
監測終端通過傳感器組進行空氣質量數據的采集,使用DHT11 溫濕度傳感器、MQ-7 一氧化碳傳感器、SGP30 二氧化碳&TVOC 濃度傳感器,各傳感器通過AD 轉換電路將模擬信號轉化為數字信號。
DHT11 溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合數字傳感器,數據通信引腳DATA 采用單總線結構與GD32 微處理器進行通信。當接到GD32 的起始信號后,DHT11 發送回應信號后由低功耗轉換為高速模式,進行一次數據采集并將數據通過DATA 總線發送回微處理器進行解析[9]。
MQ-7 一氧化碳傳感器使用在清潔空氣中電導率較低的二氧化錫作為氣敏材料,該傳感器對一氧化碳氣體有良好的靈敏度,常用來檢測空氣中一氧化碳氣體的濃度。傳感器通電后,氣敏材料的電導率隨空氣中一氧化碳氣體濃度的增大而增大,在一定范圍內,使用簡單電路可將電導率的變化轉換為與一氧化碳氣體濃度相對應的輸出信號[10]。
SPG30 二氧化碳&TVOC 濃度傳感器常用來檢測室內空氣的二氧化碳與TVOC 的濃度。傳感器內部集成4 個氣體傳感元件,可用來檢測多種揮發性有機化合物的濃度和氫氣濃度,經過傳感器計算處理后返回總揮發性有機化合物(TVOC)濃度讀數與等效二氧化碳(eCO2)濃度讀數,并輸出為數字信號[11]。
監測終端采用UBLOX_NEO-M8N 北斗定位模塊實現定位功能。該模塊可并發接收GPS、伽利略、GLONASS、北斗等GNSS,具有-167 dBm 的導航精度,輸出數據可配置為NMEA、ublox、RTCM 等多種協議。在監測終端中,UBLOX_NEO-M8N 北斗模塊采用ublox 自定義協議,設置控制串口參數后,通過內部射頻電路進行衛星搜索并獲得定位信息,Arduino 控制器通過提取定位信息中的維度格式、南(北)緯、經度格式、東(西)經、大地水準面起伏高度、大地水準面起伏高度單位等字段獲取經緯度及海拔高度信息,獲取信息后Arduino 控制器通過UART 硬件串口將信息發送至GD32 微控制器。
監測終端采用ESP32 無線模塊作為串口轉IPv6網關,從而將串口接收到的空氣質量數據信息與位置信息通過IPv6 網絡發送至云平臺。ESP32 無線模塊提供2.4 GHz 雙模WiFi 和藍牙芯片,內部集成天線、功率放大器、低噪聲放大器、濾波器和電源管理模塊等元器件,工作頻率為80~240 MHz,性能穩定。
ESP32 無線模塊并不支持IPv6 協議通信,可通過SDK 開發方式移植LwIP 協議棧,使監測終端可以通過IPv6 網絡進行數據傳輸。LwIP(Light weight IP)是采用C 語言開發的一種小型TCP/IP 協議棧,可在實現TCP 協議主要功能的同時減少對RAM 的占用,常用于嵌入式設備實現網絡通信[12]。LwIP 協議棧從1.5.0 Beta 版本開始支持IPv6 內核,經過多個版本的迭代,已全面支持DHCPv6,ICMPv6、Neighbor Discovery 等多種IPv6 協議。ESP32 無線模塊選擇2.1.1 版本Lwip 協議棧進行移植,移植步驟包括LwIP源文件導入、移植后編寫cc.h 文件和lwipopts.h 文件、初始化網絡、使用netif_add 函數添加網口、創建IPv6地址、初始化LwIP 協議棧。
監測終端選用2.8 寸TFT LCD 液晶屏幕顯示各傳感器采集到的數據,屏幕選用ILI9341 作為驅動芯片,分辨率為240×320,采用8080 并行接口與4 線SPI 接口與微處理器通信。通電后,模塊可實時顯示當前時刻的溫濕度、一氧化碳濃度、二氧化碳濃度、TVOC 濃度與智能監測終端所處位置等信息。
監測終端軟件設計流程如圖3所示。

圖3 智能監測終端軟件設計流程圖
1)硬件通電后檢查硬件及各模塊初始化;
2)讀取各傳感器數值并填充至Frame 數據幀,實現液晶顯示;
3)設置中斷時間,確定采樣頻率為10 s/次;
4)判斷是否在標準值內,若超出范圍則啟動蜂鳴器報警;
5)按協議編碼Frame 數據幀,通過串口傳送至ESP32,采用IPv6 網絡發送至云平臺。
基于IPv6 的室內空氣質量智能監測系統云平臺基于模塊化方式開發,共分為3 個子模塊,分別為TCP server、Data back 與WEB 頁面。TCP server 接收來自智能監測終端通過IPv6 發送的數據包后,根據數據編解碼協議將其解碼為十進制數據,通過HTTP協議傳至Data back 并存儲至MySQL 數據庫。WEB頁面讀取數據庫中的數據并生成圖形化報表,用戶或管理員可登錄WEB 頁面與云平臺實現人機交互。云平臺主要數據流程如圖4所示。

圖4 數據主要流程圖
智能監測終端與云平臺間采用TCP 協議進行通信,傳輸數據時,TCP server 子模塊通過3 次握手法與智能監測終端建立連接,并開始接收來自智能監測中端發送的十六進制數據包,將數據幀解碼后發送至數據交互后端Data back[13]。
TCP server 基于smart-socket 框架開發,smartsocket是一款可以實現web socket 通訊的優秀國產開源框架,可進行IOT、IM、RPC 等通信領域的開發?;趕mart-socket 進行通信開發,主要有3 個步驟:協議編解碼、消息處理與啟動服務。在通信領域中,協議是通信雙方對傳輸/接收數據流的編解碼實現算法[14]。在文中系統中,定義了一種數據編解碼協議實現十六進制數據包與十進制數據的轉換,數據傳輸協議表如表1所示。

表1 數據傳輸協議表
Data back 子模塊將接收到的十進制數據按照空氣質量指標名稱存儲至數據庫。子項目采用SpringBoot 框架開發,提供REST 接口調用,數據庫采用MySQL 數據庫。對于像MySQL 這種傳統關系型數據庫,SpringBoot 使用JPA(Java Persistence API)資源庫實現對數據庫的增加與刪除[15]。在云平臺中,MySQL 數據庫中一共有2 張表格,分別為air_device與air_record。air_device 記錄用戶名、設備名稱、設備當前狀態(在線或離線)、設備創建時間、最后在線時間等信息;air_device 記錄設備名稱、各項空氣指標數據以及記錄時間等。
WEB 頁面基于Servlet 與JDBC(Java DataBsae Connectivity)開發,包括用戶/管理員登錄界面與數據展示頁面。用戶在登錄界面輸入用戶名與密碼后,可以查看所屬監測點的實時監測數據,并可根據需求以圖表化的形式查看任意時間段的歷史數據[16]。
對設計完成后的室內空氣質量智能監測系統進行整體測試,監測終端實物圖如圖5所示。實驗前,放置3 個智能監測終端于學校教學區域,各終端通過ESP32 無線模塊連接至校園網;將云平臺搭建于第二代中國教育和科研計算機網(CERNET2)。

圖5 智能監測終端實物圖
實驗現象為在IPv6 網絡環境下,智能監測終端可以穩定地將傳感器所采集的空氣質量數據上傳至云平臺。用戶通過瀏覽器窗口訪問云平臺,進而查看當前各監測點的監測數據,頁面如圖6所示。

圖6 云平臺展示頁面圖
表2展示了某一監測點的實驗數據,表3提供了該監測點標準測量值。通過比對兩組數據發現,監測終端所采集的數據與標準值很接近,說明智能監測終端測量結果較為準確。

表2 某監測點實驗數據

表3 某監測點標準測量值
文中還針對智能監測系統在IPv6 與IPv4 兩種網絡條件下的延遲時間做了對比實驗,實驗結果如圖7所示。證明在中轉路由較少的情況下,IPv6 網絡與IPv4 網絡相比,延遲時間相差不多,但IPv6 網絡更加穩定。

圖7 IPv6/IPv4延遲比較圖
文中設計了一種基于IPv6 網絡的室內空氣質量智能監測系統,系統分為監測終端與云平臺,可以24小時實時監測室內空氣質量狀況。監測終端通過IPv6 網絡傳輸數據至云平臺,用戶訪問云平臺可查看監測數據。限于時間與實驗條件,監測系統仍有改進的空間,下一步的研發重點是對數據的深入分析與移動端APP 的設計與研發。