葛彥凱,楊靜,趙清華
(1.太原理工大學信息與計算機學院,山西晉中030600;2.太原理工大學信息化管理與建設(shè)中心,山西太原030024)
近年來工業(yè)化進程不斷加快,城市中空氣質(zhì)量污染狀況日漸加劇,因室內(nèi)污染氣體超標而引起的呼吸道疾病發(fā)病率逐年提高,迫使人們越來越關(guān)注室內(nèi)空氣質(zhì)量,一批室內(nèi)空氣質(zhì)量監(jiān)測設(shè)備應(yīng)運而生。當前,國內(nèi)外廠商生產(chǎn)的空氣質(zhì)量監(jiān)測設(shè)備可以監(jiān)測多種空氣指標,并通過藍牙或IPv4 網(wǎng)絡(luò)遠程查看數(shù)據(jù)。但藍牙通信覆蓋范圍小,不適用于學校、辦公樓等場所[1];IPv4 網(wǎng)絡(luò)通信受限于IP 地址數(shù)量空間不足與節(jié)點移動性帶來的路由問題,難以滿足同時監(jiān)測大量節(jié)點的需求[2-3]。隨著云計算、大數(shù)據(jù)、IPv6 等新技術(shù)的興起與發(fā)展,新型物聯(lián)網(wǎng)技術(shù)被大規(guī)模用于醫(yī)療、通信等領(lǐng)域[4-5]。文中基于新型物聯(lián)網(wǎng)與IPv6 通信協(xié)議相結(jié)合的思想,設(shè)計了一種基于IPv6 網(wǎng)絡(luò)實現(xiàn)通信,集空氣質(zhì)量數(shù)據(jù)采集、歷史數(shù)據(jù)分析、圖形化數(shù)據(jù)展示等多種功能的室內(nèi)空氣質(zhì)量智能監(jiān)測系統(tǒng)。
基于IPv6 的室內(nèi)空氣質(zhì)量智能監(jiān)測系統(tǒng)由智能監(jiān)測終端與云平臺兩部分組成。
智能監(jiān)測終端基于GD32VF103C 微處理器設(shè)計,GD32 通過串口將DHT11、MQ- 7、SGP30、UBLOX_NEO-M8N 等傳感器所采集的溫濕度以及一氧化碳、二氧化碳、總揮發(fā)性有機化合物(TVOC)濃度、空間位置等信息傳送至ESP32 無線模塊,ESP32無線模塊得到信息后通過編解碼協(xié)議將其編碼成一組十六進制數(shù)據(jù)包,通過IPv6 網(wǎng)絡(luò)將其上傳至云平臺[6]。云平臺在得到數(shù)據(jù)包后通過編解碼協(xié)議將其解碼為十進制數(shù)據(jù)并保存至后端MySQL 數(shù)據(jù)庫,用戶可通過上位機登陸云平臺查看當前時刻與歷史數(shù)據(jù)。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 總體設(shè)計方案結(jié)構(gòu)圖
智能監(jiān)測終端微控制器采用GD32VF103C 微處理器作為控制單元,包括傳感器組、LCD 液晶顯示模塊、北斗定位模塊、ESP32 無線模塊,結(jié)構(gòu)框圖如圖2所示。
圖2 智能監(jiān)測終端結(jié)構(gòu)框圖
監(jiān)測終端的主控單元采用GD32VF103C 32 位通用微處理器,基于RISC-V 內(nèi)核設(shè)計,采用了全新的基于開源指令集架構(gòu)RISC-V 的Bumblebee 處理器內(nèi)核,支持RV32IMAC 指令子集的組合,配備精簡的指令預(yù)存單元和動態(tài)分支預(yù)測單元,具有108 MHz主頻[7],支持flash 訪問頂?shù)却蕴峁┳畲笮省?/p>
GD32 微控制器提供128 kB 的片上flash 以及32 kB 的SRAM 緩存,支持連接到APB 總線的增強型I/O 口和各種外設(shè)多種標準高級通信接口,包括SPI、I2C、USART 和I2S,可連接不同類型的傳感器。GD32 以10 s/次的頻率控制傳感器組進行數(shù)據(jù)采集,得到數(shù)據(jù)后通過UART串口傳送至ESP32無線模塊[8]。
監(jiān)測終端通過傳感器組進行空氣質(zhì)量數(shù)據(jù)的采集,使用DHT11 溫濕度傳感器、MQ-7 一氧化碳傳感器、SGP30 二氧化碳&TVOC 濃度傳感器,各傳感器通過AD 轉(zhuǎn)換電路將模擬信號轉(zhuǎn)化為數(shù)字信號。
DHT11 溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合數(shù)字傳感器,數(shù)據(jù)通信引腳DATA 采用單總線結(jié)構(gòu)與GD32 微處理器進行通信。當接到GD32 的起始信號后,DHT11 發(fā)送回應(yīng)信號后由低功耗轉(zhuǎn)換為高速模式,進行一次數(shù)據(jù)采集并將數(shù)據(jù)通過DATA 總線發(fā)送回微處理器進行解析[9]。
MQ-7 一氧化碳傳感器使用在清潔空氣中電導(dǎo)率較低的二氧化錫作為氣敏材料,該傳感器對一氧化碳氣體有良好的靈敏度,常用來檢測空氣中一氧化碳氣體的濃度。傳感器通電后,氣敏材料的電導(dǎo)率隨空氣中一氧化碳氣體濃度的增大而增大,在一定范圍內(nèi),使用簡單電路可將電導(dǎo)率的變化轉(zhuǎn)換為與一氧化碳氣體濃度相對應(yīng)的輸出信號[10]。
SPG30 二氧化碳&TVOC 濃度傳感器常用來檢測室內(nèi)空氣的二氧化碳與TVOC 的濃度。傳感器內(nèi)部集成4 個氣體傳感元件,可用來檢測多種揮發(fā)性有機化合物的濃度和氫氣濃度,經(jīng)過傳感器計算處理后返回總揮發(fā)性有機化合物(TVOC)濃度讀數(shù)與等效二氧化碳(eCO2)濃度讀數(shù),并輸出為數(shù)字信號[11]。
監(jiān)測終端采用UBLOX_NEO-M8N 北斗定位模塊實現(xiàn)定位功能。該模塊可并發(fā)接收GPS、伽利略、GLONASS、北斗等GNSS,具有-167 dBm 的導(dǎo)航精度,輸出數(shù)據(jù)可配置為NMEA、ublox、RTCM 等多種協(xié)議。在監(jiān)測終端中,UBLOX_NEO-M8N 北斗模塊采用ublox 自定義協(xié)議,設(shè)置控制串口參數(shù)后,通過內(nèi)部射頻電路進行衛(wèi)星搜索并獲得定位信息,Arduino 控制器通過提取定位信息中的維度格式、南(北)緯、經(jīng)度格式、東(西)經(jīng)、大地水準面起伏高度、大地水準面起伏高度單位等字段獲取經(jīng)緯度及海拔高度信息,獲取信息后Arduino 控制器通過UART 硬件串口將信息發(fā)送至GD32 微控制器。
監(jiān)測終端采用ESP32 無線模塊作為串口轉(zhuǎn)IPv6網(wǎng)關(guān),從而將串口接收到的空氣質(zhì)量數(shù)據(jù)信息與位置信息通過IPv6 網(wǎng)絡(luò)發(fā)送至云平臺。ESP32 無線模塊提供2.4 GHz 雙模WiFi 和藍牙芯片,內(nèi)部集成天線、功率放大器、低噪聲放大器、濾波器和電源管理模塊等元器件,工作頻率為80~240 MHz,性能穩(wěn)定。
ESP32 無線模塊并不支持IPv6 協(xié)議通信,可通過SDK 開發(fā)方式移植LwIP 協(xié)議棧,使監(jiān)測終端可以通過IPv6 網(wǎng)絡(luò)進行數(shù)據(jù)傳輸。LwIP(Light weight IP)是采用C 語言開發(fā)的一種小型TCP/IP 協(xié)議棧,可在實現(xiàn)TCP 協(xié)議主要功能的同時減少對RAM 的占用,常用于嵌入式設(shè)備實現(xiàn)網(wǎng)絡(luò)通信[12]。LwIP 協(xié)議棧從1.5.0 Beta 版本開始支持IPv6 內(nèi)核,經(jīng)過多個版本的迭代,已全面支持DHCPv6,ICMPv6、Neighbor Discovery 等多種IPv6 協(xié)議。ESP32 無線模塊選擇2.1.1 版本Lwip 協(xié)議棧進行移植,移植步驟包括LwIP源文件導(dǎo)入、移植后編寫cc.h 文件和lwipopts.h 文件、初始化網(wǎng)絡(luò)、使用netif_add 函數(shù)添加網(wǎng)口、創(chuàng)建IPv6地址、初始化LwIP 協(xié)議棧。
監(jiān)測終端選用2.8 寸TFT LCD 液晶屏幕顯示各傳感器采集到的數(shù)據(jù),屏幕選用ILI9341 作為驅(qū)動芯片,分辨率為240×320,采用8080 并行接口與4 線SPI 接口與微處理器通信。通電后,模塊可實時顯示當前時刻的溫濕度、一氧化碳濃度、二氧化碳濃度、TVOC 濃度與智能監(jiān)測終端所處位置等信息。
監(jiān)測終端軟件設(shè)計流程如圖3所示。
圖3 智能監(jiān)測終端軟件設(shè)計流程圖
1)硬件通電后檢查硬件及各模塊初始化;
2)讀取各傳感器數(shù)值并填充至Frame 數(shù)據(jù)幀,實現(xiàn)液晶顯示;
3)設(shè)置中斷時間,確定采樣頻率為10 s/次;
4)判斷是否在標準值內(nèi),若超出范圍則啟動蜂鳴器報警;
5)按協(xié)議編碼Frame 數(shù)據(jù)幀,通過串口傳送至ESP32,采用IPv6 網(wǎng)絡(luò)發(fā)送至云平臺。
基于IPv6 的室內(nèi)空氣質(zhì)量智能監(jiān)測系統(tǒng)云平臺基于模塊化方式開發(fā),共分為3 個子模塊,分別為TCP server、Data back 與WEB 頁面。TCP server 接收來自智能監(jiān)測終端通過IPv6 發(fā)送的數(shù)據(jù)包后,根據(jù)數(shù)據(jù)編解碼協(xié)議將其解碼為十進制數(shù)據(jù),通過HTTP協(xié)議傳至Data back 并存儲至MySQL 數(shù)據(jù)庫。WEB頁面讀取數(shù)據(jù)庫中的數(shù)據(jù)并生成圖形化報表,用戶或管理員可登錄WEB 頁面與云平臺實現(xiàn)人機交互。云平臺主要數(shù)據(jù)流程如圖4所示。
圖4 數(shù)據(jù)主要流程圖
智能監(jiān)測終端與云平臺間采用TCP 協(xié)議進行通信,傳輸數(shù)據(jù)時,TCP server 子模塊通過3 次握手法與智能監(jiān)測終端建立連接,并開始接收來自智能監(jiān)測中端發(fā)送的十六進制數(shù)據(jù)包,將數(shù)據(jù)幀解碼后發(fā)送至數(shù)據(jù)交互后端Data back[13]。
TCP server 基于smart-socket 框架開發(fā),smartsocket是一款可以實現(xiàn)web socket 通訊的優(yōu)秀國產(chǎn)開源框架,可進行IOT、IM、RPC 等通信領(lǐng)域的開發(fā)?;趕mart-socket 進行通信開發(fā),主要有3 個步驟:協(xié)議編解碼、消息處理與啟動服務(wù)。在通信領(lǐng)域中,協(xié)議是通信雙方對傳輸/接收數(shù)據(jù)流的編解碼實現(xiàn)算法[14]。在文中系統(tǒng)中,定義了一種數(shù)據(jù)編解碼協(xié)議實現(xiàn)十六進制數(shù)據(jù)包與十進制數(shù)據(jù)的轉(zhuǎn)換,數(shù)據(jù)傳輸協(xié)議表如表1所示。
表1 數(shù)據(jù)傳輸協(xié)議表
Data back 子模塊將接收到的十進制數(shù)據(jù)按照空氣質(zhì)量指標名稱存儲至數(shù)據(jù)庫。子項目采用SpringBoot 框架開發(fā),提供REST 接口調(diào)用,數(shù)據(jù)庫采用MySQL 數(shù)據(jù)庫。對于像MySQL 這種傳統(tǒng)關(guān)系型數(shù)據(jù)庫,SpringBoot 使用JPA(Java Persistence API)資源庫實現(xiàn)對數(shù)據(jù)庫的增加與刪除[15]。在云平臺中,MySQL 數(shù)據(jù)庫中一共有2 張表格,分別為air_device與air_record。air_device 記錄用戶名、設(shè)備名稱、設(shè)備當前狀態(tài)(在線或離線)、設(shè)備創(chuàng)建時間、最后在線時間等信息;air_device 記錄設(shè)備名稱、各項空氣指標數(shù)據(jù)以及記錄時間等。
WEB 頁面基于Servlet 與JDBC(Java DataBsae Connectivity)開發(fā),包括用戶/管理員登錄界面與數(shù)據(jù)展示頁面。用戶在登錄界面輸入用戶名與密碼后,可以查看所屬監(jiān)測點的實時監(jiān)測數(shù)據(jù),并可根據(jù)需求以圖表化的形式查看任意時間段的歷史數(shù)據(jù)[16]。
對設(shè)計完成后的室內(nèi)空氣質(zhì)量智能監(jiān)測系統(tǒng)進行整體測試,監(jiān)測終端實物圖如圖5所示。實驗前,放置3 個智能監(jiān)測終端于學校教學區(qū)域,各終端通過ESP32 無線模塊連接至校園網(wǎng);將云平臺搭建于第二代中國教育和科研計算機網(wǎng)(CERNET2)。
圖5 智能監(jiān)測終端實物圖
實驗現(xiàn)象為在IPv6 網(wǎng)絡(luò)環(huán)境下,智能監(jiān)測終端可以穩(wěn)定地將傳感器所采集的空氣質(zhì)量數(shù)據(jù)上傳至云平臺。用戶通過瀏覽器窗口訪問云平臺,進而查看當前各監(jiān)測點的監(jiān)測數(shù)據(jù),頁面如圖6所示。
圖6 云平臺展示頁面圖
表2展示了某一監(jiān)測點的實驗數(shù)據(jù),表3提供了該監(jiān)測點標準測量值。通過比對兩組數(shù)據(jù)發(fā)現(xiàn),監(jiān)測終端所采集的數(shù)據(jù)與標準值很接近,說明智能監(jiān)測終端測量結(jié)果較為準確。
表2 某監(jiān)測點實驗數(shù)據(jù)
表3 某監(jiān)測點標準測量值
文中還針對智能監(jiān)測系統(tǒng)在IPv6 與IPv4 兩種網(wǎng)絡(luò)條件下的延遲時間做了對比實驗,實驗結(jié)果如圖7所示。證明在中轉(zhuǎn)路由較少的情況下,IPv6 網(wǎng)絡(luò)與IPv4 網(wǎng)絡(luò)相比,延遲時間相差不多,但IPv6 網(wǎng)絡(luò)更加穩(wěn)定。
圖7 IPv6/IPv4延遲比較圖
文中設(shè)計了一種基于IPv6 網(wǎng)絡(luò)的室內(nèi)空氣質(zhì)量智能監(jiān)測系統(tǒng),系統(tǒng)分為監(jiān)測終端與云平臺,可以24小時實時監(jiān)測室內(nèi)空氣質(zhì)量狀況。監(jiān)測終端通過IPv6 網(wǎng)絡(luò)傳輸數(shù)據(jù)至云平臺,用戶訪問云平臺可查看監(jiān)測數(shù)據(jù)。限于時間與實驗條件,監(jiān)測系統(tǒng)仍有改進的空間,下一步的研發(fā)重點是對數(shù)據(jù)的深入分析與移動端APP 的設(shè)計與研發(fā)。