丁 濤,劉祥吉
(延安大學(xué)化學(xué)與化工學(xué)院,陜西 延安 716000)
實(shí)驗(yàn)室是科學(xué)技術(shù)發(fā)展的搖籃,許多試驗(yàn)都要求在嚴(yán)格的環(huán)境下完成,而溫濕度是實(shí)驗(yàn)室的基本環(huán)境條件之一[1]。它影響著試驗(yàn)數(shù)據(jù)是否準(zhǔn)確、試驗(yàn)設(shè)備能否正常運(yùn)行。傳統(tǒng)的溫濕度監(jiān)控系統(tǒng)一般采用臺(tái)式機(jī)作為監(jiān)控終端,需要在指定的地點(diǎn)以及專用網(wǎng)絡(luò)設(shè)備的支持下對(duì)目標(biāo)環(huán)境進(jìn)行監(jiān)控,大大限制了監(jiān)控系統(tǒng)的應(yīng)用范圍和靈活性[2-3]。
本文設(shè)計(jì)的實(shí)驗(yàn)室溫濕度及有害氣體監(jiān)控系統(tǒng),采用了能夠校準(zhǔn)輸出信號(hào)的溫濕度復(fù)合傳感器DHT21。該傳感器具有單總線接口輸出數(shù)字信號(hào)以及精度高、價(jià)格低、外圍元件少、使用方便等優(yōu)點(diǎn),傳輸距離約為20 m。本系統(tǒng)采用WiFi模塊ESP8266進(jìn)行組網(wǎng),并與互聯(lián)網(wǎng)中的遠(yuǎn)程服務(wù)器進(jìn)行連接。只要能上網(wǎng)(有線或無(wú)線),該系統(tǒng)就能對(duì)現(xiàn)場(chǎng)環(huán)境進(jìn)行實(shí)時(shí)監(jiān)控,因而擴(kuò)大了監(jiān)控范圍。
本文設(shè)計(jì)的實(shí)驗(yàn)室溫濕度及有害氣體監(jiān)控系統(tǒng)分為溫濕度采集器、云服務(wù)器、手機(jī)應(yīng)用程序(application,APP)或計(jì)算機(jī)監(jiān)控端3個(gè)部分。監(jiān)控系統(tǒng)拓?fù)鋱D如圖1所示。監(jiān)控系統(tǒng)利用物聯(lián)網(wǎng)特性,對(duì)溫濕度采集器進(jìn)行聯(lián)網(wǎng)監(jiān)控。
圖1 監(jiān)控系統(tǒng)拓?fù)鋱D
由圖1可知:溫濕度采集器連接網(wǎng)絡(luò)使用的是目前較為成熟的無(wú)線組網(wǎng)技術(shù),其具有組網(wǎng)簡(jiǎn)單、設(shè)備成本低、布線少等特點(diǎn)。溫濕度采集器使用預(yù)設(shè)程序,將采集到的溫濕度數(shù)據(jù)上傳到云服務(wù)器中進(jìn)行數(shù)據(jù)處理、存儲(chǔ),并轉(zhuǎn)發(fā)至手機(jī)APP,或在計(jì)算機(jī)監(jiān)控端進(jìn)行顯示。
1.2.1DHT21傳感器
DHT21是溫濕度復(fù)合傳感器,由存儲(chǔ)在一次性可編程(one time programmable,OTP)內(nèi)存的校準(zhǔn)系數(shù)對(duì)測(cè)量數(shù)據(jù)進(jìn)行校準(zhǔn),并以單總線的方式輸出數(shù)字信號(hào)。其溫度的量程為-40~+80 ℃,分辨率達(dá)0.1 ℃,精度為±1 ℃;濕度的分辨率為0.1%,精度受溫度影響較大,在25 ℃時(shí)為±3%RH,0~50 ℃時(shí)為±5%RH。它們的輸出數(shù)字分辨率都為16 bit。只有單片機(jī)ESP8266 對(duì)DHT21采樣的周期間隔大于1.7 s時(shí),才能得到正確的數(shù)值。DHT21與ESP8266連接電路如圖2所示,連接引腳為GPIO5。
圖2 連接電路圖
1.2.2有害氣體檢測(cè)傳感器
有害氣體檢測(cè)傳感器MQ-7使用氣敏材料 SnO2。該傳感器工作原理為空氣中CO濃度的增加使其電導(dǎo)率增大,故可通過(guò)高低溫循環(huán)檢測(cè)方式檢測(cè)CO。MQ-7可以用于檢測(cè)多種含有CO的氣體,如煤氣等,因此廣泛應(yīng)用于工業(yè)、家庭氣體泄漏報(bào)警裝置中。其加熱功耗小于350 mW,加熱電壓為5.0 V±0.2 V(高溫時(shí))、1.5 V±0.1 V(低溫時(shí)),靈敏度大于5,能檢測(cè)濃度范圍在12.5~1 250 g/L的CO。MQ-7電路原理如圖3所示。其與ESP8266連接的引腳為GPIO13(軟件上為引腳7)。
圖3 MQ-7電路原理圖
在測(cè)量前,應(yīng)預(yù)加熱5 min,否則數(shù)據(jù)不準(zhǔn)確。當(dāng)輸出值為1時(shí),表示CO濃度正常;當(dāng)輸出值為0時(shí),表示CO濃度異常。在軟件上觸發(fā)下降沿事件,發(fā)送報(bào)警命令至服務(wù)器告知相關(guān)人員,并控制報(bào)警器進(jìn)行報(bào)警。
1.2.3溫濕度及有害氣體報(bào)警模塊
本設(shè)計(jì)采用的聲光報(bào)警器,其具體參數(shù)為:工作電壓220 V,功率1~3 W,音量90 dB,工作濕度范圍10%~90%。ESP8266的引腳GPIO15(軟件引腳8)通過(guò)繼電器與報(bào)警器連接來(lái)控制報(bào)警器啟停。當(dāng)其引腳GPIO15輸出1時(shí),繼電器關(guān)閉,報(bào)警器也關(guān)閉;當(dāng)其引腳GPIO15輸出0時(shí),繼電器開(kāi)啟,報(bào)警器開(kāi)始報(bào)警。
1.2.4采集器顯示模塊
由于ESP8266的引腳資源有限,所以采用顯示屏模塊SSD1306。在使用中,其只需2根電線就能實(shí)現(xiàn)與單片機(jī)的通信,減少了對(duì)單片機(jī)的引腳使用。該模塊工作電壓范圍為3.3~5 V,使用的是標(biāo)準(zhǔn)I2C總線協(xié)議,大小為0.96英寸(1英寸=25.4 mm),分辨率為128×64。ESP8266的GPIO14與顯示模塊的SDA引腳連接,GPIO12與顯示模塊的SCL引腳連接。
1.2.5采集器硬件結(jié)構(gòu)
溫濕度采集器硬件結(jié)構(gòu)框圖如圖4所示。
圖4 硬件結(jié)構(gòu)框圖
首先,由ESP8266芯片讀取DHT21測(cè)得的實(shí)驗(yàn)室溫濕度值,并將其顯示在OLED顯示屏上;然后,通過(guò)無(wú)線通信,將數(shù)據(jù)傳送至遠(yuǎn)程服務(wù)器,進(jìn)行存儲(chǔ)、計(jì)算、分析;最后,轉(zhuǎn)發(fā)至監(jiān)控端APP。
根據(jù)前文介紹,設(shè)計(jì)制作了電路板和外殼。該電路板使用5 V的電源,并采用USB供電。電路板由OLED顯示模塊、開(kāi)關(guān)按鈕、MICO電源接口、DHT21溫濕度傳感器、ESP8266芯片、5 V轉(zhuǎn)3.3 V電源模塊以及MQ-7氣體傳感器組成。
軟件部分使用Lua腳本語(yǔ)言編寫,并采用模塊化設(shè)計(jì)。根據(jù)系統(tǒng)功能,軟件劃分為主程序、采集器配網(wǎng)程序、溫濕度采集程序、溫濕度顯示程序、有害氣體濃度檢測(cè)程序等。
溫濕度采集器的軟件流程如圖5所示。
圖5 軟件流程圖
系統(tǒng)開(kāi)機(jī)后,先檢測(cè)其是否能連接WiFi網(wǎng)絡(luò)。如不能開(kāi)啟APP配網(wǎng)模式,則需等待網(wǎng)絡(luò)連接成功后開(kāi)啟MQTT客戶端;讀取溫濕度后,將數(shù)據(jù)送往顯示器,并上傳服務(wù)器。系統(tǒng)未連接網(wǎng)絡(luò)時(shí),將數(shù)據(jù)存儲(chǔ)在Flash中,等待網(wǎng)絡(luò)連接后再全部上傳。
服務(wù)器程序主要完成對(duì)采集器的認(rèn)證,并實(shí)現(xiàn)數(shù)據(jù)的接收、處理、存儲(chǔ)與轉(zhuǎn)發(fā)等功能。該程序采用Node.js編程語(yǔ)言編寫。
本服務(wù)器程序分為HTTP服務(wù)器和MQTT服務(wù)器2部分,監(jiān)控系統(tǒng)在APP實(shí)時(shí)采集數(shù)據(jù)時(shí)采用MQTT通信協(xié)議,溫濕度數(shù)據(jù)的歷史查詢采用HTTP協(xié)議傳輸至APP客戶端。在HTTP服務(wù)器中,采用RESTful API標(biāo)準(zhǔn)接口進(jìn)行設(shè)計(jì),并使用JSON Web Token技術(shù)對(duì)用戶身份驗(yàn)證并授權(quán)。在MQTT服務(wù)器中,采用了權(quán)限控制技術(shù),使采集器和APP客戶端需輸入用戶名和密碼進(jìn)行連接,并對(duì)發(fā)布及訂閱進(jìn)行了權(quán)限限制,使其在允許的權(quán)限內(nèi)運(yùn)行,保證了通信的安全、可靠[4-6]。
安卓APP監(jiān)控端通過(guò)API Cloud移動(dòng)應(yīng)用開(kāi)發(fā)平臺(tái),采用HTML/CSS和JavaScript等Web技術(shù)進(jìn)行編碼,并且在云端進(jìn)行編譯,生成APK應(yīng)用文件,降低了用戶在本地搭建編譯環(huán)境的難度。其具有與原生APP一樣的流暢度,且能跨平臺(tái)。該APP監(jiān)控端的主要界面列表如表1所示。
表1 APP監(jiān)控端主要界面列表
根據(jù)該系統(tǒng)HTTP服務(wù)器的RESTful API以及MQTT服務(wù)器權(quán)限要求,設(shè)計(jì)了設(shè)備監(jiān)控界面、數(shù)據(jù)查詢界面、個(gè)人用戶界面等,實(shí)現(xiàn)了APP實(shí)時(shí)監(jiān)控。其采集間隔為10 s。監(jiān)控一段時(shí)間后,發(fā)現(xiàn)其溫濕度數(shù)據(jù)變化較小,幾乎無(wú)變化。
通過(guò)對(duì)實(shí)驗(yàn)室內(nèi)的溫濕度及有害氣體測(cè)量,驗(yàn)證了本文設(shè)計(jì)的系統(tǒng)基本實(shí)現(xiàn)了對(duì)溫濕度設(shè)備上傳的數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè),并可按條件查詢數(shù)據(jù)庫(kù)中已經(jīng)存儲(chǔ)的溫濕度數(shù)值,達(dá)到了預(yù)期效果。
此外,該系統(tǒng)還可實(shí)現(xiàn)設(shè)備分組管理,并對(duì)設(shè)備進(jìn)行批量監(jiān)控,同時(shí)可為用戶配置網(wǎng)絡(luò)。
其發(fā)送的JSON數(shù)據(jù)格式為:
{
"cmd":"sta",
"data":{
"ssid":"wifi name",
"pwd":"wifi password"
}
}
JSON數(shù)據(jù)中,cmd字段為采集器要執(zhí)行的命令,data字段為WiFi賬號(hào)信息數(shù)據(jù)。
該監(jiān)控系統(tǒng)除了聲光報(bào)警器外,還具有短信報(bào)警、APP報(bào)警等功能。當(dāng)氣體濃度不正常、溫濕度值高于或低于預(yù)設(shè)報(bào)警值時(shí),溫濕度采集器將會(huì)啟動(dòng)聲光報(bào)警器進(jìn)行報(bào)警,并將報(bào)警信號(hào)上傳至服務(wù)器;服務(wù)器根據(jù)預(yù)設(shè)程序?qū)ζ溥M(jìn)行判斷處理,下發(fā)報(bào)警消息至APP客戶端,并發(fā)送報(bào)警短信[7-12]。
本文設(shè)計(jì)的溫濕度及有害氣體監(jiān)控系統(tǒng)報(bào)警流程如圖6所示。
圖6 監(jiān)控系統(tǒng)報(bào)警流程圖
本文基于云服務(wù)器、物聯(lián)網(wǎng)及大數(shù)據(jù)等背景,通過(guò)對(duì)智能化監(jiān)控系統(tǒng)的研究,實(shí)現(xiàn)了對(duì)溫濕度及有害氣體監(jiān)控系統(tǒng)的實(shí)時(shí)監(jiān)控、歷史數(shù)據(jù)查詢等基本功能。
此監(jiān)控系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、性價(jià)比高、易于實(shí)現(xiàn)、監(jiān)控方便等特點(diǎn)[3],實(shí)現(xiàn)了設(shè)備與用戶的綁定、設(shè)備列表顯示、設(shè)備實(shí)時(shí)數(shù)據(jù)顯示、設(shè)備數(shù)據(jù)存儲(chǔ)、設(shè)備歷史數(shù)據(jù)查詢、設(shè)備異常數(shù)據(jù)報(bào)警、用戶注冊(cè)、用戶登錄等諸多功能,解決了大數(shù)據(jù)存儲(chǔ)問(wèn)題。該監(jiān)控系統(tǒng)在智能家居、農(nóng)業(yè)情況監(jiān)測(cè)、污水監(jiān)測(cè)等方面具有廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] 劉軍良.WiFi技術(shù)在溫濕度遠(yuǎn)程監(jiān)測(cè)系統(tǒng)中的應(yīng)用[J].自動(dòng)化儀表,2014,35(6):79-82.
[2] 李佳毅,徐曉輝,蘇彥莽,等.基于 Android 平臺(tái)的智能溫室視頻無(wú)線監(jiān)控系統(tǒng)[J].農(nóng)機(jī)化研究,2013,35(8):188-191.
[3] 楊鵬,史旺旺,沈楚焱.預(yù)裝式變電站溫濕度煙霧WSN傳感器節(jié)點(diǎn)設(shè)計(jì)[J].自動(dòng)化儀表,2013,34(3):38-40.
[4] 姜濤,王學(xué)文,馬家威,等.基于ZigBee和APP技術(shù)的智能公交系統(tǒng)及優(yōu)化設(shè)計(jì)[J].自動(dòng)化儀表,2015,36(12):31-35.
[5] 丁函,羅軍,陸文駿,等.智能家居控制APP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(1):121-125.
[6] 王艷萍,遲宗濤.基于手機(jī)APP的遠(yuǎn)程家電控制系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2017,17 (1):73-75.
[7] 張勇軍,熊慶國(guó).面向溫室集群的環(huán)境無(wú)線監(jiān)控系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀表,2015,30(3):27-30.
[8] 黃雷,文國(guó)軍,張奧東.基于Web的非開(kāi)挖鉆機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)[J].自動(dòng)化儀表,2016,37(4):82-85.
[9] 余湧,馬婭婕,彭攀來(lái),等.一種遠(yuǎn)程監(jiān)控報(bào)警系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化儀表,2016,37(6):62-65.
[10]趙陽(yáng),高強(qiáng).基于Web遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)[J].自動(dòng)化儀表,2015,36(1):31-36.
[11]鄧昀,李朝慶,程小輝.基于物聯(lián)網(wǎng)的智能家居遠(yuǎn)程無(wú)線監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2017,37(1):159-165.
[12]戴宇培,張鈺,劉云飛.智能家居和樓宇的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2017,17(2):49-52.