任英杰,黃建清,李亞軍,王立輝
(海南大學(xué)熱帶農(nóng)林學(xué)院,海南儋州571737)
溫度對(duì)人們的生產(chǎn)生活中起著生死攸關(guān)的作用,溫度可以得到準(zhǔn)確的測(cè)量對(duì)人類社會(huì)的發(fā)展也有相當(dāng)大的意義。溫度-顧名思義就是用來(lái)表征物體冷熱程度的一種無(wú)量綱的物理量,從原子角度來(lái)說(shuō)是表現(xiàn)分子因受熱而運(yùn)動(dòng)的劇烈程度。以往的溫度測(cè)量方法一般是采用溫度計(jì)直接或間接和被測(cè)物體相接觸,因而讀出溫度計(jì)上所顯示出的信息來(lái)快速測(cè)得物體表面的溫度是多少。例如可以用來(lái)測(cè)量水溫、體溫以及氣溫等等。近幾年以來(lái),隨著科技技術(shù)水平的日益增強(qiáng),溫度的測(cè)量技術(shù)早已達(dá)到數(shù)字化、智能化的水平。一種最為常用的測(cè)溫的方法就是用一些感溫材料(如電阻應(yīng)變片等)做成的溫度傳感器來(lái)測(cè)量被測(cè)量的溫度,這種測(cè)量溫度的方法在人們的生產(chǎn)生活中一直被廣泛地應(yīng)用著,因?yàn)樗粌H測(cè)量準(zhǔn)確方便,而且使用靈活多樣。
但是,目前絕大多數(shù)的測(cè)溫傳感器還是僅能實(shí)現(xiàn)簡(jiǎn)單的溫度測(cè)量,并不可以將所測(cè)量到的溫度值通過(guò)無(wú)線通信傳遞給第三(接收)方,針對(duì)此現(xiàn)象,此次設(shè)計(jì)特地提出了一種基于nRF905的無(wú)線溫度測(cè)試測(cè)與通信系統(tǒng),此系統(tǒng)的突出優(yōu)點(diǎn)就是能夠準(zhǔn)確實(shí)現(xiàn)溫度的異地、同步、實(shí)時(shí)檢測(cè)和傳輸,而且測(cè)量精度非常高,可以精確到小數(shù)點(diǎn)后一位。本次設(shè)計(jì)的無(wú)線溫度檢測(cè)和傳輸系統(tǒng)將會(huì)在生產(chǎn)生活中有著非常廣泛的應(yīng)用,尤其是在某些農(nóng)業(yè)生產(chǎn)的領(lǐng)域,例如水池溫度實(shí)時(shí)檢測(cè)與控制、溫室蔬菜大棚溫度實(shí)時(shí)檢測(cè)與控制和土壤溫度、濕度檢測(cè)與控制等重要的農(nóng)業(yè)生產(chǎn)領(lǐng)域。此設(shè)計(jì)基于該測(cè)溫控制系統(tǒng),以實(shí)時(shí)高精度檢測(cè)水池溫度為例,在實(shí)例剖析的原理和基礎(chǔ)上對(duì)此測(cè)量、控制系統(tǒng)作進(jìn)一步的說(shuō)明和解釋。
本設(shè)計(jì)所提出的一種基于nRF905的無(wú)線溫度檢測(cè)與控制系統(tǒng)快速、有效地填充了傳統(tǒng)方法的空白,而且還具有測(cè)量更加準(zhǔn)確、操作步驟簡(jiǎn)便易懂、造價(jià)低廉等一系列優(yōu)點(diǎn),非常適合投入到池塘水池測(cè)溫等場(chǎng)合,且適宜批量化生產(chǎn),來(lái)彌補(bǔ)傳統(tǒng)測(cè)量溫度方法的不足和缺陷[2]。
此次設(shè)計(jì)的系統(tǒng)硬件主要包括傳感器DS18B20模塊、處理器STC89C52模塊、電源轉(zhuǎn)換模塊、無(wú)線通信nRF905模塊、顯示LCD1602模塊、報(bào)警模塊以及人機(jī)交互模塊,其中的傳感器模塊是只分配給從機(jī),人機(jī)交互模塊、報(bào)警模塊是只分配給主機(jī)。
硬件基本框圖如圖1所示。

