湖北工業(yè)大學(xué)機械工程學(xué)院 劉嘉誠 段磊磊 朱鄖濤 張秦 翟中生
基于以太網(wǎng)的溫濕度檢測及控制系統(tǒng)設(shè)計
湖北工業(yè)大學(xué)機械工程學(xué)院 劉嘉誠 段磊磊 朱鄖濤 張秦 翟中生
本設(shè)計是基于STM32單片機為核心的自動澆水系統(tǒng),通過移植輕量級TCP/IP協(xié)議棧LWIP搭建Web服務(wù)器,從而可以通過網(wǎng)頁實時監(jiān)控盆栽土壤濕度和遠程控制系統(tǒng)澆水。該方案不僅可以及時給盆栽澆水,而且降低了開發(fā)成本,具有較高的應(yīng)用價值。
LWIP協(xié)議棧;以太網(wǎng);Web服務(wù)器;遠程控制
隨著生活質(zhì)量不斷的提高,許多人喜歡在家里或者辦公室擺上花盆,這樣不僅可以陶冶情操而且可以達到凈化室內(nèi)空氣的功效。但是,在生活中很多時候人們太忙沒有時間顧及這些花草,室內(nèi)花草由于受不到雨水的滋潤很容易凋謝。人們這個時候就會很困擾,自己好不容易買的花草因為自己無暇照顧而死亡,心情也受到了不好的影響。很多人對花草有著天生的喜愛,看到這些花死去是很不樂意的。雖然市場上有賣盆花自動澆水器,但價格很貴,并且多數(shù)是設(shè)定一個定時澆水的時間,很難做到給對盆花自動適時適量澆水。也有盆花缺水報警器,可以提醒人們及時地給盆花澆水,雖然這種設(shè)備比較經(jīng)濟,但這種報警器只是報警,澆水還需要人們親自動手。家中無人時,即使報警也不會有人澆水,設(shè)備就成了擺設(shè)。因此,設(shè)計一種集盆花土壤濕度檢測、自動澆水系統(tǒng),對盆栽適時適量的澆水,也可以通過遠程控制系統(tǒng)給盆栽澆水。
現(xiàn)階段,石油化工、煤炭、冶金、交通、電力等工業(yè)行業(yè)已逐步應(yīng)用了以太網(wǎng)技術(shù)。從全球來看,由于以太網(wǎng)技術(shù)擁有開放性好,應(yīng)用廣泛,透明與統(tǒng)一的通訊協(xié)議,高傳輸速率保證實時性等優(yōu)點,以太網(wǎng)行業(yè)在近10年的增速遠遠高于現(xiàn)場總線和互聯(lián)網(wǎng)的增速,以太網(wǎng)行業(yè)作為新興產(chǎn)業(yè)已進入了發(fā)展的導(dǎo)入期,并將發(fā)展成為工業(yè)控制領(lǐng)域中的領(lǐng)頭羊,使通過以太網(wǎng)對遠程設(shè)備進行檢測和控制成為一種可能,解決了受時間和地理條件約束的疑難問題。
從目前的發(fā)展現(xiàn)狀來看,以太網(wǎng)成為應(yīng)用最廣泛的計算機網(wǎng)絡(luò)技術(shù),Java,VisualC++,VisualBasic等編程語言都支持以太網(wǎng)的應(yīng)用與開發(fā),使得以太網(wǎng)能在多種開發(fā)環(huán)境和開發(fā)工具可供選擇的情況下,使用的范圍更加廣泛。研究和實踐證明,基于Ethernet技術(shù)研制的工業(yè)生產(chǎn)過程現(xiàn)場控制網(wǎng)絡(luò)的傳輸鏈路層,可以較好地滿足大多數(shù)遠程監(jiān)控系統(tǒng)應(yīng)用的技術(shù)要求。
本文著眼于設(shè)計一個基于以太網(wǎng)的遠程監(jiān)控系統(tǒng),實現(xiàn)對盆栽溫濕度的檢測和控制,采用STM32F103為主控制器來控制以太網(wǎng)控制器ENC28J60與計算機通信,通過主控制器采集土壤濕度和環(huán)境溫度數(shù)據(jù)。移植輕量級TCP/IP協(xié)議棧LWIP搭建Web服務(wù)器[1],把溫濕度以網(wǎng)頁的形式顯示給用戶。用戶可以登入手機或者電腦瀏覽器,對盆栽的溫濕度進行遠程監(jiān)控,也可以通過網(wǎng)頁遠程控制系統(tǒng)給盆栽澆水。遠程監(jiān)控系統(tǒng)總體框圖如下圖1所示。
圖1 遠程監(jiān)控系統(tǒng)總體框圖
在進行數(shù)據(jù)傳輸之前,首先要對主控制系統(tǒng)的各模塊進行初始化設(shè)置。系統(tǒng)初始化配置如圖2所示,分別要對STM32主控芯片的GPIO引腳配置、ADC通道、SPI接口、ENC28J60以太網(wǎng)芯片模塊、TFT彩屏等進行初始化[2]。初始化后,外圍傳感器開始采集數(shù)據(jù),通過以太網(wǎng)網(wǎng)口把數(shù)據(jù)發(fā)送到交換機上,由交換機分配數(shù)據(jù)包給訪問的計算機,通過網(wǎng)頁頁面接收數(shù)據(jù)并實時顯示。通過網(wǎng)頁可以遠程控制澆水裝置給盆栽澆水。主控制系統(tǒng)程序設(shè)計流程圖如圖2所示。
圖2 系統(tǒng)程序設(shè)計流程圖
2.1 LWIP協(xié)議棧的移植
LWIP是瑞典計算機科學(xué)院(SICS)的AdamDunkels等開發(fā)的一個小型開源的TCP/IP協(xié)議棧,是TCP/IP的一種實現(xiàn)方式。LWIP實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,它只需十幾KB的RAM和40K左右的ROM就可以運行,包括TCP,UDP,ICMP,DHCP,PPP和ARP等常見協(xié)議的所有或部分功能,而且提供了類似伯克利TCP/IP的API函數(shù),使LWIP協(xié)議棧十分適合在低端的嵌入式系統(tǒng)中使用[3]。
網(wǎng)關(guān)采用可靠的TCP傳輸協(xié)議,保證了數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
如圖3所示,數(shù)據(jù)發(fā)送的發(fā)起者是應(yīng)用層。首先是應(yīng)用層調(diào)用ip_write()函數(shù),接著就是再將控制權(quán)交給tcp_enqueue()函數(shù),使數(shù)據(jù)分割成適當(dāng)大小的TCP段,然后放到所屬連接的傳輸隊列中。然后通過tcp_output()函數(shù)判斷接收器窗口是否有足夠大的空間,如果空間滿足,就使用ip_route()及ip_output_if()函數(shù)發(fā)送數(shù)據(jù)。
圖3 協(xié)議棧處理過程圖
數(shù)據(jù)接受的發(fā)起者是網(wǎng)口接口層,首先是網(wǎng)口接口將數(shù)據(jù)包傳送給ip_input()函數(shù),經(jīng)過驗證IP頭后傳給TCP段給tcp_input()函數(shù)。經(jīng)過TCP解析和TCP連接。這個TCP段到達tcp_rocess()函數(shù),實現(xiàn)了TCP狀態(tài)機,任何必要的狀態(tài)轉(zhuǎn)換在這里實現(xiàn),最終tcp_receive()函數(shù)將數(shù)據(jù)傳送給上層的應(yīng)用程序,完成接受過程。
2.2 基于STM32的Web服務(wù)器的實現(xiàn)
Web通信是在TCP通信的基礎(chǔ)上再使用了HTTP協(xié)議,使得兩個不同的Web應(yīng)用程序能正常的通信。在Keil軟件中基于LWIP搭建Web服務(wù)器,用Dreamweaver編寫靜態(tài)網(wǎng)頁。交互方式主要是通過表單來完成,使用了SSI技術(shù)和CGI技術(shù)。通過瀏覽器控制遠程盆栽的LED指示燈和遠程控制澆水就是使用的CGI技術(shù)。CGI是一種公共的網(wǎng)關(guān)接口,是一種網(wǎng)絡(luò)核心技術(shù)。實現(xiàn)服務(wù)器與客服端的交互功能,在實際中也用的十分廣泛。通過網(wǎng)頁查看盆栽土壤濕度、環(huán)境溫度、時間和日期是通過SSI來實現(xiàn)的。利用S SI技術(shù)可以顯示圖形,文本或程序應(yīng)用程序包含到網(wǎng)頁中[4]。Dreamweaver網(wǎng)頁編輯界面如下圖圖4所示。
圖4 Dreamweaver網(wǎng)頁編輯界面
用路由器搭建了一個網(wǎng)絡(luò),以驗證系統(tǒng)的可行性,在瀏覽器輸入監(jiān)控設(shè)備的IP地址時,首先出現(xiàn)的是監(jiān)控系統(tǒng)的主頁頁面,如下圖圖5所示,可了解系統(tǒng)的功能。在這個頁面中,有遠程控制、土壤濕度、環(huán)境溫度選項。頁面會每3s刷新一次,以便能及時更新當(dāng)前溫度。
圖5 監(jiān)控系統(tǒng)的主頁頁面
我們通過點擊遠程控制,就會看到如圖6的頁面,我們可以遠程控制系統(tǒng)指示燈的亮滅和遠程控制系統(tǒng)澆水,點擊土壤濕度,就會看到如圖7的頁面,我們可以實時觀測到土壤濕度的變化。也可以用智能手機登錄設(shè)置好的IP地址進行網(wǎng)頁控制,使控制方式多樣化,符合了移動智能終端控制的發(fā)展要求。
圖6 遠程控制頁面
圖7 土壤濕度和環(huán)境溫度顯示頁面
基于以太網(wǎng)的溫度監(jiān)控系統(tǒng)是一個遠程的溫度監(jiān)控系統(tǒng),在監(jiān)控端構(gòu)建了一個WebServer服務(wù)器,并能在網(wǎng)頁上為用戶實時提供監(jiān)控數(shù)據(jù),同時,用戶也可以通過網(wǎng)頁去控制設(shè)備的工作狀態(tài)。在一定程度上可以將本系統(tǒng)看成是智能家居設(shè)備的一個縮影,如果能提供更豐富的功能,完善其中存在的問題,并將控制端很好地移植到智能設(shè)備上,人們便能輕而易舉地掌控家庭智能設(shè)備。在將來,這種模式可以改善人們的生活體驗。
采用STM32F103主控制芯片和ENC28J60以太網(wǎng)控制器構(gòu)建遠程Web網(wǎng)頁控制系統(tǒng),與現(xiàn)場總線相比,簡化了設(shè)計過程,減少了系統(tǒng)功耗,降低了系統(tǒng)搭建和維護成本;實現(xiàn)了計算機、智能手機、監(jiān)控系統(tǒng)終端等多樣化監(jiān)控方式;利用計算機和手機瀏覽器網(wǎng)頁頁面顯示監(jiān)控信息,無需進行上位機的開發(fā)。為智能控制特別是智能家居的控制提供了一種可行的方案,符合物聯(lián)網(wǎng)發(fā)展的趨勢,有著廣闊的應(yīng)用空間。參考文獻:
[1]孔棟,鄭建宏.嵌入式TCP/IP協(xié)議棧LWIP在ARM平臺上的移植與應(yīng)用[J].通信技術(shù),2008,41(6):39-41.
[2]彭剛,春志強.基于ARMCortex-M3的STM32系列嵌入式微控制器應(yīng)用實踐[M].北京電子工業(yè)出版社2011.
[3]羅軍舟等.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].北京:清華大學(xué)出版社,2004.6,21,63-65,102-103.
[4]徐葉,袁敏,李國軍.嵌入式Web服務(wù)器遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2013(2):94-98.
2017-3-02)