摘 要:利用無線傳感網(wǎng)絡(luò)技術(shù)和嵌入式實時數(shù)據(jù)處理技術(shù),提出了一種基于nRF24L01和GSM網(wǎng)絡(luò)的植物工廠無線監(jiān)測系統(tǒng)。系統(tǒng)通過7個nRF24L01無線模塊構(gòu)建星型子網(wǎng)結(jié)構(gòu),擴展用GPRS模塊SIM900A完成子網(wǎng)與GSM網(wǎng)絡(luò)的無線通信,從而實現(xiàn)監(jiān)控人員對植物工廠的遠程監(jiān)測。星型網(wǎng)絡(luò)由多個采集終端和集中控制機構(gòu)成6發(fā)1收模式,以集中控制方式對植物工廠的大氣溫度、土壤濕度、光照強度、CO2等信息進行實時采集。實驗測試結(jié)果表明,星型子網(wǎng)能夠?qū)崟r完成900 m距離范圍內(nèi)的無線數(shù)據(jù)傳輸,系統(tǒng)可擴展性強、工作穩(wěn)定,可以實現(xiàn)植物工廠的遠程在線監(jiān)測。
關(guān)鍵詞:傳感器;ARM處理器;nRF24L01模塊;無線監(jiān)測;GPRS
中圖分類號:TP391.8 文獻標(biāo)識碼:A 文章編號:2095-1302(2016)09-00-05
0 引 言
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,集成化和智能化設(shè)備被越來越多地應(yīng)用于植物工廠的環(huán)境監(jiān)測中[1],選擇可靠監(jiān)控方案的主要指標(biāo)是其成本和能耗。傳統(tǒng)的植物生長監(jiān)測系統(tǒng)使用標(biāo)準(zhǔn)CAN總線或者RS 485總線構(gòu)成分布式監(jiān)測網(wǎng)絡(luò),這種網(wǎng)絡(luò)需要大量連接電纜,構(gòu)建成本較高且系統(tǒng)維護和管理不易。相比較而言,無線連接方式主要應(yīng)用于近距離無線通信技術(shù)構(gòu)建無線傳感器網(wǎng)絡(luò),使用標(biāo)準(zhǔn)的無線通信協(xié)議,避免了布線的麻煩,可以更靈活地管理監(jiān)測點,還可以利用蜂窩網(wǎng)接入技術(shù),以短消息的方式實現(xiàn)隨時隨地?zé)o線通信,在遠程無線監(jiān)測中具有較好優(yōu)勢[2]。ZigBee無線通信目前可以采用CC2530 ZigBee無線射頻芯片,用于構(gòu)建低成本、短時延、低功耗、可靠的無線通信系統(tǒng)。但由于其涉及的通信協(xié)議復(fù)雜,較nRF24L01芯片來說價格沒有優(yōu)勢。無線收發(fā)一體芯片nRF24L01[3]克服了無線局域網(wǎng)、藍牙、紅外線數(shù)據(jù)通信的通信協(xié)議和特定硬件結(jié)構(gòu)的缺點,在短距離無線監(jiān)測中具有較大優(yōu)勢。本文設(shè)計的監(jiān)控系統(tǒng)主要用來采集自然光光照強度、空氣溫度、土壤濕度、CO2濃度、植物生成圖像等環(huán)境參數(shù)。
1 系統(tǒng)的硬件
子網(wǎng)系統(tǒng)由6個數(shù)據(jù)采集終端和一個集中控制機構(gòu)成,在集中控制機部分搭建GSM網(wǎng)絡(luò),實時接收6個數(shù)據(jù)終端的數(shù)據(jù)。子系統(tǒng)的分布式星型網(wǎng)絡(luò)架構(gòu)如圖1所示。按照nRF24L01說明書的闡述,nRF24L01一次只能接收同一頻率下6個不同的數(shù)據(jù),因此集中控制機上可搭載撥碼開關(guān),用于分時接收不同頻率下的6組數(shù)據(jù),從而構(gòu)建一個稍具規(guī)模的無線通信網(wǎng)絡(luò)。數(shù)據(jù)終端主要完成對植物生成環(huán)境參數(shù)的采集,并將采集到的數(shù)據(jù)通過nRF24L01模塊發(fā)送到集中控制機,集中控制機將數(shù)據(jù)處理后顯示并通過GPRS 模塊發(fā)送至手機終端或者帶有GSM接收的服務(wù)器,實現(xiàn)遠程在線預(yù)警和現(xiàn)場監(jiān)測數(shù)據(jù)存儲分析。
1.1 集中控制機
集中控制機負責(zé)與監(jiān)測終端之間點對多點無線通信和子網(wǎng)無線接入GSM的網(wǎng)絡(luò)通信。集中控制機主要包括STM32-M4板、無線傳輸電路、液晶顯示電路、存儲器、按鍵電路、GPRS模塊和語音報警模塊。nRF24L01模塊采用半雙工通信方式完成與6個監(jiān)測終端的無線監(jiān)控鏈路通信;數(shù)據(jù)存儲器采用24C02實現(xiàn)采集終端數(shù)據(jù)的越限記錄存儲,并可通過按鍵查詢歷史數(shù)據(jù);利用STM32的RTL定時器實時顯示時間,并將越限時間一同存儲在24C02芯片中。顯示模塊采用7' TFTLCD,一行可顯示多個字符,滿足實時環(huán)境數(shù)據(jù)顯示的需要。GSM模塊采用SIM900A,借助GSM移動網(wǎng)絡(luò),通過手機短信實現(xiàn)遠程監(jiān)測或報警。集中控制機核心電路如圖2所示,M4芯片使用了STM32F407,硬件資源比較豐富,24C02采用了I2C通信接口,使用M4芯片的I2C接口IIC1_SCL、IIC1_SDA就能實現(xiàn)通信;nRF24L01采用SPI接口通信方式,主要引腳有CE、SCK、MISO、MOSI、CSN等,利用M4的SPI1接口就能實現(xiàn);SIM900A采用了串口1,M4的U1_TX連接SIM900A的RXD_I,U1_RX連接SIM900A的TXD_O;液晶顯示接口占據(jù)34位管腳,采用16 b數(shù)據(jù)通信方式以提高顯示速度;其他外圍電路可以查看芯片應(yīng)用手冊。
1.2 數(shù)據(jù)終端
數(shù)據(jù)終端的硬件電路主要由STM32核心板、溫度采集電路、土壤濕度檢測傳感器、光照傳感器、CO2采集電路、無線傳輸電路、液晶顯示電路、按鍵電路及電源穩(wěn)壓電路等組成。溫度的采集利用DS18B20,集成度和精度滿足系統(tǒng)設(shè)計要求;光照強度監(jiān)測采用BH1750FVI芯片,該芯片采用I2C總線接口,內(nèi)含數(shù)字轉(zhuǎn)換器,檢測范圍寬,分辨率高;土壤濕度檢測電路利用模擬電路搭建而成,通過電位器調(diào)節(jié)相應(yīng)閾值,可以以數(shù)字量直接輸出或通過AD轉(zhuǎn)換得到土壤濕度更精確的數(shù)值,數(shù)據(jù)采集終端電路如圖3所示。
數(shù)據(jù)終端采用Cortex?-M3 STM32F103ZET6作為主控MCU,由于與M4的資源相似,在此主要介紹集中控制機的主控MCU-STM32F407ZGT6[4],其擁有的硬件資源包括集成FPU和DSP指令,同時具有192 KB SRAM、1 024 KB Flash、12個16位定時器、2個32位定時器、2個DMA控制器、3個SPI、2個全雙工I2S、3個I2C、6個串口、2個USB(支持HOST /SLAVE)、2個CAN、3個12位ADC、2個12位DAC、1個RTC、1個SDIO接口、1個FSMC接口、1個10/100 M以太網(wǎng)MAC控制器、1個攝像頭接口、1個硬件隨機數(shù)生成器以及112個通用IO口等,這些硬件資源便于系統(tǒng)的日后升級。
1.3 無線收發(fā)模塊
無線收發(fā)模塊采用Risym工業(yè)級nRF24L01+PA+LNA數(shù)傳無線模塊[5]。其最大功率為100 mW,通信距離為1 100 m??罩兴俾?50 K、1 M、2 M可調(diào),單個數(shù)據(jù)包1~32字節(jié),3級FIFO緩沖。該模塊由挪威(Nordic)公司生產(chǎn)的nRF24L01+及其外圍電路組成,工作于2.4~2.5GHz世界通用ISM頻段,工作電壓為1.9~3.6 V??赏ㄟ^SPI寫入數(shù)據(jù),最高可達10 Mb/s,數(shù)據(jù)傳輸速率最快可達2Mb/s,且具有自動應(yīng)答和自動再發(fā)射功能。芯片融入了增強式ShockBurstTM技術(shù),其輸出功率和通信頻道可通過程序進行配置。該芯片的功耗較低,以-6 dBm功率發(fā)射時,工作電流為9 mA,接收時工作電流只有12.3 mA,在掉電模式和空閑模式下其功耗更低。
2 系統(tǒng)的軟件設(shè)計
2.1 子網(wǎng)組網(wǎng)原理
資料[6]講述了采用不用頻道進行通信的方法,將6個終端采用不同的頻道,主控端設(shè)有按鍵,使用按鍵選擇不同的從機頻道就可實現(xiàn)主機與從機的通信,但這種方法存在硬件稍微復(fù)雜,同一時刻只能顯示一組通信數(shù)據(jù)等缺陷。本設(shè)計則通過所有從機使用相同的頻道,不同的地址來實現(xiàn)。單個子網(wǎng)無線數(shù)據(jù)傳輸采用中心集中控制模式,由控制終端以廣播的方式與監(jiān)測終端建立有效通信鏈路,控制終端和監(jiān)測終端在發(fā)送數(shù)據(jù)完畢后立即返回接收狀態(tài),實現(xiàn)“六發(fā)一收”的功能,還可以通過擴展地址的方式增加監(jiān)測終端數(shù)量。
nRF24L01[7] 模塊工作于增強型SchockBurstTM模式下,增強型ShockBurst?數(shù)據(jù)包格式如表1所列。其文字表述如下所示:
1字節(jié)前導(dǎo)碼+5字節(jié)工作通道地址+9位標(biāo)志位+32位的傳感器數(shù)據(jù)+2字節(jié)CRC校驗
nRF24L01模塊用前導(dǎo)碼來檢測0和1,芯片在接收模式下去除前導(dǎo)碼,在發(fā)送模式下加入前導(dǎo)碼;工作通道地址是nRF24L01模塊發(fā)送或者接收數(shù)據(jù)的通道地址;標(biāo)志位是進行數(shù)據(jù)包丟包重傳的計數(shù);32位數(shù)據(jù)包括4位溫度信息、4位土壤含水量、4位CO2濃度、19位可擴展數(shù)據(jù)(便于后續(xù)擴展)、1位通道標(biāo)識符;2字節(jié)的CRC檢驗碼用于檢測數(shù)據(jù)傳輸?shù)恼_性。
在接收端,集中控制機將數(shù)據(jù)接收后存入RX_FIFO寄存器,通過函數(shù)將32位接收的數(shù)據(jù)讀取出來,按照事先定義好的通信協(xié)議判別是哪一個通道上的數(shù)據(jù):判斷tmp_buf[31]==0否,則為0通道,判斷tmp_buf[31]==1否,則為1通道,以此類推,并按照通道號顯示在相應(yīng)的TFT_LCD上。
2.2 主程序流程
系統(tǒng)的開發(fā)環(huán)境采用KEIL uVision 5 IDE,它集編程、編譯、下載、調(diào)試于一體,可對多種嵌入式芯片進行開發(fā)。程序代碼采用搭積木的方式對如實時時鐘程序RTC,按鍵程序key,無線通信程序24L01等以子程序的形式編輯,編譯通過后提供.c和.h文件放置在HARDWARE文件夾下,并在目標(biāo)文件的編譯選項下提供所有子程序的文件包含路徑Include Paths,只需要在主程序中加載相應(yīng)的頭文件就可以實現(xiàn)子程序的調(diào)用。這種編程方式結(jié)構(gòu)清晰,便于查錯調(diào)試。
在主程序中首先定義相關(guān)變量,之后設(shè)置系統(tǒng)的時鐘為168 MHz,串口的波特率為115 200 b/s,配置實時時鐘RTC的WAKE_UP中斷,使其1秒中斷一次,用于定時,LED系統(tǒng)運行提示初始化,液晶驅(qū)動初始化,無線通信模塊的收發(fā)初始化,按鍵初始化。初始化完成后,檢測nRF24L01是否正常工作,并給出相應(yīng)的提示信息,掃描按鍵以確定主從機的通信頻率。設(shè)置好后按照預(yù)先定義好的數(shù)據(jù)幀格式判斷接收的是哪路信號,并顯示在相應(yīng)的位置。與此同時,系統(tǒng)設(shè)置每隔5分鐘由主機通過GPRS模塊SIM900A發(fā)送6路信息到手機或其他智能終端。主程序流程圖如圖4所示。
2.3 無線發(fā)送模式流程
無線發(fā)送模式流程[7,8]如下所示:
(1)MCU控制引腳CE為低,使nRF24L01進入待機模式1;
(2)發(fā)送節(jié)點地址(TX_ADDR)、接收節(jié)點地址(RX_ADDR_P0用于自動應(yīng)答)和有效數(shù)據(jù)(TX_PLD)通過SPI接口寫入 nRF24L01,當(dāng)CSN為低時數(shù)據(jù)被不斷寫入;
(3)使能通道0的自動應(yīng)答和通道0的接收地址;
(4)設(shè)置自動重發(fā)的時間間隔和最大自動重發(fā)次數(shù);
(5)設(shè)置RF的通道;
(6)設(shè)置TX的發(fā)射參數(shù)、0 db增益、2 Mb/s通信速率,開啟低噪聲增益;
(7)配置PWR_UP、EN_CRC、16BIT_CRC,開啟所有中斷;
(8)MCU控制引腳CE為高,使nRF24L01進入發(fā)送模式;
(9)發(fā)送端發(fā)送完數(shù)據(jù)后進入接收模式來接收應(yīng)答信號。
nRF24L01的發(fā)送模式程序流程圖如圖5所示。
2.4 無線接收模式流程
無線接收模式流程如下所示:
(1)MCU將nRF24L01的CE引腳置低,使其進入待機模式1,并對其寄存器進行配置;
(2)寫入6個從機的地址P0~P5;
(3)使能通道0~5的自動應(yīng)答,使能通道0~5的接收地址,允許接收;
(4)設(shè)置RF的通信頻率,通信頻率可以通過軟件編程設(shè)置,利用通信頻率的不同實現(xiàn)多機通信;
(5)設(shè)置通道0~5的接收數(shù)據(jù)長度,統(tǒng)一設(shè)置為(RX_PLOAD_WIDTH=32)32個字節(jié);
(6)設(shè)置TX的發(fā)射參數(shù),0 db增益,2 Mb/s的通信速率,開啟低噪聲增益;
(7)設(shè)置PWR_UP、EN_CRC、16BIT_CRC接收模式的基本操作;
(8)將nRF24L01的CE引腳置高,使其進入接收模式;
(9)接收到有效數(shù)據(jù)包后(地址匹配、CRC校驗正確),數(shù)據(jù)包設(shè)置最后一個字節(jié)的內(nèi)容為0,判斷當(dāng)前數(shù)據(jù)包的第31位數(shù)據(jù)是0還是1~5,這樣就可以按照通道號將傳感器數(shù)據(jù)顯示在不同的行上;
(10)發(fā)送確認信號。
無線接收流程圖如圖6所示。
單片機與SIM900A模塊通過串口相連,按通信協(xié)議用AT指令實現(xiàn)SIM900A模塊與GSM網(wǎng)絡(luò)的通信[9]。
DS18B20[10]采集溫度程序設(shè)計:使能端口時鐘PORTG,使用端口PG11采集溫度,首先檢查DS18B20芯片是否就位,接著初始化DS18B20,復(fù)位DS18B20,跳過讀取芯片內(nèi)部的ROM序列,讀取溫度的低字節(jié)和高字節(jié),數(shù)據(jù)處理后進行無線數(shù)據(jù)包的數(shù)據(jù)填充并顯示。
光照強度采集程序設(shè)計:使能端口時鐘PORTB,使用PB6的I2C1_SCL和PB7的I2C1_SDA,利用I2C硬件接口按照時序就可讀取BH175FVI模塊的光照情況,數(shù)據(jù)處理后供無線數(shù)據(jù)包填充和顯示。
3 結(jié) 語
本項目設(shè)計的無線監(jiān)測系統(tǒng)使用ARM M3-CPU和nRF24L01等模塊構(gòu)建數(shù)據(jù)的采集節(jié)點,ARM M4-CPU、 nRF24L01模塊、 GPRS模塊等構(gòu)成集中控制器,利用ARM CPU強大的數(shù)據(jù)處理功能和nRF24L01模塊組網(wǎng)靈活的特點,實現(xiàn)了1收6發(fā)的分布式植物工廠監(jiān)控系統(tǒng)。測試結(jié)果表明,由于采用了雙天線的nRF24L01模塊,因此在900 m范圍內(nèi)無線傳輸基本穩(wěn)定,隨著距離的增加,數(shù)據(jù)丟包率隨之升高。系統(tǒng)通過擴展,相鄰子網(wǎng)之間采用不同頻率方式工作而且頻率間隔較大,可以實現(xiàn)更大范圍的分布式監(jiān)控系統(tǒng)。由于利用了TFT顯示屏,可以隨時查看采集的數(shù)據(jù)信息,該信息通過GPRS模塊實時發(fā)送到用戶的智能終端。該系統(tǒng)具有設(shè)計簡單、穩(wěn)定性好、可擴展性強等優(yōu)點,可應(yīng)用到各類無線傳輸?shù)墓こ填I(lǐng)域中,為其它環(huán)境監(jiān)測系統(tǒng)提供參考。
參考文獻
[1]劉彤,李堯,賀宏偉,等.基于ZigBee的密閉式LED植物工廠監(jiān)控系統(tǒng)[J].農(nóng)機化研究,2015 (5):75-81.
[2]鄭爭兵.基于nRF24L01和GSM的沼氣工程無線監(jiān)測系統(tǒng)設(shè)計[J].核電子學(xué)與探測技術(shù),2013,33(8):995-999.
[3]時志云,蓋建平,王代華,等.新型高速無線射頻器件nRF24L01及其應(yīng)用[J].國外電子元器件,2007 (8):42-44.
[4]意法半導(dǎo)體.STM32F103ZET6中文手冊[EB/OL]. http://wenku.baidu.com/view/b42bbf40be1e650e52ea992f.html.
[5] Risym器件.工業(yè)級nRF24L01+PA+LNA 數(shù)傳無線模塊[EB/OL]. https://detail.tmall.com/item.htm?id=25563544406&spm=a1z09.2.0.0.RrAOte&_u=324f64f3ac.
[6] nRF24L01 如何實現(xiàn)多機通訊[EB/OL].http://www.openedv.com/posts/list/18326.htm.
[7]訊通科技.nRF24L01中英文說明[EB/OL]. http://wenku.baidu.com/link?url=G26rAwQSd7mYwNKQ8mlitzGm3PXm5bH8jgPgChM6gOhsXlJrgv36gmV04cWxhyDdHlXDEkOtu38ToIgLWSoWbAokdbS1tcPtSTKHF9PlDum.
[8]張永宏,曹健,王麗華.基于51單片機與nRF24L01無線門禁控制系統(tǒng)設(shè)計[J].江蘇科技大學(xué)學(xué)報(自然科學(xué)版),2013,27(1):64-69.
[9]李雪峰,何振俊.基于單片機控制的多路激光安防報警裝置設(shè)計[J].電子設(shè)計工程,2016,24(1):144-148.
[10]莊華勇,伍川輝.基于ZigBee的高速動車組車內(nèi)溫濕度監(jiān)測系統(tǒng)設(shè)計[J].中國測試,2013,39(2):85-88.