基于DSP和nRF24L01的無線環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:設(shè)計(jì)基于DSP(Digital Signal Processor)和nRF24L01的無線環(huán)境監(jiān)測(cè)系統(tǒng)。系統(tǒng)的主控部件選用的是TMS320LF2407,無線通信模塊選用的是nRF24L01。文中論述了系統(tǒng)各硬件模塊的選擇方案,給出了各部分的軟件設(shè)計(jì)。實(shí)驗(yàn)表明,該系統(tǒng)可以實(shí)現(xiàn)對(duì)環(huán)境溫度、光照強(qiáng)度等的無線監(jiān)測(cè)。
關(guān)鍵詞:DSP;nRF24L01;無線傳輸;溫度傳感器;光度傳感器
引言
目前,我國環(huán)境監(jiān)測(cè)設(shè)備已經(jīng)有了長足的發(fā)展,例如應(yīng)用衛(wèi)星遙感技術(shù)進(jìn)行環(huán)境監(jiān)測(cè),采用GPRS系統(tǒng)對(duì)地下水監(jiān)測(cè)等,各種環(huán)境采樣器也更加精確。但是大部分監(jiān)測(cè)站的儀器裝備技術(shù)含量較低,功能單一,穩(wěn)定性和可靠性差,多數(shù)小型儀器采用有線通信方式,亟待更新?lián)Q代。而且,我國在環(huán)境監(jiān)測(cè)儀器方面的自主開發(fā)能力較弱,精密儀器的技術(shù)含量和工藝要求都比較高,使得目前大量的精密儀器無法實(shí)現(xiàn)本地化生產(chǎn),主要依靠進(jìn)口,這就導(dǎo)致了價(jià)格非常昂貴。
本文基于DSP和nRF24L01設(shè)計(jì)了一種無線環(huán)境監(jiān)測(cè)系統(tǒng)。該系統(tǒng)操作簡(jiǎn)便、測(cè)量迅速、造價(jià)低廉、便于攜帶,能滿足一定靈敏度和準(zhǔn)確度的要求,且采用無線數(shù)據(jù)通信作為傳輸載體,可應(yīng)用于蔬菜大棚、生產(chǎn)車間、溫室、礦井等場(chǎng)所的溫度、光度監(jiān)測(cè)與控制系統(tǒng)。
例如,在蔬菜大棚中,蔬菜生長的適宜溫度為20~30℃,大棚內(nèi)白天增溫快,當(dāng)棚外平均氣溫為15℃時(shí),棚內(nèi)可達(dá)40~50℃,不利于蔬菜生長。同樣,適當(dāng)?shù)墓庹諒?qiáng)度對(duì)植物體內(nèi)的硝酸鹽代謝起極為重要的作用,是決定植株硝酸鹽含量的主要因素之一,但過弱或過強(qiáng)的光照也不利于蔬菜的生長。因此,需要根據(jù)監(jiān)測(cè)值適時(shí)調(diào)節(jié)棚內(nèi)溫度,以有效地避免不當(dāng)?shù)臏囟?、光照?duì)蔬菜的危害。
1 方案論證
本無線環(huán)境監(jiān)測(cè)系統(tǒng)是由一個(gè)主站和兩個(gè)分站組成。主站由無線收發(fā)模塊、信息處理模塊、顯示模塊構(gòu)成,功能是無線發(fā)送分站的編號(hào)和命令,并無線接收分站發(fā)送的信息,同時(shí)顯示這些信息及分站的編號(hào);分站由傳感器模塊、編碼模塊、信息處理模塊、顯示模塊和無線收發(fā)模塊構(gòu)成,功能是采集溫度、光照信息,顯示所測(cè)信息,并將這些信息和自己的編號(hào)無線傳輸給主站。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
1.1 主控模塊
本方案中主控模塊選擇TI公司的DSP芯片TMS320LF2407。TMS320LF2407內(nèi)置10位(雙8路或單16路)A/D轉(zhuǎn)換器、看門狗定時(shí)器模塊;有41個(gè)可獨(dú)立編程的數(shù)字I/O引腳,絕大部分有復(fù)用功能;外設(shè)接口有串行通信SCI(Serial Communication Interface)與串行外設(shè)SPI(Serial Periphera1 Interface);2個(gè)事件管理器EVA、EVB可為所有類型電機(jī)提供控制技術(shù),為工業(yè)自動(dòng)化方面的應(yīng)用奠定了基礎(chǔ);2個(gè)16位通用定時(shí)器,3個(gè)具有死區(qū)功能的全比較單元。
較MCS-51系列單片機(jī)而言,TMS320LF2407內(nèi)部有32 KB的Flash程序存儲(chǔ)器和2.5 KB的SRAM,更能滿足軟件對(duì)空間的要求,且方便在線調(diào)試。利用其內(nèi)置的10位A/D轉(zhuǎn)換器,可以直接接溫度、光度傳感器模塊,將測(cè)得的溫度值、光照強(qiáng)度值等模擬量轉(zhuǎn)換為TMS320LF2407可以處理的數(shù)字信息,避免了用MCS51進(jìn)行A/D擴(kuò)展帶來的麻煩。另外,TMS320LF2407有41個(gè)可獨(dú)立編程的數(shù)字I/O引腳,絕大部分有復(fù)用功能,更能滿足硬件對(duì)I/O口的需求。使用TMS320LF2407的串行外設(shè)接口SPI,可以直接和無線傳輸模塊nRF24L01提供的SPI接口相連,不需要軟件模擬SPI。使用的開發(fā)環(huán)境是CCS3.0,完全支持C語言,方便程序編寫。
[!--empirenews.page--]
1.2 傳感器模塊
選用熱敏電阻來測(cè)量溫度。其值較為準(zhǔn)確,靈敏度較高;配合電橋使用,工作溫度范圍寬、體積小,使用方便;電阻值可在0.1~100 kΩ間任意選擇。與熱電偶相比,熱敏電阻價(jià)格低廉;與DS18B20相比,熱敏電阻需要編寫的程序更加簡(jiǎn)單。
選用光敏電阻來測(cè)量光照。較光敏二極管,光敏電阻更能顯示出光的強(qiáng)弱;而且,它能夠和熱敏電阻應(yīng)用到同一電路中。傳感器模塊電路如圖2所示。
1.3 編碼模塊
選用跳線開關(guān)組成編碼模塊。與普通開關(guān)組成編碼模塊相比較,成本更加低廉。用兩列排針(各8位):一列排針接到TMS320LF2407的I/O口,并經(jīng)過10 kΩ電阻接+5 V電源VCC,另一列排針接地。兩列排針對(duì)應(yīng)的位用跳線帽相連時(shí)置0,否則為1。這樣可以設(shè)置分站的編號(hào)0~255,即本系統(tǒng)最多可以擴(kuò)展256個(gè)分站,用來監(jiān)測(cè)不同地點(diǎn)的當(dāng)前環(huán)境溫度、光度值。
1.4 無線傳輸模塊
選用無線傳輸模塊nRF24L01。它是一款工作在2.4~2.5 GHz世界通用ISM頻段的單片無線收發(fā)器芯片,采用FSK調(diào)制,內(nèi)部集成自己的協(xié)議,有自動(dòng)應(yīng)答及自動(dòng)重發(fā)功能、地址及CRC檢驗(yàn)功能,可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或1對(duì)6的無線通信,無線通信速度可達(dá)2 Mbps;而且,電流消耗極低,當(dāng)工作在發(fā)射模式下發(fā)射功率為-6 dBm時(shí)電流消耗為9 mA,接收模式下為12.3 mA。nRF24L01與PT2262/2272相比,不需要編碼和解碼,程序簡(jiǎn)單;與nRF905相比,外圍元件更少,不需要曼徹斯特編碼;與nRF401相比,價(jià)位更低。
TMS320LF2407只需為nRF24L01模塊預(yù)留6個(gè)I/O口,分別與其6個(gè)控制和數(shù)據(jù)信號(hào)CSN、SCK、MISO、MOSI、IRQ、CE相連。TMS320LF2407與nRF24L01的連接電路如圖3所示。
[!--empirenews.page--]
1.5 顯示模塊
選用型號(hào)為LG5011BSR的共陽極數(shù)碼管,與液晶顯示器相比,價(jià)格低廉。它由7段發(fā)光二極管組成,共有10只引腳。其中,3、8引腳為共陽極,其他引腳加低電平時(shí)對(duì)應(yīng)的二極管就會(huì)亮,從而控制數(shù)碼管顯示相應(yīng)的數(shù)值。
1.6 系統(tǒng)硬件結(jié)構(gòu)
傳感器模塊是信息采集的樞紐。如圖2所示,電源電壓經(jīng)穩(wěn)壓管TL431穩(wěn)壓到2.5 V,提供給由普通電阻和熱敏電阻組成的分壓電路,以及普通電阻和光敏電阻組成的分壓電路。熱敏電阻分得的電壓通過TO輸出,接TMS320LF2407的ADCIN0;光敏電阻分得的電壓通過LO輸出,接TMS320LF2407的ADCIN1。利用讀取A/D轉(zhuǎn)換后的結(jié)果,并計(jì)算出對(duì)應(yīng)的溫度值和光線強(qiáng)度值,經(jīng)查表輸出顯示。
無線傳輸模塊是數(shù)據(jù)傳輸?shù)暮诵?。如圖3所示,TMS320LF2407通過6個(gè)I/O端口(IOPC0,IOPC1,SPISIMO,SPISOMI,SPICLK,SPISTE),依次與nRF24L01模塊的6個(gè)控制和數(shù)據(jù)信號(hào)IRQ、CE、MOSI、MISO、SCK、CSN相連。其中,CSN為芯片的片選線,CSN為低電平時(shí)芯片工作;SCK為芯片控制的時(shí)鐘線;SOMI為芯片控制數(shù)據(jù)線;MOSI為芯片控制數(shù)據(jù)線;IRQ為中斷信號(hào),無線通信過程中DSP主要是通過SPI接口的SPISIM-O、SPISOMI與nRF24L01進(jìn)行通信。CE為芯片的模式控制線,在CSN為低的情況下,CE協(xié)同nRF24L01的CONFIG寄存器共同決定nRF24L01的狀態(tài)。
顯示模塊用TMS320LF2407的IOPB0、IOPB1來模擬串行發(fā)送數(shù)據(jù)的過程,外接串入并出移位寄存器74LS164構(gòu)成。當(dāng)需要顯示信息時(shí),數(shù)據(jù)從IOPB0端在移位脈沖(由IOPB1輸出)的控制下逐位移入74LS164,74LS164能將輸入的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸出到數(shù)碼管。這樣的設(shè)計(jì)不僅節(jié)省I/O口,而且不占用串口資源。編碼模塊通過IOPA0~I(xiàn)OPA7與DSP相連。
2 軟件設(shè)計(jì)
系統(tǒng)的主站、分站程序流程如圖4所示。主站程序主要包括初始化、無線發(fā)射、無線接收、數(shù)碼管顯示等部分;分站程序主要包括初始化、無線發(fā)射、無線接收、數(shù)據(jù)采集、數(shù)碼管顯示等部分。
2.1 初始化部分
將數(shù)據(jù)地址、數(shù)據(jù)顯示區(qū)地址等內(nèi)容初始化為0,設(shè)置數(shù)據(jù)顯示區(qū)地址的內(nèi)容,進(jìn)行數(shù)碼管顯示,以進(jìn)行系統(tǒng)自檢。
[!--empirenews.page--]
2.2 無線發(fā)射部分
首先設(shè)置nRF24L01為發(fā)射模式(設(shè)置發(fā)射和接收節(jié)點(diǎn)地址),使能自動(dòng)應(yīng)答,配置自動(dòng)重發(fā)次數(shù),選擇通信頻率,配置發(fā)射參數(shù),選擇通道0有效數(shù)據(jù)寬度,配置nRF24L01的基本參數(shù)以及切換工作模式;然后設(shè)置發(fā)射數(shù)據(jù),啟動(dòng)發(fā)射,發(fā)射完數(shù)據(jù)后會(huì)自動(dòng)轉(zhuǎn)入接收模式接收應(yīng)答信號(hào)。
2.3 無線接收部分
首先設(shè)置接收模式(即寫接收節(jié)點(diǎn)地址),使能自動(dòng)應(yīng)答,通道0接收地址允許,選擇通信頻率,選擇通道0有效數(shù)據(jù)寬度,配置發(fā)射參數(shù),配置nRF24L01的基本參數(shù)以及切換工作模式;然后啟動(dòng)接收,130μs后開始檢測(cè)空中數(shù)據(jù),若收到,則數(shù)據(jù)模塊會(huì)自動(dòng)發(fā)射應(yīng)答信號(hào)。
2.4 數(shù)據(jù)采集部分
分站對(duì)溫度、光照、地址編號(hào)進(jìn)行采集,通過讀取I/O口得到地址編號(hào)的值,通過讀取A/D來獲得溫度、光照的最初值,經(jīng)過DSP處理后得到準(zhǔn)確的溫度、光度值。
2.5 數(shù)碼管顯示部分
程序以模擬串口的方式實(shí)現(xiàn)數(shù)據(jù)顯示,過程為:取一字節(jié)數(shù)據(jù),移一位數(shù)據(jù)到I/O口中,通過置位另一I/O口高低電平來模擬時(shí)鐘信號(hào),即把數(shù)據(jù)一位一位地移到移位寄存器74LS164中,然后并行輸出到數(shù)碼管顯示數(shù)據(jù)。
3 調(diào)試分析
3.1 系統(tǒng)板硬件部分調(diào)試
系統(tǒng)板硬件部分調(diào)試主要是萬用表檢查電路通斷情況,并測(cè)量部分關(guān)鍵引腳的電壓是否達(dá)到要求。
3.2 環(huán)境溫度測(cè)量調(diào)試
首先,把標(biāo)準(zhǔn)溫度計(jì)和熱敏電阻同時(shí)放入冰水混合液中,標(biāo)準(zhǔn)溫度計(jì)的示數(shù)為Y1,根據(jù)基礎(chǔ)表值探測(cè)點(diǎn)顯示為X1。接著,將它們放入沸水中,標(biāo)準(zhǔn)溫度計(jì)的示數(shù)為Y2,根據(jù)基礎(chǔ)表值探測(cè)點(diǎn)顯示為X2,得出比例系數(shù)K=(X2-X1)/(Y2-Y1)=2。最后,在沸水和冰水混合液之間的溫度內(nèi),測(cè)得標(biāo)準(zhǔn)溫度Yi(i=3,4,…,30)和探測(cè)點(diǎn)顯示值Xi(i=3,4,…,30)共28組,從而得到近似比例系數(shù)K=2±0.5。再通過軟件部分進(jìn)行數(shù)據(jù)的校準(zhǔn),建立溫度數(shù)據(jù)表。最終,將溫度計(jì)和溫度傳感器置于同一環(huán)境下記錄測(cè)得的溫度值,如表1所列。
3.3 環(huán)境光度測(cè)量調(diào)試
①將分站放置在燈光下,從最亮逐漸調(diào)暗,當(dāng)暗到人眼看字有些費(fèi)力時(shí),從LED數(shù)碼管上讀得的光度原始數(shù)據(jù)為195 lx。
②將分站放置在自然光下,用手遮擋光度傳感器,由亮到完全遮蔽,當(dāng)暗到幾乎無光線進(jìn)入時(shí),從LED數(shù)碼管上讀得的光度原始數(shù)據(jù)為198 lx。
根據(jù)以上試驗(yàn)結(jié)果,結(jié)合人們的習(xí)慣思維,在程序上進(jìn)行了一些設(shè)計(jì)。用195減去測(cè)得的原始數(shù)據(jù),值小于等于零時(shí)顯示為零,光照越強(qiáng)顯示值越大。
3.4 無線通信調(diào)試
首先進(jìn)行分站單發(fā)送信息、主站單接收信息的調(diào)試,經(jīng)過一步步改進(jìn),最終通信成功。然后再進(jìn)行主站、分站(即發(fā)送又接收信息)的調(diào)試,經(jīng)反復(fù)調(diào)試最終通信成功。
結(jié)語
本文介紹的無線環(huán)境監(jiān)測(cè)系統(tǒng)的控制采用TMS320LF2407實(shí)現(xiàn)。TMS320LF2407內(nèi)部資源豐富,既有A/D轉(zhuǎn)換器,又有SPI、SCI,省去了系統(tǒng)擴(kuò)展的麻煩;另外,I/O口比較多,內(nèi)部存儲(chǔ)空間較大,有利于系統(tǒng)功能擴(kuò)充。無線部分采用高度集成的nRF24L01器件,大大簡(jiǎn)化了系統(tǒng)硬件和軟件設(shè)計(jì),減小了體積,提高了系統(tǒng)工作的可靠性。
經(jīng)試驗(yàn)驗(yàn)證,用編碼模塊可以設(shè)置分站的地址編號(hào)1~255,并能實(shí)時(shí)采集到周圍環(huán)境的溫度和光照數(shù)據(jù),平均誤差控制在0.5℃以內(nèi),溫度測(cè)量范圍在0~100℃,各項(xiàng)數(shù)據(jù)都能通過數(shù)碼管清晰地顯示出來。光的有無還可通過一個(gè)發(fā)光二極管顯示,有光時(shí)發(fā)光二極管滅,無光時(shí)發(fā)光二極管亮。主站能準(zhǔn)確無誤地?zé)o線接收分站數(shù)據(jù),距離50 m左右仍能無線通信,但響應(yīng)較慢。該系統(tǒng)攜帶方便,價(jià)格低廉,可應(yīng)用到狹小的環(huán)境,可以隨意放置;此外,還可再接入其他傳感器,以測(cè)量更多的環(huán)境參數(shù)。