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