李昀珅,張昊慧
(淮陰師范學院物理與電子電氣工程學院,淮安223001)
溫室大棚是我國農業(yè)生產的重要部分,隨著科技的進步與生產力的不斷發(fā)展,我們對于溫室大棚的各種環(huán)境因素的要求也日漸提高。傳統(tǒng)的溫室大棚溫度檢測主要分為人工檢測和有線檢測。人工檢查不僅勞動強度大,而且準確度與實時性差。有線檢測雖然提高了精度與實時性,但整個系統(tǒng)需要在大棚中大量布線,并且要對設備進行集中供電,硬件成本較高[1]。為此,本文基于ZigBee技術,提出了一種溫室大棚溫度檢測系統(tǒng)。既保證了系統(tǒng)的精度與實時性,又降低了硬件成本,還使系統(tǒng)具有較強的可擴展性與可移植性,對提高大棚經濟效益具有重要意義。
ZigBee技術是一種廣泛使用的無線網(wǎng)絡技術。相對于Wi-Fi與Bluetooth通信技術,ZigBee在續(xù)航、擴展性、實時性和復雜性方面優(yōu)勢突出,因此在實際使用時可以有效降低人工更換電池的頻率,并且可以更方便地加入更多傳感器節(jié)點與更快地做出響應[2]。本文使用的無線通信模塊是基于CC2530芯片使用ZigBee協(xié)議實現(xiàn),可以實現(xiàn)自組織網(wǎng)絡,操作簡單,抗干擾能力強。
表1 ZigBee技術與主流通信技術區(qū)別
本系統(tǒng)主要分為傳感器節(jié)點、匯聚節(jié)點與監(jiān)控終端三部分組成。傳感器節(jié)點由DS18B20溫度傳感器、ST89C52單片機系統(tǒng)和ZigBee通信模塊組成。溫室內的溫度主要由溫度傳感器測量,之后將收集的數(shù)據(jù)發(fā)送到單片機,并在處理后通過ZigBee無線通信模塊發(fā)送。匯聚節(jié)點只由ZigBee通信模塊組成,負責采集各個傳感器節(jié)點的數(shù)據(jù)。監(jiān)控終端由串口屏組成,與匯聚節(jié)點直接連接,可以觀察到各點溫度的實時信息與狀況、溫度變化趨勢、溫度閾值信息。這三個模塊協(xié)同工作,實現(xiàn)溫室溫度的遠程監(jiān)控。
圖1 系統(tǒng)整體結構圖
圖2 傳感器節(jié)點方框圖
(1)單片機系統(tǒng)電路設計
本設計中的單片機系統(tǒng)主要包括ST89C52單片機晶振電路,復位電路。STC89C52單片機基于英特爾8052標準的新一代高性能、低功耗的單片機,與8051系列單片機兼容。由于其功耗低、性能強、價格低的優(yōu)點,非常適合作為本設計的數(shù)據(jù)處理中心[3]。
(2)溫度檢測電路設計
本設計采用DS18B20作為溫度傳感器,作為數(shù)字溫度傳感器,可直接輸出數(shù)字信號。它與單片機的P2.2直接連接,無需外接A/D轉換電路,見圖3。溫度測量的范圍設定為0~120℃,分辨率為0.125℃(顯示時只保留兩位小數(shù)),誤差為±0.5攝氏度。
圖3 DS18B20連接示意圖
(3)報警電路與鍵盤電路設計
每一個溫度檢測模塊中都有獨立的報警電路,在顯示模塊中可以觀察到每個節(jié)點的溫度是否異常。當節(jié)點的溫度不在閾值范圍內時,單片機的P2.0引腳將產生低電平信號,蜂鳴器則會持續(xù)發(fā)出報警信號。本設計還使用兩個LED燈來分別表示高溫異常與低溫異常兩種狀態(tài)。它們分別與單片機的P1.0和P1.1口相連接。當溫度過高時,P1.0口輸出低電平,連接的LED燈點亮,表示高溫異常;當溫度過低時,P1.1口輸出低電平,表示低溫異常;當溫度正常時,兩個I/O將輸出高電平,LED燈將熄滅[4]。鍵盤電路采用的是四個獨立按鍵,分別對應著上限值與下限值的加減操作。當按下按鍵時,單片機的I/O端口將檢測到高電平并執(zhí)行相應的功能。
在該設計中,匯聚節(jié)點與傳感器節(jié)點中的ZigBee模塊基本相同,都是基于CC2530芯片與CC2591芯片。CC2530是TI公司生產的無線通信芯片,可支持ZigBee協(xié)議,能夠方便地實現(xiàn)網(wǎng)絡的自組織,具有穩(wěn)定性高、功耗低、外圍器件少等優(yōu)點。CC2591是一款范圍擴展器,其功率增益在11dB左右,可以有效地擴大通信范圍[5]。本設計通信頻率為2.4GHz,最遠通信距離可達1km(天氣晴朗條件下),節(jié)點之間采用星形拓撲結構,基本滿足正常使用需求。
圖4 CC2530與CC2591連接示意圖
本設計中溫度信息與狀態(tài)信息的顯示是通過一塊400×240的串口屏實現(xiàn)的,它是基于ARM7系列芯片開發(fā)的,內置4MB Flash存儲空間,同時可以外接SD卡。串口屏的優(yōu)點在于可通過串口直接接收并執(zhí)行上 位機發(fā)出的指令,可以有效簡化終端復雜度。
本設計還包括了電壓轉換電路。此次供電模塊采用USB供電,但由于ZigBee無線通信模塊接口電壓為3.3V,因此需要采用穩(wěn)壓電路。圖5是最基本的5V轉3.3V穩(wěn)壓輸出,采用的是AMS1117芯片。該芯片提供過熱保護和限流功能[6]。應注意至少并聯(lián)10uF電容的在輸出端以提高穩(wěn)定性和瞬態(tài)響應。
圖5 電壓轉換電路
傳感器節(jié)點是在Keil uVision軟件開發(fā)環(huán)境下用C語言編程設計。首先STC89C52通過一定延時來確保溫度傳感器的溫度轉換完成。在轉換完成之后,通過無線通信模塊發(fā)送溫度數(shù)據(jù)。若需要修改溫度閾值,則再通過串口發(fā)送修改溫度閾值指令。若溫度超過閾值,則再發(fā)送報警指令,流程圖見圖6。
圖6 溫度檢測模塊工作流程圖
本設計中ZigBee模塊主要分布于傳感器節(jié)點與匯聚節(jié)點中,采用星形拓撲結構,功能基本相同,主要負責信號的采集與轉發(fā),區(qū)別是匯聚節(jié)點轉發(fā)處理的數(shù)據(jù)量更大,所以需要消耗更多的電量。當匯聚節(jié)點的ZigBee模塊通電后,首先進行初始化,尋找一個空閑信道并組建一個新的網(wǎng)絡,接著掃描周圍的傳感器節(jié)點,并等待其加入網(wǎng)絡。之后開始數(shù)據(jù)的采集與轉發(fā)。
圖7 匯聚節(jié)點通信流程圖
圖8 傳感器節(jié)點通信流程圖
監(jiān)控終端的串口屏顯示模塊是在USART HMI開發(fā)環(huán)境下制作完成的,主要顯示的內容有:溫度信息及其變化趨勢、溫度狀態(tài)信息、溫度閾值以及其他字符,主要用到了文本、變量和曲線控件。在溫度顯示模塊主程序中,單片機以一定的時間間隔將轉換后的溫度以及閾值信息通過串口發(fā)送給屏幕顯示,從而達到刷新顯示的效果。溫度正常與異常是通過兩個相互重疊的文本實現(xiàn)的,溫度正常時,單片機會發(fā)送指令把溫度異常的文本設置為隱藏,溫度異常時則反之。曲線控件是由轉換后的溫度賦值給變量,從而添加到曲線中,界面見圖9與圖10。
為了驗證本系統(tǒng)功能,選擇在同一時間的不同地點檢測溫度,系統(tǒng)實際運行如圖11與圖12(兩個節(jié)點發(fā)送數(shù)據(jù)延時不同,會造成曲線長短不同)。
圖9 串口屏主界面
圖10 串口屏幕修改閾值界面
圖11 運行主界面
圖12 溫度閾值界面
本文設計一種基于STC89C52單片機的溫度檢測系統(tǒng),實現(xiàn)了溫度的多點遠程測量、自動報警、溫度顯示等功能,用戶可以對各節(jié)點手動設定溫度上限與下限值,最終可以在顯示屏上觀察到每個節(jié)點的溫度變化趨勢。本設計具有精度高、實時性強等優(yōu)點,能夠有效減少人工勞動量,有利于生產效率的提高,符合農業(yè)現(xiàn)代化的需求。