(常州輕工職業(yè)技術(shù)學(xué)院電子電氣工程系1,江蘇 常州 213164;上海交通大學(xué)電子信息與電氣工程學(xué)院2,上海 200240)
溫濕度監(jiān)測[1]在工業(yè)、農(nóng)業(yè)、化工等行業(yè)有著廣泛的應(yīng)用。在很多情況下溫濕度監(jiān)測需要對較大空間的多個點(diǎn)和不同空間的點(diǎn)進(jìn)行監(jiān)測,傳統(tǒng)的有線方式[2-3]極為不便。為了實(shí)時準(zhǔn)確地監(jiān)測多個觀測點(diǎn)的溫濕度情況,需要實(shí)現(xiàn)溫濕度的分布測量和無線傳輸?shù)墓δ堋?/p>
目前,溫濕度分布式無線監(jiān)測網(wǎng)絡(luò)大多采用ZigBee技術(shù)[4]。該技術(shù)雖然功耗較低,但是傳輸速度較低,構(gòu)建的網(wǎng)絡(luò)為封閉式網(wǎng)絡(luò),不能和廣泛應(yīng)用的Internet/Intranet直接集成。而WiFi技術(shù)[5]具有傳輸速度高、覆蓋范圍遠(yuǎn)、組網(wǎng)簡單、與Internet可無縫連接等優(yōu)點(diǎn)。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,眾多的嵌入式系統(tǒng)具有增加WiFi特性的需求。同時嵌入式WiFi芯片的成本降低和可靠性增加,使得WiFi技術(shù)成為具有發(fā)展優(yōu)勢的嵌入式網(wǎng)絡(luò)解決方案。文獻(xiàn)[6]~[8]分別將WiFi技術(shù)應(yīng)用到礦井安全、溫濕度監(jiān)測、電力設(shè)備狀態(tài)監(jiān)測中,取得了較好的效果。然而在WiFi無線路由軟件開發(fā)設(shè)計(jì)中,該協(xié)議移植困難,造成開發(fā)時間長,對于普通單片機(jī)開發(fā)人員而言,開發(fā)WiFi網(wǎng)絡(luò)通信難度較大。
針對以上無線WiFi網(wǎng)絡(luò)開發(fā)中的難點(diǎn),本文提出直接采用串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸模塊。利用該模塊單片機(jī)開發(fā)人員在開發(fā)中無需關(guān)注無線通信如何實(shí)現(xiàn),大大節(jié)約了開發(fā)時間,降低了開發(fā)難度。
分布式無線溫濕度采集監(jiān)測系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 監(jiān)測系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)主要由以下3個部分組成:溫濕度測量模塊和STM32單片機(jī)、WiFi無線收發(fā)模塊和無線路由器、遠(yuǎn)程服務(wù)器。系統(tǒng)以STM32F103單片機(jī)為控制核心,利用DHT11數(shù)字式溫度傳感器采集溫濕度信號,并送入單片機(jī)處理后顯示。然后把數(shù)據(jù)通過單片機(jī)的串口送入串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸模塊中,由該模塊進(jìn)行無線數(shù)據(jù)的收發(fā)。無線路由器進(jìn)行中繼和路由,遠(yuǎn)程服務(wù)器對各節(jié)點(diǎn)進(jìn)行遠(yuǎn)程控制并進(jìn)行數(shù)據(jù)的遠(yuǎn)程顯示。
無線溫濕度傳感網(wǎng)絡(luò)節(jié)點(diǎn)主要由單片機(jī)、數(shù)字式溫濕度傳感器、WiFi無線收發(fā)模塊、LCD液晶顯示模塊組成。節(jié)點(diǎn)硬件結(jié)構(gòu)如圖2所示。
圖2 節(jié)點(diǎn)硬件結(jié)構(gòu)圖
單片機(jī)控制系統(tǒng)選擇意法半導(dǎo)體公司生產(chǎn)的STM32F103。STM32F103為增強(qiáng)型,工作頻率為72 MHz,帶有片內(nèi)RAM和豐富的外設(shè),滿足高性能、低功耗、低成本的嵌入式系統(tǒng)的要求。
STM32F103是遠(yuǎn)程節(jié)點(diǎn)的核心,其完成整個溫濕度數(shù)據(jù)的采集、處理、顯示及發(fā)送。DHT11溫濕度傳感器通過單總線和單片機(jī)的I/O口相連,接口簡單,抗干擾能力強(qiáng)。LCD液晶顯示模塊也是通過I/O口和單片機(jī)相連,完成字符的顯示和控制。STM32F103和WiFi無線收發(fā)模塊通過單片機(jī)的串口UART相連。
溫濕度傳感器系統(tǒng)采用廣州奧松電子公司生產(chǎn)的DHT11數(shù)字式溫濕度傳感器,它是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括1個電阻式感濕元件和1個NTC測溫元件,并與1個高性能8位單片機(jī)相連接。因此,該產(chǎn)品具有品質(zhì)卓越、響應(yīng)快、抗干擾能力強(qiáng)、性價比高等優(yōu)點(diǎn)。超小的體積、極低的功耗,信號傳輸距離可達(dá)20 m以上,使其成為各類甚至最為苛刻的應(yīng)用場合的最佳選擇。濕度測量范圍為20~90%RH ,測濕精度為±5%RH,溫度測量范圍為0~50 ℃,測溫精度±2 K,測量分辨率分別為8 bit(溫度)、8 bit(濕度)。
DHT11采用單線雙向的串行接口,引腳DATA 用于STM32F103單片機(jī)與 DHT11之間的通信和同步。采用單總線數(shù)據(jù)格式,一次通信時間4 ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。當(dāng)DHT11傳感器和單片機(jī)STM32F103的I/O接線引腳小于20 m時,DATA引腳需上拉5 kΩ電阻。
本文采用武漢密友電子有限公司開發(fā)的多功能UART轉(zhuǎn)WiFi數(shù)據(jù)傳送模塊ST-MW-08S。該模塊內(nèi)部集成了支持ARP、ICMP、UDP 、 TCP/IP、DHCP客戶端以及DHCP服務(wù)器等諸多協(xié)議和 WiFi 驅(qū)動;同時具備通用串口、PWM以及多路通用I/O的輸入輸出等功能;具有系統(tǒng)接口靈活、編程控制方便等諸多優(yōu)點(diǎn)。在網(wǎng)絡(luò)結(jié)構(gòu)方面,模塊支持基礎(chǔ)網(wǎng)絡(luò)(infra)和特殊的Ad hoc網(wǎng)絡(luò)結(jié)構(gòu)。在加密認(rèn)證方面,模塊支持開放性WEP 64/128、WPA、TKIP、AES等諸多安全協(xié)議。靈活的結(jié)構(gòu)設(shè)計(jì)使得模塊在功能完備的前提下?lián)碛懈凸暮洼^高的數(shù)據(jù)吞吐率。用戶利用它可以輕松實(shí)現(xiàn)嵌入式設(shè)備的無線網(wǎng)絡(luò)功能,節(jié)省人力物力和開發(fā)時間,使產(chǎn)品更快地投入市場,增強(qiáng)競爭力。UART接口最高波特率為115 200 bit/s,具有 TCP、UDP 數(shù)據(jù)傳輸模式,并且支持串口和網(wǎng)頁兩種參數(shù)配置的方式,方便使用。
STM32F103單片機(jī)和WiFi無線收發(fā)模塊通過串口UART相連,然后通過串口或網(wǎng)頁配置WiFi模塊的工作方式和參數(shù),即可正常工作。STM32F103單片機(jī)通過串口UART發(fā)送數(shù)據(jù)到WiFi模塊,然后由WiFi無線收發(fā)模塊完成協(xié)議的轉(zhuǎn)換和數(shù)據(jù)的無線收發(fā)。
系統(tǒng)的軟件設(shè)計(jì)主要包括溫濕度采集節(jié)點(diǎn)的程序設(shè)計(jì)和遠(yuǎn)程服務(wù)器的程序設(shè)計(jì)。
溫濕度采集節(jié)點(diǎn)作為WiFi網(wǎng)絡(luò)的一個節(jié)點(diǎn),主要任務(wù)是測量當(dāng)前環(huán)境的溫濕度數(shù)據(jù),并通過處理由液晶LCD顯示當(dāng)前溫濕度參數(shù)。當(dāng)接收到遠(yuǎn)程服務(wù)器的不同命令時,通過串口發(fā)送溫濕度數(shù)據(jù)到WiFi無線收發(fā)模塊,或者設(shè)置溫濕度的上下限參數(shù)。溫濕度采集節(jié)點(diǎn)和遠(yuǎn)程服務(wù)器的TCP/UDP通信鏈路,是由WiFi無線收發(fā)模塊通過配置后自動完成的。單片機(jī)STM32F103接收遠(yuǎn)程服務(wù)器的命令是通過串口中斷來實(shí)現(xiàn)的。根據(jù)系統(tǒng)原理,溫濕度采集節(jié)點(diǎn)軟件流程圖如圖3所示。整個軟件開發(fā)在Keil uvision3集成開發(fā)環(huán)境下編寫,采用模塊化方法,C語言開發(fā)。
圖3 節(jié)點(diǎn)軟件程序流程圖
在系統(tǒng)總體設(shè)計(jì)中,本文采用服務(wù)器數(shù)據(jù)采集控制模式,這是最常用的應(yīng)用模式之一。各個溫濕度采集節(jié)點(diǎn)作為客戶端分布在網(wǎng)絡(luò)的不同位置,通過無線WiFi網(wǎng)絡(luò)將數(shù)據(jù)傳送到遠(yuǎn)程服務(wù)器,并接收服務(wù)器的數(shù)據(jù)。
本文利用VC++ 6.0設(shè)計(jì)遠(yuǎn)程服務(wù)器監(jiān)控系統(tǒng)。采用Socket應(yīng)用編程接口,建立WinSock描述字Socket,完成網(wǎng)絡(luò)底層溝通;利用TCP/IP協(xié)議在無線網(wǎng)絡(luò)上建立數(shù)據(jù)通信。
為了解決多客戶端/服務(wù)器通信問題,本文采用非阻塞模式,通過調(diào)用Select函數(shù)解決阻塞問題。另外,利用對話框?qū)崿F(xiàn)溫濕度參數(shù)的顯示和數(shù)據(jù)的發(fā)送。
整個系統(tǒng)采用多客戶端/服務(wù)器模式。服務(wù)器程序總體框圖如圖4所示。
圖4 服務(wù)器程序總體框圖
以上系統(tǒng)軟硬件調(diào)試成功后,還需要通過相應(yīng)的配置,完成整個系統(tǒng)的設(shè)計(jì)。
① WiFi無線收發(fā)模塊配置
WiFi無線收發(fā)模塊的配置主要通過串口和PC機(jī)相連,利用專用軟件來實(shí)現(xiàn)。主要設(shè)置參數(shù)有串口通信協(xié)議、無線網(wǎng)絡(luò)名稱、加密方式、密鑰、客戶端和服務(wù)器端。如設(shè)置成客戶端,還需設(shè)置連接的服務(wù)器的IP地址和端口號。其中串口通信協(xié)議的配置和單片機(jī)STM32F103的串口配置要一致。
② 無線路由器配置
在分布式無線WiFi網(wǎng)絡(luò)中,無線路由器的主要作用是中繼和路由。利用無線路由器的DHCP功能,可以給各個客戶端自動分配一個固定的IP地址,使得每臺客戶端不需要單獨(dú)配置一個IP地址。而系統(tǒng)主機(jī)即服務(wù)器需要分配一個固定的IP地址,使得每個客戶端可以可靠地連接到這個固定地址即服務(wù)器。無線路由器的主要設(shè)置包括無線網(wǎng)絡(luò)的名稱、加密方式和密鑰、路由器的IP地址、自動分配客戶端IP地址功能及IP地址范圍等。
③ 服務(wù)器IP地址配置
主控計(jì)算機(jī)還需要設(shè)置它的固定IP地址,從而把主控計(jì)算機(jī)加入到無線網(wǎng)絡(luò)中,建立主控服務(wù)器。其中,IP地址和WiFi無線收發(fā)模塊中配置的服務(wù)器IP地址要一致。
④ 試驗(yàn)結(jié)果
在完成上述配置及軟硬件設(shè)計(jì)后,在一定的環(huán)境下對系統(tǒng)進(jìn)行測試,其中遠(yuǎn)程服務(wù)器和無線路由器在1個房間,2個數(shù)據(jù)采集節(jié)點(diǎn)在另外2個隔壁房間。經(jīng)測試,遠(yuǎn)程服務(wù)器完全可以搜索到2個采集節(jié)點(diǎn),并準(zhǔn)確得到2個節(jié)點(diǎn)的溫濕度數(shù)據(jù)。另外,在室內(nèi)非遮擋環(huán)境下100 m內(nèi),遠(yuǎn)程服務(wù)器也可以搜索到采集節(jié)點(diǎn),并能可靠地采集節(jié)點(diǎn)通信,得到準(zhǔn)確的數(shù)據(jù)和控制各采集節(jié)點(diǎn)。這表明系統(tǒng)達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
本文利用串口(UART)轉(zhuǎn)WiFi數(shù)據(jù)傳送模塊,設(shè)計(jì)了基于WiFi技術(shù)的分布式無線溫濕度監(jiān)測系統(tǒng)。利用該模塊可以大大縮短無線WiFi網(wǎng)絡(luò)的開發(fā)時間。利用數(shù)字?jǐn)?shù)溫濕度傳感器DHT11采集溫濕度信號,節(jié)約了成本,接口簡單、抗干擾能力強(qiáng)。利用Socket類和Select函數(shù)設(shè)計(jì)了基于多客戶端/服務(wù)器的TCP/IP通信,使得系統(tǒng)具有更強(qiáng)的擴(kuò)展性。該分布式無線溫濕度監(jiān)測系統(tǒng)既可以現(xiàn)場觀測每個節(jié)點(diǎn)的參數(shù),也可以遠(yuǎn)程監(jiān)測各個節(jié)點(diǎn)的參數(shù)。另外,對于新加入的采集節(jié)點(diǎn),無需任何設(shè)置,由無線路由器自動分配IP地址并接入到遠(yuǎn)程服務(wù)器中。通過遠(yuǎn)程服務(wù)器還可以接入Internet中,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。系統(tǒng)布線簡單、成本較低、擴(kuò)展性好,具有較強(qiáng)的應(yīng)用前景。
[1] 馮顯英.基于數(shù)字溫濕度傳感器SHT11的溫濕度測控系統(tǒng)[J].自動化儀表,2006,27(1):59-61.
[2] 昊淵.多點(diǎn)環(huán)境溫濕度監(jiān)測系統(tǒng)[J].電子測量技術(shù),2010,33(5):109-114.
[3] 王磊,顧德英.基于以太控制網(wǎng)絡(luò)的溫度測控系統(tǒng)[J].儀器儀表學(xué)報,2005,26(8):24-26.
[4] 孟慶斌,潘勇.基于CC2430的分布式無線溫度測量系統(tǒng)設(shè)計(jì)[J].電子測量技術(shù),2009(5):128-130.
[5] 李永忠.無線局域網(wǎng)WALN及其數(shù)據(jù)傳輸技術(shù)[J].儀器儀表學(xué)報,2004,25(4):1003-1005.
[6] 蔣峰,張凌濤,賀超英.WiFi技術(shù)在礦井遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用[J].煤礦安全,2010(3):62-65.
[7] 曾歡,劉毅.嵌入式WiFi技術(shù)在溫室環(huán)境監(jiān)測系統(tǒng)中的應(yīng)用[J].林業(yè)機(jī)械與木工設(shè)備,2008,36(2):449-51.
[8] 王瑋.基于WiFi的輸電線路狀態(tài)監(jiān)測數(shù)據(jù)采集器設(shè)計(jì)[J].機(jī)電信息,2011(18):143-145.
[9] 李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.
[10]李博軒.Visual C++6.0網(wǎng)絡(luò)及Internet開發(fā)指南[M].北京:清華大學(xué)出版社,2002.