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