基于nRF905的糧庫無(wú)線(xiàn)溫濕度監控系統
溫濕度是影響糧食倉儲過(guò)程中品質(zhì)好壞的主要因素。目前我國許多糧食倉儲單位仍采用測溫儀器與人工抄錄、管理相結合的傳統方法,這不僅效率低,而且往往由于判斷失誤和管理不力造成局部或大范圍糧食霉變的現象時(shí)有發(fā)生。
本文介紹采用nRF905射頻模塊、多個(gè)DS18B20構成的測溫網(wǎng)絡(luò )、濕度傳感器HS1101組成一種糧庫無(wú)線(xiàn)全數字溫濕度監控系統,徹底擺脫了傳統的人工抄錄方法,能實(shí)時(shí)檢測糧倉中的溫濕度,并根據所測的數據控制空調器、除濕機等外部設備的運行,確保糧倉內合適的溫濕度環(huán)境,該設計具有簡(jiǎn)單可靠和靈活方便的特點(diǎn)。
硬件設計
系統硬件結構由兩個(gè)部分組成:中央監控系統CMS和多個(gè)遠程終端節點(diǎn)RTN(見(jiàn)圖1)。
圖1 系統硬件
中央監控系統主要包括監控計算機和主接收器,監控計算機與主接收器之間通過(guò)串口(RS232)來(lái)通信,控制遠程終端節點(diǎn)單片機(P89LPC916)讀取溫濕度值、并且實(shí)時(shí)記錄讀取的通道編號、DS18B20編號、時(shí)間??梢宰鳛樵假Y料的積累,用于將來(lái)的數據分析,人機界面和單片機的通信用Visual Basic編程。
主接收器:通過(guò)無(wú)線(xiàn)射頻
遠程終端主要由P89LPC916單片機、射頻模塊nRF905、DS18B20的測溫網(wǎng)絡(luò )、濕度傳感器HS1101、外部設備驅動(dòng)器及放大調整電路組成。通過(guò)P89LPC916單片機的3個(gè)通用IO連接多個(gè)DS18B20構成“一線(xiàn)總線(xiàn)”通信,實(shí)現DS18B20的測溫網(wǎng)絡(luò )。濕度傳感器HS1101探測現場(chǎng)環(huán)境濕度,經(jīng)過(guò)A/D轉換后變?yōu)閿底中盘枴,F場(chǎng)檢測信號由P89LPC916單片機進(jìn)行處理,最后將數據通過(guò)nRF905收發(fā)器送出。當P89LPC916單片機檢測到異常的儲糧溫濕度時(shí),啟動(dòng)風(fēng)機等外部設備,送信號到監控計算機和報警電路,有聲光報警,提醒工作人員。
DS18B20
美國Dallas公司的DS18B20數字式溫度傳感器,工作電壓3.0~5.5V,溫度測量范圍-55~125℃,在-10~85℃范圍內測量精度為0.5℃。與傳統的熱敏電阻溫度傳感器不同,它能夠直接讀出被測溫度,并且可根據實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現9~12位的數字值讀數方式,可以分別在93.75ms和750ms內將溫度值轉化為9位和12位的數字量。該芯片在檢測點(diǎn)已把被測信號數字化了,因此在單總線(xiàn)上傳送的是數字信號。本系統設計中選擇了該傳感器,使得系統溫度傳感器模塊的硬件極其簡(jiǎn)單,只占用單片機系統的一個(gè)數據I/O口加一個(gè)上拉電阻即可。
DS18B20因其序列號在出廠(chǎng)前已寫(xiě)入片內ROM中,主機在進(jìn)入操作程序前必須逐一接入DS18B20用讀ROM(33H)命令將該DS18B20的序列號讀出。當主機需要對眾多在線(xiàn)DS18B20的某一個(gè)進(jìn)行操作時(shí),首先要發(fā)出匹配ROM命令(55H),接著(zhù)主機提供64位序列碼,之后的操作就是針對該DS18B20的。在DS18B20組成的多路測溫系統中,主機在發(fā)出跳過(guò)ROM命令之后,再發(fā)出統一的溫度轉換啟動(dòng)碼44H,就可以實(shí)現所有DS18B20的統一轉換。再經(jīng)過(guò)1s后就可以用很少的時(shí)間去逐一地讀回每個(gè)DS18B20的溫度數據。
射頻芯片nRF905
nRF905是挪威Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9~3.6V,工作于433/868/915MHz3個(gè)ISM頻道。nRF905可以自動(dòng)完成處理字頭和CRT(循環(huán)冗余碼校驗)的工作,可由片內硬件自動(dòng)完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置非常方便,其功耗非常低,以-10dBm的輸出功率發(fā)射時(shí)電流只有11mA,在接收模式時(shí)電流為12.5mA。
nRF905傳輸數據時(shí)為非實(shí)時(shí)方式,即發(fā)送端發(fā)出數據,接收端收到后先暫存于芯片存儲器內,外面的MCU可以在需要時(shí)再到芯片中去取。nRF905一次的數據傳輸量最多為32B。
無(wú)線(xiàn)數據傳送的實(shí)現
本設計中將單片機P89LPC916的SPI接口和nRF905的SPI接口相連,另外再選幾個(gè)I/O口連接nRF905的輸入輸出信號,如圖2所示。
圖2 nRF905控制電路
nRF905在正常工作前應由P89LPC916先根據需要寫(xiě)好配置寄存器,其后的工作主要是兩個(gè):發(fā)送數據和接收數據。
發(fā)送數據時(shí),P89LPC916先把nRF905置于待機模式(PWR_UP引腳為高、TRX_CE引腳為低),然后通過(guò)SPI總線(xiàn)把發(fā)送地址和待發(fā)送的數據都寫(xiě)入相應的寄存器中,之后把nRF905置于發(fā)送模式(PWR_UP、TRX_CE和TX_EN全置高),數據就會(huì )自動(dòng)通過(guò)天線(xiàn)發(fā)送出去。為了數據可靠地傳輸,將射頻配置寄存器中的自動(dòng)重發(fā)位(AUTO_RETRAN)設為有效,數據包重復不斷地一直向外發(fā),直到P89LPC916把TRX_CE拉低,退出發(fā)送模式為止。
接收數據時(shí),P89LPC916把nRF905的TRX_CE引腳置為高電平,TX_EN引腳拉為低電平后,就開(kāi)始接收數據。本設計中P89LPC916設定的40s內一直判斷nRF905的DR引腳是否變高,若為高,則證明接收到了有效數據,可以退出接收模式,若一直沒(méi)有接收到,待時(shí)間到時(shí)也退出接收模式。退出后在待機模式,P89LPC916通過(guò)SPI總線(xiàn)把nRF905內部的接收數據寄存器中的數據讀出,即接收到的有效數據。
軟件設計
本系統設計的重點(diǎn)是控制nRF905的程序設計,首先是對nRF905進(jìn)行初始配置,配置完成后按需要編寫(xiě)用戶(hù)數據的發(fā)送或接收程序。
圖3 軟件系統的整體數據處理流程
初始化
初始化nRF905的射頻配置寄存器
這些寄存器中有很多信息,必須根據實(shí)際情況進(jìn)行配置,本設計中nRF905外接16MHz晶體,XOF應配置為0
配置nRF905的發(fā)送地址
在實(shí)際工作中,nRF905可以自動(dòng)濾除地址不相同的數據,只有地址匹配且校驗正確的數據才會(huì )被接收,并存儲在接收數據寄存器中。本設計中配置最多4個(gè)字節(32位),發(fā)送端的發(fā)送地址應與接收端設備的接收地址相同。
用戶(hù)程序
根據系統的硬件設計方案,分為發(fā)送端和接收端兩個(gè)部分,軟件系統的整體數據處理流程如圖3所示。軟件系統分為5個(gè)模塊:溫濕度采集模塊、外部設備模塊、RF發(fā)送模塊、RF接收模塊、中央監控系統報表統計分析模塊。
通信協(xié)議
系統結構為有多個(gè)發(fā)送端向1個(gè)接收端單向發(fā)送溫濕度數據,同時(shí)要求接收端能夠根據接收的數據內容判斷信號來(lái)自哪一個(gè)發(fā)送模塊;接收端根據溫濕度數據是否越界從而驅動(dòng)前端外部設備。為此,將系統通信協(xié)議設置為如下格式:
Preamble為引導字節,Add為接收機地址,Payload為有效加載數據(包括接收顯示單元識別碼Rid、源發(fā)送單元識別碼Sid及Data字――在接收時(shí)Data字高八位內容即為溫度數據,低八位內容即為濕度數據;發(fā)送控制命令即為外部設備控制字,長(cháng)度為2字節),CRC為校驗碼。nRF905處于發(fā)射模式時(shí),Add和Payload由微控制器按順序送入射頻模塊nRF905,Preamble和CRC由nRF905自動(dòng)加載。接收時(shí),nRF905先接收一個(gè)數據包,分別驗證Preamble、Add和CRC正確后,再將Payload數據送入微控制器處理;當接收顯示單元微處理器判斷Payload中的Rid和本機識別碼一致時(shí),繼續處理后繼數據,并通過(guò)Sid來(lái)判斷收到的數據來(lái)自哪一個(gè)監測點(diǎn),保存至中央監控系統數據庫供后期數據分析處理。
結語(yǔ)
基于nRF905、濕度傳感器HS1101以及DS18B20智能溫度傳器設計的分布式多點(diǎn)測量系統能很好的滿(mǎn)足糧庫溫濕度監測的要求。自2006年3月在中山市某應急糧加工中心使用至今,系統穩定可靠,簡(jiǎn)單易用。
參考文獻:
1.Dallas Semiconductor. DS18B20 Datasheet.http://www.maxim-ic.com.cn,2005-06-14
2.Nordic VLSI ASA Inc.nRF905 Datasheet. rev1-2.http://www.nvlsi.com,2005-01-22
3.毛哲、謝兆鴻等,糧情智能測控系統的研制,微計算機信息,2003.6:39-40
評論