胡念祖 肖新帥
摘 要:隨著WIFI信號的覆蓋與普及,測溫系統(tǒng)溫度數(shù)據(jù)以無線傳輸成為可能。本文設(shè)計(jì)了一種基于WIFI和嵌入式WEB服務(wù)器的低成本遠(yuǎn)程室溫測量系統(tǒng),通過CGI技術(shù)和HTML+JS技術(shù),使得用戶通過手機(jī)端的任意瀏覽器都可以實(shí)時(shí)的查看溫度。經(jīng)過現(xiàn)場實(shí)驗(yàn)測試,表明了該方案的可行性,實(shí)用性,經(jīng)濟(jì)性。
關(guān)鍵詞:WIFI;嵌入式WEB;CGI;遠(yuǎn)程溫度監(jiān)控
DOI:10.16640/j.cnki.37-1222/t.2019.01.137
1 引言
傳統(tǒng)的室溫監(jiān)測儀已經(jīng)從水銀式物理指示器過渡到現(xiàn)在的電力電子式數(shù)字顯示,測量溫度范圍和測量精度也根據(jù)不同的需求多種多樣。簡單便攜的溫度測量設(shè)備移動(dòng)方便成本較低,但只能近距離的采集,用戶也只能近距離的獲取溫度數(shù)值。對測溫有輕微特殊要求的場合,在滿足測量需求的同時(shí),往往需要考慮通信設(shè)計(jì)、路線布局、上位機(jī)顯示或LCD液晶屏顯示的問題[1]。本系統(tǒng)從硬件設(shè)計(jì)上非常簡單,僅僅需要一個(gè)溫度傳感器和一個(gè)能提供WEB服務(wù)器和WIFI通信的單片機(jī)就可以實(shí)現(xiàn)[2],在軟件編程方面較傳統(tǒng)設(shè)計(jì)復(fù)雜,包括WEB服務(wù)器的設(shè)計(jì)、無線通信的配置等。最終用戶可以通過移動(dòng)手機(jī)要任意一種瀏覽器通過訪問指定的IP地址,就可以隨時(shí)隨地的獲取溫度值。
本系統(tǒng)的成本低廉,主要體現(xiàn)在以下三個(gè)方面:第一,涉及到的單個(gè)模塊成本低廉,且所需的模塊數(shù)量較少。第二,不需要LCD液晶顯示模塊或者其他上位機(jī)顯示裝置。第三,后續(xù)使用維護(hù)零成本,僅需要5V的電源就可以滿足需求,同時(shí)功耗也低。
2 總體設(shè)計(jì)
本系統(tǒng)包括感應(yīng)終端、服務(wù)器終端、用戶終端三部分。其中感應(yīng)終端就是溫度傳感器,本設(shè)計(jì)采用簡單通用的DS18B20,僅需一根線就可以實(shí)現(xiàn)與MCU的雙向通信,測溫范圍為-55~125℃。服務(wù)器終端設(shè)計(jì)采用ESP8266作為中央控制芯片,該芯片是32位的低功耗微型MCU,內(nèi)置高速的緩存器,支持 STA工作模式。ESP8266既要對DS18B20進(jìn)行配置,獲取有效的溫度數(shù)值,又要完成與WIFI信號的可靠連接,還要完成本地嵌入式WEB服務(wù)器的初始配置等工作。用戶終端是指用戶訪問手機(jī)瀏覽器的監(jiān)控畫面,該前端界面雖然位于用戶手機(jī),但其顯示效果的開發(fā)有效文件卻位于能提供WEB服務(wù)的單片機(jī)中,最終所編程的文件也要下載到單片機(jī)中,以便供用戶訪問。
3 系統(tǒng)的軟件設(shè)計(jì)
3.1 感應(yīng)終端軟件設(shè)計(jì)
初始化DS18B20所通信的IO口,MCU對DS18B20發(fā)出復(fù)位信號并等待回應(yīng),然后發(fā)送相應(yīng)的準(zhǔn)備命令,待準(zhǔn)備完成后讀取兩個(gè)字節(jié)的溫度二進(jìn)制代碼,由前五個(gè)位判斷測量值正負(fù)并轉(zhuǎn)換成相應(yīng)的時(shí)實(shí)溫度數(shù)值。
3.2 WIFI通信設(shè)計(jì)
ESP8266與所在環(huán)境路由器發(fā)射的WIFI信號可靠連接是有效溫度數(shù)據(jù)能夠通信的前提,網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)技術(shù)通信的基本條件。WIFI通訊所需的802.11 b/g/n標(biāo)準(zhǔn)就包含于國際上其中一種通用參考模型TCP/IP協(xié)議中。ESP8266自身集成的LWIP協(xié)議就是迷你版的TCP/IP協(xié)議,因此可以很好的解決關(guān)于以太網(wǎng)控制器等相關(guān)組件的網(wǎng)絡(luò)通信問題。為了無線連接成功,首先要配置模塊的station模式接受WIFI信號,找到WIFI所在的通道獲取頻段數(shù)據(jù),根據(jù)事先提供的賬號和密碼進(jìn)行連接,如果連接成功則在調(diào)試串口中輸出相應(yīng)的連接狀態(tài),同時(shí)輸出器路由所分配的IP地址和端口。
3.3 WEB服務(wù)器的設(shè)計(jì)
在成功連接已知WIFI的基礎(chǔ)上,獲取當(dāng)前連接WIFI后路由器所分配的IP地址和子網(wǎng)掩碼等信息,該路由器所分配的IP地址就可以作為用戶終端所請求溫度數(shù)據(jù)的訪問地址。ESP8266支持server和client兩種服務(wù)器模式,此時(shí)我們使用server工作模式來提供WEB服務(wù)。通訊方式支持TCP通信和UDP通訊,為了可靠的連接,保證通訊的無差錯(cuò)性,設(shè)計(jì)中選擇使用TCP協(xié)議打開某一端口,在定時(shí)器中實(shí)施監(jiān)聽該指定的端口以接受用戶終端的請求。同時(shí)定時(shí)器還要在temp=ds18b20ReadTemp()函數(shù)中發(fā)送已獲取的溫度數(shù)據(jù)給用戶終端。
CGI程序是連接外部用戶瀏覽器與本地服務(wù)器的一個(gè)獨(dú)立的接口[3]。通過CGI程序的設(shè)計(jì),用戶可以調(diào)用服務(wù)器中的程序。CGI定義了接口的規(guī)范,既要對接收的外部程序進(jìn)行處理,又要把處理結(jié)果反饋給服務(wù)器端。本設(shè)計(jì)中數(shù)據(jù)的交互是單向的,只有服務(wù)器終端向用戶端發(fā)送溫度數(shù)據(jù)的過程,因此CGI只需要判斷請求頭及請求方式是否正確就可以。如果正確,則調(diào)用服務(wù)器發(fā)送溫度數(shù)值給用戶終端。
3.4 用戶終端程序設(shè)計(jì)
HTML是一種描述性語言,包含了除了文字以外的信息表達(dá)形式,其特征的標(biāo)識(shí)符可以很好的被各種瀏覽器所識(shí)別,進(jìn)而在瀏覽器端按照事先定義的規(guī)范進(jìn)行展示。HTML包括head和body兩部分。在設(shè)計(jì)中head的部分僅定義了系統(tǒng)的標(biāo)題,給用戶以直觀的展示。body中發(fā)送GET請求獲取響應(yīng)類型為TEXT類型的數(shù)據(jù)包。
JavaScript是一種腳本語言,運(yùn)行在HTML中可以使靜態(tài)網(wǎng)頁表出現(xiàn)動(dòng)態(tài)的效果。為了使溫度數(shù)值自動(dòng)的實(shí)時(shí)更新,本設(shè)計(jì)就使用了JS腳本來實(shí)現(xiàn)。同時(shí)為了減輕服務(wù)器端接收請求命令并響應(yīng)的壓力,本設(shè)計(jì)中使用異步請求方式,只需向服務(wù)器端發(fā)送一次請求就可以連續(xù)的獲取溫度數(shù)值,從而達(dá)到局部更新的效果。
4 結(jié)論
本文對溫度采集模塊和能夠提供WEB服務(wù)的單片機(jī)進(jìn)行了研究,設(shè)計(jì)了一種低成本的微型溫度監(jiān)測系統(tǒng),同時(shí)滿足了移動(dòng)性和遠(yuǎn)程性,使得用戶通過手機(jī)打開指定的IP地址就可以獲得實(shí)時(shí)溫度數(shù)值,具有一定的應(yīng)用前景。
參考文獻(xiàn):
[1]宋佩利,趙春祥,連蓉.基于LabVIEW的數(shù)據(jù)采集及處理系統(tǒng)設(shè)計(jì)[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2018,8(03):43-47.
[2]陳冉.基于B/S結(jié)構(gòu)的無線控制系統(tǒng)在數(shù)控設(shè)備上的應(yīng)用研究[D].深圳:深圳大學(xué),2017.
[3]翟玉石.基于嵌入式Web的無線視頻監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].吉林省教育學(xué)院學(xué)報(bào),2014,30(11):151-152.