圖1 硬件基本框圖
本次硬件系統(tǒng)所采用的中央處理器是STC公司生產(chǎn)的具有高性能、低功耗、抗干擾強(qiáng)等一系列特點(diǎn)的STC89C52單片機(jī),此單片機(jī)具有可同時(shí)運(yùn)用C/C++語(yǔ)言和匯編語(yǔ)言在線可調(diào)試編程的功能,處理指令的速度相對(duì)于傳統(tǒng)的80C51單片機(jī)而言提高了8~10倍[3]。其作為此系統(tǒng)的中心處理器,STC89C52單片機(jī)主要功能是用來(lái)實(shí)現(xiàn)將獲得的數(shù)據(jù)快速準(zhǔn)確處理、配置兼容無(wú)線模塊的工作模式、啟動(dòng)傳感器模塊和顯示模塊等功能。
此設(shè)計(jì)的無(wú)線通信模塊選用了NORDIC公司生產(chǎn)的無(wú)線可控制芯片nRF905,此芯片具有體積小、性能強(qiáng)、功耗極低、正常工作功率可調(diào)等一系列突出優(yōu)點(diǎn)。通過(guò)控制STC89C52單片機(jī)對(duì)nRF905芯片引腳的PWR_UP、TX_EN和TRX_CE位置位或者復(fù)位來(lái)選擇不同的無(wú)線通信模式,nRF905無(wú)線通信芯片的正常工作模式一共可以分為四種。nRF905芯片與微控制器(STC89C52單片機(jī))的數(shù)據(jù)傳遞可以通過(guò)其SPI接口來(lái)高效、快速的進(jìn)行,而且傳輸?shù)乃俾士捎商幚砥鬟M(jìn)行實(shí)時(shí)設(shè)定[4]。
如圖圖2所示,AM、DR和CD是nRF905芯片狀態(tài)接口。芯片的模式接口用于實(shí)現(xiàn)nRF905的發(fā)射和接收等4種工作模式的配置。nRF905與STC89C52的接線圖如圖2所示。

圖2 nRF905與STC89C52的接線圖
1)LCD1602顯示器
本系統(tǒng)選用的顯示器是LCD1602屏幕,用來(lái)顯示測(cè)量到的溫度數(shù)據(jù)。LCD1602模塊可以實(shí)現(xiàn)多種字符的顯示功能,并且可以同時(shí)準(zhǔn)確方便顯示16(個(gè))x2(行)即32個(gè)有效字符,其具有功耗極低、體積小巧、易控制等獨(dú)有的特點(diǎn)。在此系統(tǒng)中,主機(jī)和從機(jī)分別安裝了一個(gè)LCD1602顯示器,當(dāng)且僅當(dāng)兩個(gè)顯示器所顯示的溫度值相同的時(shí)候,才可以說(shuō)明此次數(shù)據(jù)無(wú)線傳輸?shù)倪^(guò)程是準(zhǔn)確無(wú)誤的。
1)蜂鳴器報(bào)警
此次設(shè)計(jì)中,僅有主機(jī)配置了一個(gè)蜂鳴器,其作用是當(dāng)出現(xiàn)異常的溫度值時(shí),即當(dāng)溫度超過(guò)用戶設(shè)定的上限值或低于用戶設(shè)定下限值時(shí),通訊主機(jī)的STC89C52單片機(jī)(P3.7口)控制蜂鳴器從而產(chǎn)生陣陣的蜂鳴聲作為報(bào)警的信號(hào)狀態(tài)。在檢測(cè)池塘中水的溫度時(shí),報(bào)警信號(hào)可以及時(shí)提醒池塘所有者(用戶)水池內(nèi)部的溫度出現(xiàn)異常,可以快速的采取一系列的對(duì)應(yīng)措施來(lái)應(yīng)對(duì)。
2)人機(jī)交互模塊
人機(jī)交互模塊主要是針對(duì)通訊主機(jī)而言的,人機(jī)交互模塊的功能是可以通過(guò)3個(gè)獨(dú)立的按鍵,根據(jù)用戶的不同需求設(shè)定溫度的上限值和下限值。溫度的上下限值作為主機(jī)(STC89C52單片機(jī))判斷當(dāng)前的溫度是否位異常的根據(jù),此措施對(duì)于監(jiān)察池塘水池的溫度有突破性的進(jìn)展,此外本系統(tǒng)還會(huì)針對(duì)不同處境和水質(zhì)的池塘水池,可以靈活的來(lái)設(shè)定不同的溫度上下限值,因此本系統(tǒng)可以運(yùn)用在各種各樣的池塘中來(lái)檢測(cè)溫度,說(shuō)明此系統(tǒng)具有通用性。
由于池塘的分布比較分散隨意、布線供電也是相當(dāng)?shù)穆闊⒊杀据^高而且及其危險(xiǎn)。綜合考慮后,此系統(tǒng)的供電方式采用可充電電池進(jìn)行不間斷供電。通過(guò)利用兩節(jié)18650電池作為總的電源,利用ASM1117-3.3和LT1129-5分別把輸出電壓轉(zhuǎn)換成位。3 V和5 V電壓,5 V用于給主機(jī)和從機(jī)的STC89C52單片機(jī)、顯示器(LCD1602)模塊和溫度傳感器(DS18B20)模塊供電,3.3 V用于給無(wú)線傳輸(nRF905)模塊供電。
主機(jī)和從機(jī)的系統(tǒng)電源框圖如圖3所示。

