王紀(jì)剛,袁紅兵,張相田
(南京理工大學(xué)機(jī)械工程學(xué)院,江蘇南京 210094)
目前基于傳感器的溫室現(xiàn)場(chǎng)數(shù)據(jù)信息采集模式有有線和無線兩種模式,有線模式以CAN總線通信方式和485總線為主要形式,無線通信模式又可以分為長(zhǎng)距離無線通信(GSM/GPRS等)和短距離無線通信(藍(lán)牙/Zigbee等)兩種模式,無線通信模式由于其自身組網(wǎng)方便、適應(yīng)性強(qiáng)、成本低等特點(diǎn),在農(nóng)業(yè)生產(chǎn)現(xiàn)場(chǎng)數(shù)據(jù)采集方面有巨大的發(fā)展應(yīng)用空間。Zigbee技術(shù)可以實(shí)現(xiàn)與長(zhǎng)距離無線通信以及短距離無線通信模式的無縫連接,實(shí)現(xiàn)遠(yuǎn)程農(nóng)業(yè)生產(chǎn)數(shù)據(jù)信息的自動(dòng)采集,該技術(shù)將被測(cè)對(duì)象的各種參量通過各種傳感元件做適當(dāng)轉(zhuǎn)換,或者通過數(shù)字傳感器對(duì)被測(cè)對(duì)象進(jìn)行實(shí)時(shí)采集后,再經(jīng)信號(hào)調(diào)理、采樣、量化、編碼、傳輸?shù)炔襟E,最后送到控制器進(jìn)行數(shù)據(jù)的處理或存儲(chǔ)[1]。
本文研究并提出一種基于Zigbee技術(shù)的溫濕度數(shù)據(jù)采集板的設(shè)計(jì)方案,該溫濕度采集板主要應(yīng)用于溫室大棚中。在溫室大棚中,為了增加數(shù)據(jù)傳輸?shù)木嚯x和了解大棚中不同位置的溫濕度值,通過構(gòu)建樹形簇狀網(wǎng)絡(luò)實(shí)時(shí)采集溫室中的環(huán)境數(shù)據(jù),樹形簇狀網(wǎng)絡(luò)中的采集節(jié)點(diǎn)和路由節(jié)點(diǎn)都可以由溫濕度數(shù)據(jù)采集板代替,該采集板負(fù)責(zé)數(shù)據(jù)的采集、接收與轉(zhuǎn)發(fā)。本文主要介紹溫濕度數(shù)據(jù)采集板的軟硬件設(shè)計(jì)。
該硬件系統(tǒng)主要包括7大部分,分別為電源、ZigBee發(fā)送電路、DS1302時(shí)鐘電路、電源電壓檢測(cè)電路、DHT11溫濕度采集電路、LCD液晶顯示電路以及控制器MSP430F149單片機(jī)等,硬件系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 溫濕度數(shù)據(jù)采集板的硬件系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)主要通過傳感器DHT11采集溫室大棚中的溫濕度值,并將采集到的數(shù)字?jǐn)?shù)據(jù)經(jīng)過單片機(jī)的相關(guān)處理得到具體的溫濕度值,將該值按照制定的協(xié)議組裝成數(shù)據(jù)幀并發(fā)送給ZigBee路由節(jié)點(diǎn),然后將采集得到的溫濕度值傳入液晶顯示屏,以供溫室現(xiàn)場(chǎng)工作人員的參考。
系統(tǒng)的電源供電方式有兩種,一種是由電池供電,另一種是由外接電源適配器供電。外部電壓通過穩(wěn)壓芯片78M05轉(zhuǎn)換為5 V,以供DHT11傳感器使用,再將5 V電壓經(jīng)過SPX1117M3-3.3穩(wěn)壓芯片將其轉(zhuǎn)換為3.3 V以供單片機(jī)使用。由外接電源適配器供電時(shí),為了防止其對(duì)電池的影響,在電池的正極添加一個(gè)起隔離作用的二極管。詳細(xì)電源電路如圖2所示。
圖2 電源電路
主控制器為MSP430F149單片機(jī),該芯片是TI公司生產(chǎn)的一種具有超低功耗特性的功能強(qiáng)大的單片機(jī),而且具有強(qiáng)大的處理能力、豐富的片上外圍模塊[2]。該主控電路主要包括時(shí)鐘電路、復(fù)位電路、JTAG接口電路,其中復(fù)位電路采用阻容復(fù)位,能夠達(dá)到通電自動(dòng)復(fù)位的目的。詳細(xì)電路見圖3。
圖3 主控制器電路
DHT11是一款濕溫度一體化的數(shù)字傳感器。該傳感器包括一個(gè)電阻式測(cè)濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接,而且通過單片機(jī)等微處理器簡(jiǎn)單的電路連接就能夠?qū)崟r(shí)的采集本地濕度和溫度。DHT11僅需要一個(gè)I/O口就可以與單片機(jī)進(jìn)行簡(jiǎn)單的單總線通信[3]。傳感器可以將采集得到的40 Bit數(shù)據(jù)一次性傳給單片機(jī),數(shù)據(jù)采用校驗(yàn)和方式進(jìn)行校驗(yàn),有效的保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。DHT11功耗低,5 V電源電壓下,最大工作電流為0.5 mA。具體電路如圖4。
圖4 傳感器電路
DHT11數(shù)字濕溫度傳感器采用單總線數(shù)據(jù)格式,其數(shù)據(jù)包由5Byte(40Bit)組成,分為小數(shù)和整數(shù)部分。
數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和,其中校驗(yàn)和數(shù)據(jù)為前四個(gè)字節(jié)相加[6]。
由于使用的單片機(jī)兼容電壓為1.8-3.6 V,DHT11的輸出電壓為5 V,所以為了使兩者電壓能夠兼容,在兩者中間使用了8位的雙向電壓轉(zhuǎn)換芯片SN74VC4245,該芯片可以將5 V電壓轉(zhuǎn)換為3.3 V,也可以將3.3 V電壓轉(zhuǎn)換為5 V。
HJ12864ZW液晶屏,該液晶有串行和并行兩種數(shù)據(jù)輸出方式,它的主要功能是將采集到的溫濕度值實(shí)時(shí)的顯示出來,以供現(xiàn)場(chǎng)工作人員隨時(shí)了解溫室環(huán)境中的溫濕度情況。具體電路如圖5。
圖5 液晶顯示電路
該部分電路采用了DS1302時(shí)鐘芯片,主要用于記錄采集到的溫濕度值的時(shí)間,以便工作人員使用。DS1302的外圍電路非常簡(jiǎn)單,X1、X2管腳外接32 K晶體提供震蕩源,VCC2管腳為主要的供電管腳,VCC1管腳為備用電源輸入,需要時(shí)可以外接鈕扣電池。DS1302工作時(shí),VCC2與VCC1兩個(gè)管腳中,選擇電壓高的那個(gè)管腳的電源作為工作的電源,DS1302的RST、I/O、SCLK管腳主要與單片機(jī)的通用I/O口進(jìn)行連接,實(shí)現(xiàn)數(shù)據(jù)傳輸及其控制,從而實(shí)現(xiàn)單片機(jī)對(duì)DS1302的讀寫操作。具體電路如圖6。
圖6 時(shí)鐘電路
當(dāng)系統(tǒng)采用電池組供電時(shí),電壓檢測(cè)電路用來檢測(cè)鎳鎘電池的電壓,當(dāng)電壓 VCC降到5 V以下時(shí)比較器LM393輸出低電平,光耦隔離器輸出高電平,同時(shí)LED燈亮,蜂鳴器鳴響起,提示鎳鎘電池電量不足,以便提醒用戶及時(shí)更換電池,具體電路如圖7。
圖7 電源電壓檢測(cè)電路
該部分主要采用北京云天創(chuàng)科技公司的ZigBee模塊,模塊內(nèi)置了通明轉(zhuǎn)發(fā)協(xié)議,不需要使用者再去研究復(fù)雜的Zigbee協(xié)議。另外,產(chǎn)品的配置除了可以使用上位機(jī)外,還可以使用AT命令,使用時(shí)只需要將其TXD、RXD分別與單片機(jī)的RXD、TXD相連接即可,具體電路圖如圖8。
圖8 ZigBee收發(fā)電路
管腳定義如下:
1)VCC電源管腳:模塊供電輸入,允許輸入直流電壓范圍為3.3 V ~3.6 V。
2)GND管腳:模塊的電源地。
3)RXD通信管腳:模塊的UART-RXD接口,數(shù)據(jù)輸入管腳,與外部控制器MCU的數(shù)據(jù)發(fā)送TXD管腳相連接,接口電平為 0 ~0.9*VCC。
4)TXD通信管腳:模塊的UART-TXD接口,數(shù)據(jù)輸出管腳,與外部控制器MCU的數(shù)據(jù)接收RXD管腳相連接,接口電平為 0 ~0.9*VCC。
5)SLP管腳(SLEEP):當(dāng)管腳產(chǎn)生一次0→1狀態(tài)改變時(shí),節(jié)點(diǎn)進(jìn)入休眠,再產(chǎn)生一次1→0狀態(tài)改變時(shí),節(jié)點(diǎn)被喚醒。
如ZigBee節(jié)點(diǎn)需要一直處于喚醒狀態(tài),可直接將該管腳電平變?yōu)榈碗娖健?/p>
6)STA管腳(STUTAS):當(dāng)模塊有串口數(shù)據(jù)收發(fā)時(shí)(即有數(shù)據(jù)與串口通信時(shí),不包括模塊在配置模式),此管腳電平變?yōu)楦咂剑ㄈ艚覮ED則表現(xiàn)為燈點(diǎn)亮),數(shù)據(jù)收發(fā)完畢后管腳變?yōu)榈碗娖健?/p>
通訊協(xié)議主要用于路由節(jié)點(diǎn)與溫濕度采集板之間,它主要包括數(shù)據(jù)的收發(fā),路由節(jié)點(diǎn)與溫濕度采集板之間的通斷情況。具體的協(xié)議如表1。
表1 數(shù)據(jù)幀格式
路由節(jié)點(diǎn)與溫濕度采集板之間的通訊協(xié)議如表2。
表2 路由節(jié)點(diǎn)與溫濕度采集板之間的通信協(xié)議格式
其中控制位分別為B1,B2。
B1H命令用于測(cè)試路由節(jié)點(diǎn)與溫濕度采集板之間的連接是否正常。路由節(jié)點(diǎn)向溫濕度采集板節(jié)點(diǎn)發(fā)送B1H命令,當(dāng)連接正常時(shí),溫濕度采集板收到命令B1H后,會(huì)向路由節(jié)點(diǎn)發(fā)送表示連接正常的0x01回復(fù)命令,具體格式如表3。
表3 B1H的返回命令0x01的通信協(xié)議格式
B2H命令用于溫濕度采集板向路由節(jié)點(diǎn)發(fā)送數(shù)據(jù),當(dāng)溫濕度采集板接收到路由節(jié)點(diǎn)發(fā)送的B2H命令,溫濕度采集板就會(huì)按照數(shù)據(jù)幀格式向路由節(jié)點(diǎn)發(fā)送采集到的環(huán)境數(shù)據(jù)。
CRC-16校驗(yàn)采用的是累加和校驗(yàn)法。
系統(tǒng)流程如圖9所示。
圖9 系統(tǒng)軟件流程
主要完成基本的程序初始化功能,具體的數(shù)據(jù)發(fā)送及路由節(jié)點(diǎn)與溫濕度采集板之間通斷情況的相關(guān)流程圖如圖10所示。
在數(shù)據(jù)采集系統(tǒng)中不止存在一個(gè)路由節(jié)點(diǎn),多個(gè)采集節(jié)點(diǎn)可以綁定一個(gè)路由節(jié)點(diǎn),一個(gè)路由節(jié)點(diǎn)與多個(gè)采集節(jié)點(diǎn)就構(gòu)成了簇,為了避免不同簇之間的相互串?dāng)_,當(dāng)溫濕度采集板收到路由節(jié)點(diǎn)廣播下發(fā)的命令后,采集節(jié)點(diǎn)首先判斷該命令是否來自自己的父節(jié)點(diǎn)(路由節(jié)點(diǎn))是否滿足協(xié)議的格式,如果是來自父節(jié)點(diǎn),則根據(jù)不同的命令執(zhí)行不同的動(dòng)作,如果不是則不需要執(zhí)行任何動(dòng)作,如果沒有數(shù)據(jù)上傳命令,采集節(jié)點(diǎn)將會(huì)定期的將傳感器的數(shù)據(jù)保存到外部存儲(chǔ)器中。
為了避免多個(gè)采集節(jié)點(diǎn)同時(shí)上傳數(shù)據(jù)而導(dǎo)致節(jié)點(diǎn)間通信干擾問題,就要求在一個(gè)簇中路由節(jié)點(diǎn)在一定時(shí)間內(nèi)只能接收一個(gè)采集節(jié)點(diǎn)發(fā)送上來的數(shù)據(jù),如果多個(gè)節(jié)點(diǎn)同時(shí)上傳數(shù)據(jù),則可能導(dǎo)致路由節(jié)點(diǎn)接收到不正確的數(shù)據(jù),所以必須為每個(gè)采集節(jié)點(diǎn)分配獨(dú)立的用于數(shù)據(jù)發(fā)送的時(shí)隙,這樣采集節(jié)點(diǎn)就可以在其他節(jié)點(diǎn)空閑時(shí)在自己的時(shí)隙內(nèi)發(fā)送采集到的數(shù)據(jù)。
流程圖中定時(shí)器具體的定時(shí)時(shí)間可以采用上位機(jī)軟件定制,不同的采集節(jié)點(diǎn)定時(shí)時(shí)間不同,在允許的情況下盡量設(shè)置長(zhǎng)的定時(shí)時(shí)間,這樣就可以最大程度的避免相鄰節(jié)點(diǎn)間的通信干擾。為了能夠?qū)崿F(xiàn)所有節(jié)點(diǎn)同時(shí)打開定時(shí)器,在一個(gè)簇中當(dāng)所有的采集節(jié)點(diǎn)接收到路由節(jié)點(diǎn)發(fā)送的數(shù)據(jù)傳輸命令B2H后,采集節(jié)點(diǎn)打開定時(shí)器,當(dāng)定時(shí)器定時(shí)到達(dá)就向路由節(jié)點(diǎn)發(fā)送環(huán)境數(shù)據(jù),同時(shí)定時(shí)器清零,繼續(xù)等待路由節(jié)點(diǎn)的相關(guān)命令。路由節(jié)點(diǎn)可以定時(shí)向采集節(jié)點(diǎn)發(fā)送數(shù)據(jù)上傳命令,路由節(jié)點(diǎn)的定時(shí)時(shí)間一定要大于采集節(jié)點(diǎn)中最大的定時(shí)時(shí)間。
基于MSP430F149單片機(jī)的溫濕度數(shù)據(jù)采集板的軟硬件設(shè)計(jì)方案,采用具有透明傳輸功能的ZigBee模塊。當(dāng)系統(tǒng)采用外部電池供電時(shí),具有電池電壓檢測(cè)功能,能夠及時(shí)提醒用戶更換電池,而且本系統(tǒng)通用性強(qiáng),只需要將傳感器部分電路稍做改變就可以用于其他類型數(shù)據(jù)傳感器的數(shù)據(jù)采集,該溫濕度數(shù)據(jù)采集板可以應(yīng)用于溫室大棚、養(yǎng)殖場(chǎng)等對(duì)環(huán)境的溫濕度具有要求的場(chǎng)合。
圖10 數(shù)據(jù)發(fā)送流程圖
[1]牛孝國(guó),朱桂芝,夏寧,等.基于無線傳感器網(wǎng)絡(luò)的農(nóng)業(yè)現(xiàn)場(chǎng)數(shù)據(jù)采集研究進(jìn)展[J].中國(guó)農(nóng)學(xué)通報(bào),2009,25(24):515-519.
[2]王益祥,牛江平.遠(yuǎn)程無線抄表系統(tǒng)的研究[J].自動(dòng)化儀表,2011,32(3):4-7.
[3]張冬林,李鑫,戴梅,等。基于DHT11的低成本蠶室溫濕度自動(dòng)控制系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代農(nóng)業(yè)科技,2010(18):14-15.
[4]張中華,王澤勇,高曉蓉,等.基于SHT10的便攜式數(shù)顯溫濕度檢測(cè)儀的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(17):137-139.
[5]倪天龍.單總線傳感器DHT11在溫濕度測(cè)控中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(6):60-62.
[6]黃小東,習(xí)友室.AT32UC3A0512無線傳輸?shù)臏貪穸葯z測(cè)儀設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(12):62-64.
[7]http://www.atzgb.com/download.html.