楊林杰 張斌 陳婷婷
摘要:針對(duì)農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)中環(huán)境信息檢測(cè)采集的需求,設(shè)計(jì)了一種無線傳感器網(wǎng)絡(luò)。設(shè)計(jì)基于NRF24L01無線射頻收發(fā)芯片,采用STM32C8T6單片機(jī)作為控制核心,實(shí)現(xiàn)了溫濕度、光照度數(shù)據(jù)的采集和簇狀多跳無線網(wǎng)絡(luò)傳輸。描述了硬件電路的特點(diǎn)及實(shí)現(xiàn),詳細(xì)介紹了簇狀網(wǎng)絡(luò)的實(shí)現(xiàn)思路。相較于NRF24L01原有的一對(duì)六通信功能,通信距離更遠(yuǎn)、可實(shí)現(xiàn)的網(wǎng)絡(luò)規(guī)模更大、能采集更大范圍的農(nóng)業(yè)環(huán)境信息。
關(guān)鍵詞:農(nóng)業(yè);物聯(lián)網(wǎng);NRF24L01無線通信;傳感器;STM32;簇狀網(wǎng)絡(luò)
中圖分類號(hào):TP368.12 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2020)01-0124-03
0 引言
我國目前的農(nóng)業(yè)生產(chǎn)存在勞動(dòng)生產(chǎn)率普遍低下、人均農(nóng)業(yè)資源缺乏和農(nóng)業(yè)資源浪費(fèi)嚴(yán)重等問題,農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)可以實(shí)現(xiàn)生產(chǎn)的精準(zhǔn)化管理、智能化控制[1]。農(nóng)業(yè)生產(chǎn)智能化的實(shí)現(xiàn),離不開傳感器網(wǎng)絡(luò)。
傳統(tǒng)的傳感器網(wǎng)絡(luò)布線復(fù)雜、成本高。為了克服這些缺點(diǎn),設(shè)計(jì)了基于NRF24L01無線通信模塊、以STM32C8T6為控制核心的無線傳感器網(wǎng)絡(luò),采用分層簇狀的拓?fù)浣Y(jié)構(gòu),簇頭和各層簇成員間以逐層、多跳傳輸?shù)姆绞酵ㄐ拧?/p>
NRF24L01是一款單片射頻收發(fā)器,工作在世界通用的2.4- 2.5GHz ISM頻段。接收模式下能同時(shí)接收六路數(shù)據(jù)[2]。但該模塊的基礎(chǔ)通信功能存在著網(wǎng)絡(luò)規(guī)模小、通信距離短的局限性。因此本設(shè)計(jì)在其基礎(chǔ)功能上進(jìn)行拓展,設(shè)計(jì)簇狀網(wǎng)絡(luò)通信協(xié)議,以達(dá)到網(wǎng)絡(luò)規(guī)模更大、通信距離更遠(yuǎn)的目的。
1 硬件設(shè)計(jì)
本設(shè)計(jì)由多個(gè)傳感器節(jié)點(diǎn)組成簇狀網(wǎng)絡(luò),單個(gè)節(jié)點(diǎn)硬件設(shè)計(jì)基本相同,可根據(jù)需要增減傳感器數(shù)量。硬件包括:STM32C8T6單片機(jī)最小系統(tǒng)、NRF24L01無線通信模塊、傳感器模塊、電源模塊。單個(gè)節(jié)點(diǎn)結(jié)構(gòu)框圖如圖1。
1.1 STM32與無線通信模塊
STM32C8T6是基于ARM核心的32位帶64K字節(jié)閃存的微控制器,工作頻率為72MHz,外設(shè)資源豐富:1個(gè)USB、1個(gè)CAN、3個(gè)16位通用定時(shí)器和1個(gè)PWM定時(shí)器、2個(gè)ADC、2個(gè)IIC接口和SPI接口、37個(gè)快速I/O端口[3],完全滿足本設(shè)計(jì)需求。
無線收發(fā)芯片NRF24L01可通過硬件或軟件模擬SPI 接口對(duì)進(jìn)行配置,能兼容無SPI外設(shè)的MCU。通過SPI配置無線收發(fā)模式、工作頻道、發(fā)送輸出功率、天線增益、發(fā)送和接收地址等功能,實(shí)現(xiàn)無線數(shù)據(jù)收發(fā)。NRF24L01功耗低,在0dBm輸出功率的發(fā)送模式下,電流消耗僅為11.3mA[2],很好地滿足了無線傳感器網(wǎng)絡(luò)對(duì)低功耗的需求。
NRF24L01集成了OSI模型中的物理層和數(shù)據(jù)鏈路層,擁有PID(包識(shí)別)、CRC校驗(yàn)、自動(dòng)應(yīng)答與自動(dòng)重發(fā)功能,從而確保數(shù)據(jù)包的可靠傳輸,也給在此基礎(chǔ)上的協(xié)議開發(fā)提供了方便。
1.2 傳感器模塊
本設(shè)計(jì)采用SHT20數(shù)字溫濕度傳感器進(jìn)行溫濕度的測(cè)量。溫度的測(cè)量范圍是-40到125℃,相對(duì)濕度的測(cè)量范圍是0-100%RH[4]。MCU可通過IIC接口與該傳感器通信,設(shè)置溫濕度數(shù)據(jù)的采集模式或讀取數(shù)據(jù)。
采用B-LUX-V30B低功耗環(huán)境光傳感器測(cè)量光通量,測(cè)量的范圍是0-200000流明,工作電流小于0.8mA,IIC數(shù)字量輸出。
1.3 電源電路
本設(shè)計(jì)硬件電路統(tǒng)一采用3.3V電壓供電,為了降低系統(tǒng)成本、使系統(tǒng)更小型、布置更方便,采用一節(jié)3.7V鋰電池降壓到3.3V后供電。為滿足低壓降穩(wěn)壓的需求,電源電路選用的是3.3V電壓輸出的三端穩(wěn)壓芯片XC6206P33。該芯片具有高精度、低功耗、低壓降的情況下能保持較高輸出電流等特點(diǎn),最大輸入電壓為4.3V,最大輸出電流200mA,應(yīng)用電路如圖2,圖中C1、C2值為1uF[5]。
2 軟件設(shè)計(jì)
2.1 簇狀網(wǎng)絡(luò)設(shè)計(jì)
本設(shè)計(jì)傳感器節(jié)點(diǎn)的通信鏈路關(guān)系采用分層簇狀結(jié)構(gòu)[6]。每個(gè)簇由一個(gè)簇頭節(jié)點(diǎn)和若干個(gè)簇成員節(jié)點(diǎn)構(gòu)成。一個(gè)簇中簇頭節(jié)點(diǎn)相對(duì)于成員節(jié)點(diǎn)為上級(jí)節(jié)點(diǎn),成員節(jié)點(diǎn)相對(duì)于簇頭節(jié)點(diǎn)為下級(jí)節(jié)點(diǎn)。最高級(jí)的簇頭為sink節(jié)點(diǎn)[6]。sink節(jié)點(diǎn)下接若干個(gè)成員節(jié)點(diǎn),這些成員節(jié)點(diǎn)下再進(jìn)一步分支,由此形成整個(gè)簇結(jié)構(gòu)。如圖3所示,圖形內(nèi)數(shù)字表示ID,箭頭上數(shù)字表示sink節(jié)點(diǎn)接收通道號(hào)。
將NRF24L01的6個(gè)接收通道中的通道0用于接收自動(dòng)應(yīng)答,通道1用于接收上級(jí)節(jié)點(diǎn)指令,通道2到5用于接收下級(jí)節(jié)點(diǎn)的數(shù)據(jù)。因此,每個(gè)節(jié)點(diǎn)有一個(gè)上級(jí)節(jié)點(diǎn)和四個(gè)下級(jí)節(jié)點(diǎn)。通信時(shí),根據(jù)收到數(shù)據(jù)包的通道號(hào)即可判斷數(shù)據(jù)包的來源。
本設(shè)計(jì)中每個(gè)節(jié)點(diǎn)都具有節(jié)點(diǎn)級(jí)別、節(jié)點(diǎn)ID、節(jié)點(diǎn)上級(jí)ID、本節(jié)點(diǎn)各通信通道地址4個(gè)屬性。在程序中,定義結(jié)構(gòu)體變量,該變量包含一個(gè)節(jié)點(diǎn)具有的各項(xiàng)屬性:
定義結(jié)構(gòu)體數(shù)組,在每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)體數(shù)組中存儲(chǔ)網(wǎng)絡(luò)中全部節(jié)點(diǎn)的屬性。給每個(gè)節(jié)點(diǎn)分配一個(gè)ID和級(jí)別,各個(gè)節(jié)點(diǎn)就可以根據(jù)自己的ID和級(jí)別確定自己具有的各項(xiàng)屬性。若共有n個(gè)節(jié)點(diǎn),當(dāng)簇頭節(jié)點(diǎn)要給簇成員發(fā)送數(shù)據(jù)時(shí),可通過查找結(jié)構(gòu)體數(shù)組元素中,s_super值與自己的s_ID值相等的元素,并將發(fā)送地址設(shè)置為該元素中存儲(chǔ)的接收通道1地址,如圖4(a);當(dāng)簇成員給簇頭節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),查找出s_ID與本節(jié)點(diǎn)的s_super值相等的元素,將發(fā)送地址設(shè)置為該元素中存儲(chǔ)的相應(yīng)接收通道地址即可,如圖4(b)。
2.2 總體功能實(shí)現(xiàn)
系統(tǒng)主要實(shí)現(xiàn)功能為在收到包后,判斷收到的包是來自下級(jí)的數(shù)據(jù)包還是來自上級(jí)的命令包。如果收到的是數(shù)據(jù)包,則將數(shù)據(jù)轉(zhuǎn)發(fā)給上級(jí);如果收到的是命令包,則先轉(zhuǎn)發(fā)命令包給下級(jí)節(jié)點(diǎn),再采集數(shù)據(jù),將采集到的數(shù)據(jù)發(fā)送給上級(jí)節(jié)點(diǎn)。
初始狀態(tài)下除sink節(jié)點(diǎn)外,簇狀網(wǎng)絡(luò)中的所有節(jié)點(diǎn)處于接收狀態(tài),sink節(jié)點(diǎn)周期性發(fā)出采集數(shù)據(jù)指令。sink節(jié)點(diǎn)初始化IO口和NRF24L01配置后,轉(zhuǎn)入發(fā)送模式,發(fā)起數(shù)據(jù)采集。完成發(fā)送后轉(zhuǎn)入接收模式,將采集到的數(shù)據(jù)匯總并發(fā)送到串口助手顯示。流程圖如圖5。
成員節(jié)點(diǎn)初始化為接收模式,根據(jù)接收到數(shù)據(jù)的通道號(hào)判斷數(shù)據(jù)來源。若是上級(jí)節(jié)點(diǎn)下發(fā)的指令數(shù)據(jù),則將數(shù)據(jù)轉(zhuǎn)發(fā)給下級(jí)節(jié)點(diǎn);若是下級(jí)節(jié)點(diǎn)上發(fā)的數(shù)據(jù),則將數(shù)據(jù)轉(zhuǎn)發(fā)給自己的上級(jí)節(jié)點(diǎn)。如圖6。
3 實(shí)驗(yàn)測(cè)試
制作4個(gè)無線通信節(jié)點(diǎn),首先測(cè)試節(jié)點(diǎn)間最大通信距離:在空曠室內(nèi),測(cè)得兩個(gè)節(jié)點(diǎn)間最大通信距離為20m。
測(cè)試整體通信功能。選用2個(gè)通信節(jié)點(diǎn)作為無線傳感器節(jié)點(diǎn),2個(gè)作為簇頭節(jié)點(diǎn),其中最高級(jí)的簇頭為sink節(jié)點(diǎn),在空曠的室內(nèi)的有效通信距離范圍內(nèi)布置節(jié)點(diǎn)構(gòu)成簇狀網(wǎng)絡(luò)。進(jìn)行測(cè)試,測(cè)得溫濕度及光照數(shù)據(jù)如表1。
4 結(jié)論
本文基于NRF24L01設(shè)計(jì)了一種簇狀拓?fù)涞木W(wǎng)絡(luò)通信協(xié)議,結(jié)合傳感器技術(shù),設(shè)計(jì)了無線傳感器節(jié)點(diǎn),實(shí)現(xiàn)了農(nóng)業(yè)環(huán)境信息的采集與無線傳輸。由于無須布線且簇狀網(wǎng)絡(luò)中的成員節(jié)點(diǎn)可作為簇頭節(jié)點(diǎn)進(jìn)一步擴(kuò)展網(wǎng)絡(luò),具有布置簡便、網(wǎng)絡(luò)規(guī)模大、覆蓋監(jiān)測(cè)范圍廣的優(yōu)點(diǎn)。實(shí)驗(yàn)證明,本文設(shè)計(jì)的無線傳感器網(wǎng)絡(luò)能夠?qū)崿F(xiàn)設(shè)計(jì)目的,進(jìn)行組網(wǎng)、通信和信息采集,為農(nóng)業(yè)物聯(lián)網(wǎng)的監(jiān)測(cè)環(huán)節(jié)提供了解決方案,同時(shí)對(duì)其他無線傳感器網(wǎng)絡(luò)的應(yīng)用場(chǎng)景也具有一定的參考價(jià)值。
參考文獻(xiàn)
[1] 陳曉棟,原向陽,郭平毅,等.農(nóng)業(yè)物聯(lián)網(wǎng)研究進(jìn)展與前景展望[J].中國農(nóng)業(yè)科技導(dǎo)報(bào),2015,17(02):8-16.
[2] Nordic Semiconductor.nRF24L01 datasheet[R].[S.l.]:Nordic Semiconductor,2009.
[3] STMicroelectronics.STM32F103x8 STM32F103xB datasheet[R].[S.I.]:STMicroel-Ectronics,2015.
[4] SENSIRION.Datasheet SHT20 [R].[S.l.]:SENSIRION,2014.
[5] TOREX SEMICONDUCTOR LTD. XC6206 Series[R].[S.l.]:TOREX SEMICONDUCTOR LTD.
[6] 孫利民,張書欽,李志,等.無線傳感器網(wǎng)絡(luò):理論及應(yīng)用[M].北京:清華大學(xué)出版社,2018.