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