圖3 從機(jī)系統(tǒng)電源框圖
此系統(tǒng)的軟件部分主要時(shí)用來(lái)完成對(duì)數(shù)據(jù)的采集、處理以及顯示等基本功能,此外,該部分還負(fù)責(zé)設(shè)置對(duì)應(yīng)的外設(shè)端口,如溫度傳感器(DS18B20)模塊、顯示器(LCD1602)模塊和無(wú)線通訊(nRF905)模塊等等。
系統(tǒng)的在線可調(diào)試編程是以keil uVision 4軟件為主要編譯下載平臺(tái),運(yùn)用更加面向硬件操作的C語(yǔ)言編程指令。
采集溫度的主要流程如圖4所示。

圖4 溫度采集流程
啟動(dòng)溫度轉(zhuǎn)換的運(yùn)行主要是STC89C52單片機(jī)先給DS18B20芯片發(fā)送啟動(dòng)指令,讀取溫度是單片機(jī)從溫度寄存器中讀出并簡(jiǎn)單處理所讀數(shù)據(jù)。
主要代碼指令如下:


發(fā)送數(shù)據(jù)流程如圖5所示。

圖5 發(fā)送數(shù)據(jù)流程
當(dāng)nRF905發(fā)送數(shù)據(jù)時(shí),從機(jī)STC89C52單片機(jī)首先把TRX_CE置為低電平,即復(fù)位、PWR_UP置為高電平(置位),即把nRF905芯片配置成Standby模式,再把待發(fā)送的溫度數(shù)據(jù)寫(xiě)入nRF905的數(shù)據(jù)寄存器中去,把接收端的地址寫(xiě)入地址寄存器中,當(dāng)DR自動(dòng)置高時(shí),表示數(shù)據(jù)發(fā)送完成。
數(shù)據(jù)發(fā)送程序主要代碼如下:

接收數(shù)據(jù)流程如圖6所示。

圖6 接收數(shù)據(jù)流程
數(shù)據(jù)接收程序的主要代碼如下:


仔細(xì)檢查電路后進(jìn)行接電觀察,然后接入輸入量進(jìn)行觀察,即動(dòng)態(tài)調(diào)試。在上面的指標(biāo)和電路都沒(méi)有錯(cuò)誤的情況下進(jìn)行記錄數(shù)據(jù)等一系列措施來(lái)評(píng)價(jià)此次設(shè)計(jì)的誤差等因素是否在可控的范圍內(nèi)。在“實(shí)戰(zhàn)”中,一定要做到認(rèn)真、仔細(xì),對(duì)輸入-輸出量的關(guān)系正確把握。
測(cè)量系統(tǒng)的流程框圖如圖7所示。

圖7 系統(tǒng)流程圖
本次作品的實(shí)物的測(cè)試結(jié)果如圖8所示。

圖8 實(shí)物(主機(jī))測(cè)試結(jié)果
經(jīng)過(guò)模擬池塘溫度的場(chǎng)景,在室內(nèi)進(jìn)行標(biāo)準(zhǔn)的溫度校正來(lái)分析此系統(tǒng)的可靠性和準(zhǔn)確性,其中下表中的理論值是指更加精確的測(cè)量?jī)x器所測(cè)得的數(shù)據(jù)。來(lái)進(jìn)行比對(duì)進(jìn)而得出誤差的大小和系統(tǒng)的應(yīng)用溫度場(chǎng)合。

表1 測(cè)試結(jié)果比對(duì)

圖9 比較圖
誤差總結(jié):從上圖可以看出,相對(duì)誤差均隨著溫度值值的增大而有減小的趨勢(shì),可以得出此測(cè)量系統(tǒng)適用于溫度相對(duì)適中(常溫)的場(chǎng)合。
此次設(shè)計(jì)提出了一種基于nRF905無(wú)線傳輸、控制溫度的檢測(cè)系統(tǒng)的設(shè)計(jì)。本文以實(shí)踐池塘水池測(cè)量溫度為例,緊密結(jié)合實(shí)際分析了該系統(tǒng)的實(shí)用和經(jīng)濟(jì)價(jià)值,并且順帶簡(jiǎn)要分析了系統(tǒng)的工作原理。此次的設(shè)計(jì)顯著地減輕了池塘勞動(dòng)者的勞動(dòng)強(qiáng)度,對(duì)提高水田養(yǎng)殖業(yè)的生產(chǎn)效率有著不同凡響的重要意義和歷史性突破[8]。