您好,歡迎訪問深圳市奧森韋爾自控設(shè)備有限公司官網(wǎng)!
本文提出了一種可用于觀光農(nóng)業(yè)的無線傳感器網(wǎng)絡(luò)的混合型節(jié)點設(shè)計,該節(jié)點可以實現(xiàn)農(nóng)業(yè)種植信息監(jiān)測與控制,并能夠供移動設(shè)備接入; 其通過ZigBee 與上位機(jī)交互,且可結(jié)合基于Android 的APP通過近場通信( Near field communication,NFC) 及藍(lán)牙技術(shù)連接移動智能設(shè)備提供田間種植服務(wù)與觀光服務(wù),從而實現(xiàn)對種植者及游客的多種業(yè)務(wù)支持。
1 節(jié)點整體設(shè)計
節(jié)點在設(shè)計中需兼顧游覽觀光、遠(yuǎn)距離監(jiān)測控制和田間接入的需求。節(jié)點在沒有外部移動設(shè)備接入時為常規(guī)工作模式。在這種模式下,節(jié)點通過Zig-Bee 通信模塊接收由上位機(jī)發(fā)來的指令,并根據(jù)具體指令執(zhí)行數(shù)據(jù)收集與設(shè)備控制。節(jié)點接收到數(shù)據(jù)收集指令后讀取其上所接傳感器的數(shù)據(jù)及在該輪詢周期內(nèi)的移動設(shè)備接入次數(shù),并將數(shù)據(jù)按照原路徑通過ZigBee 發(fā)往上位機(jī)。在設(shè)備控制指令下,節(jié)點通過PWM 輸出或邏輯輸出控制外圍設(shè)備,并監(jiān)測設(shè)備參數(shù),其后將控制結(jié)果發(fā)回上位機(jī)。
支持田間移動設(shè)備接入為節(jié)點的重要功能。為方便移動設(shè)備快速接入節(jié)點,在節(jié)點上使用融合NFC 和藍(lán)牙技術(shù)的設(shè)計。節(jié)點NFC 標(biāo)簽中含有節(jié)點標(biāo)識、節(jié)點周圍種植環(huán)境、藍(lán)牙設(shè)備等信息供移動設(shè)備讀取。移動設(shè)備使用者先將手機(jī)靠近NFC 標(biāo)簽,通過對應(yīng)的APP 讀取節(jié)點NFC 標(biāo)簽中信息,之后將NFC 標(biāo)簽中編碼規(guī)格化的信息通過查閱APP的內(nèi)建數(shù)據(jù)庫轉(zhuǎn)化為具體的種植數(shù)據(jù)及設(shè)備參數(shù)。移動設(shè)備還根據(jù)設(shè)備參數(shù)自動獲得認(rèn)證從而快速連接節(jié)點的藍(lán)牙模塊,實現(xiàn)速連接入。連接后即可實現(xiàn)節(jié)點周圍的環(huán)境參數(shù)實時查看及節(jié)點外部機(jī)電設(shè)備的現(xiàn)場控制。使用該方案不僅方便快捷,而且在人流密度較大的觀光場所中利用NFC 覆蓋范圍小( < 10 cm) 的特性能有效避免藍(lán)牙多接入出現(xiàn)的沖突。節(jié)點所對應(yīng)的APP 分為田間管理者APP 和面向游客的APP,兩者都可以根據(jù)節(jié)點NFC 標(biāo)簽中的信息進(jìn)行觀光園內(nèi)位置定位、作物種植信息查詢等,但兩者區(qū)別在于僅田間管理者APP 可進(jìn)行設(shè)備控制及對NFC 標(biāo)簽信息進(jìn)行維護(hù)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
2 節(jié)點硬件設(shè)計
節(jié)點的硬件設(shè)計不僅需要滿足系統(tǒng)的功能需求,而且還要盡可能地符合結(jié)構(gòu)簡單、可靠性好的要求。在設(shè)計中選擇微芯公司出品、采用nanoWattXLP 技術(shù)的PIC16 ( L) F1947 微控制器作為節(jié)點的MCU。在PIC16 ( L) F1947 的USART1 接口上使用RSM485 連接各RS-485 設(shè)備,在其USART2 接口上連接串口設(shè)備。節(jié)點中還使用PIC16( L) F1947 的內(nèi)部溫度傳感器對系統(tǒng)核心板電路部分的工作溫度進(jìn)行監(jiān)測,由此避免異常的環(huán)境溫度惡化對系統(tǒng)造成的損害。
在對土壤參數(shù)的測量中,采用RS-485 接口的Hydra II 土壤傳感器,通過其可獲得土壤體積含水量、土壤電導(dǎo)率和土壤溫度等參數(shù)。日光輻照數(shù)據(jù)通過Davis 公司出品的6450 日光輻照傳感器采集,該傳感器依照每1. 67 mV 的電壓輸出對應(yīng)1W·m - 2日光輻照的比例關(guān)系將日光輻照數(shù)據(jù)轉(zhuǎn)化為電壓輸出以供PIC16 ( L) F1947 進(jìn)行A/D 采集。環(huán)境溫濕度數(shù)據(jù)與灌溉水路溫度分別由AM2306 和鎧裝DS18B20 采集。兩者都通過1-Wire 接口與PIC16( L) F1947 連接。節(jié)點也可通過RS-485 總線連入SM5386B 風(fēng)速傳感器與SM5387B 風(fēng)向傳感器,由此獲得風(fēng)速/風(fēng)向數(shù)據(jù)。為了使節(jié)點功能與成本具有一定的彈性,上述傳感器都可根據(jù)實際需要進(jìn)行選配增減。用戶只需簡單地設(shè)定節(jié)點上的撥碼開關(guān)即可實現(xiàn)對節(jié)點傳感器的接入配置。節(jié)點中的PIC16( L) F1947 還可為外部設(shè)備提供PWM 與邏輯電平控制信號,兩者都通過與帶有電機(jī)驅(qū)動或繼電器的Plug-In 模組卡連接受控設(shè)備。節(jié)點中共提供5路PWM 輸出,其中3 路為增強(qiáng)型全橋PWM,剩余2路為標(biāo)準(zhǔn)PWM/邏輯控制。每一路都可通過上位機(jī)發(fā)來的設(shè)備控制指令單獨控制。當(dāng)每次數(shù)據(jù)采集及控制命令完成后,節(jié)點還要將該次的傳感器數(shù)據(jù)與設(shè)備狀態(tài)量存儲在節(jié)點的數(shù)據(jù)空間中。在節(jié)點中共存儲最近的15 次數(shù)據(jù)以備移動設(shè)備接入后查看。因為現(xiàn)有農(nóng)業(yè)傳感器供電電平多樣,所以節(jié)點采用太陽能-DC /DC-LDO 方式為節(jié)點提供不間斷的多電壓供電支持。40 W 多晶硅太陽能板的輸出通過連接鉛酸蓄電池的太陽能控制器后輸出12 V 的電壓,經(jīng)由LM2596 進(jìn)行DC /DC 變換后獲得5 V 電壓,再通過TPS73033 與TPS73030 提供穩(wěn)定的3. 3、3. 0 V電壓。
PIC16( L) F1947 的RS-485 總線與USART2 端口上分別連接DRF-2619C 型ZigBee 通信模塊與RN4020 藍(lán)牙模塊。DRF-2619C 基于CC2530F256,實測通信距離最遠(yuǎn)可達(dá)1 600 m,在具體設(shè)計中可根據(jù)需求將其設(shè)定為Router 或Coordinator 模式。由于在部分場地中節(jié)點與上位機(jī)距離較遠(yuǎn),還為這些節(jié)點額外配用了2. 4G/18 dBi 的引向天線以增加傳輸距離,較大幅度地增強(qiáng)ZigBee 的傳輸效果。RN4020藍(lán)牙模塊內(nèi)置Bluetooth 低功耗4. 1 協(xié)議棧,通過UART 實現(xiàn)ASCII 命令接口API。由于節(jié)點多布設(shè)在田間,而游客通道距離節(jié)點有一定距離,所以節(jié)點所用藍(lán)牙模塊需要有較大的通信距離,RN4020 近100 m 的通信距離可以較好地滿足需要。在布設(shè)中,節(jié)點與NFC 標(biāo)簽的平均距離約5 m。節(jié)點所用標(biāo)簽為NXP 出品的NTAG216 芯片。該標(biāo)簽易于識讀,保密性與抗干擾性較強(qiáng),在標(biāo)簽內(nèi)可以提供近900 字節(jié)的存儲空間,可以滿足節(jié)點標(biāo)識信息存儲的需求。節(jié)點功能結(jié)構(gòu)圖如圖2 所示。
節(jié)點在工作中分別設(shè)置高/低2 個系統(tǒng)中斷響應(yīng)上位機(jī)發(fā)來的信息與移動設(shè)備接入操作。節(jié)點還需要監(jiān)測其供電與芯片溫度,發(fā)生異常后須向上位機(jī)發(fā)送警告信息。其余時間內(nèi),節(jié)點處于休眠狀態(tài)以優(yōu)化能量利用。在上位機(jī)與節(jié)點通過ZigBee 進(jìn)行交互時,上位機(jī)下行對節(jié)點的調(diào)用指令格式、節(jié)點上行數(shù)據(jù)及警告格式如圖3 所示。節(jié)點的工作程序結(jié)構(gòu)流程框架如圖4 所示。
3 用于節(jié)點接入的Android APP 設(shè)計
用于用戶節(jié)點接入的APP 在設(shè)計中不僅需要充分考慮應(yīng)用場景,還需要充分利用移動設(shè)備自身的特點,融合NFC 和藍(lán)牙技術(shù),實現(xiàn)用戶接入節(jié)點的快速性、便捷性,并保證其可以對節(jié)點實現(xiàn)可靠操作。此外對游客來說,其通常不愿花費較長時間來學(xué)習(xí)APP 的使用,所以界面應(yīng)盡可能簡單易用。由于NFC的功能是在AndroidAPI9 + 以上加入的,用戶所使用的移動設(shè)備中系統(tǒng)版本也應(yīng)為Android 2. 3或者更高的版本。該APP 的主要核心功能為NFC標(biāo)簽直讀、藍(lán)牙自動連接、種植信息/價格顯示推送、種植環(huán)境參數(shù)實時顯示、節(jié)點機(jī)電設(shè)備控制、園內(nèi)位置定位。在APP 開發(fā)中,田間管理者APP 與游客APP 采用相同的后臺架構(gòu)和類似的界面布局風(fēng)格。區(qū)別在于游客APP 的界面上沒有機(jī)電設(shè)備控制與NFC 標(biāo)簽維護(hù)選項。移動端APP 及結(jié)構(gòu)如圖5所示。
3. 1 讀取/更改NFC 標(biāo)簽信息及定位操作
圖6 為移動端APP 部分界面,可實時顯示相應(yīng)的信息。讀取NFC 標(biāo)簽信息是指NFC 設(shè)備對無源的NFC 標(biāo)簽信息讀取,該操作主要針對的是NDEF格式的數(shù)據(jù),它是NFC 數(shù)據(jù)交換的一種二進(jìn)制格式,由1 個或者多個NDEF 記錄組成,記錄內(nèi)容可以是URL、MIME 或者NFC 自定義的數(shù)據(jù)類型。在本系統(tǒng)中讀取的是寫入標(biāo)簽中的藍(lán)牙設(shè)備的MAC 地址和PIN 匹配碼。讀取NFC 標(biāo)簽的步驟如下: 定義標(biāo)簽對象、獲取NDEF 消息、NDEF 消息解析、解析后的NDEF 數(shù)據(jù)顯示及UI 交互操作。當(dāng)完成標(biāo)簽讀取后,APP 可通過查閱其內(nèi)建的種植數(shù)據(jù)定義,并將標(biāo)簽內(nèi)規(guī)格化的信息轉(zhuǎn)換為可供用戶識讀的產(chǎn)品內(nèi)容信息,并通過UI 界面呈現(xiàn)給用戶。在田間管理者對標(biāo)簽中的信息進(jìn)行維護(hù)時,通過預(yù)先定義的BlutoothConnectConfigWriter.java 開啟前臺調(diào)度系統(tǒng),檢測NFC 的標(biāo)簽類型,隨后APP 則利用getNdefMsg_from_RTD_TEXT( ) 函數(shù)來獲取寫入的NDEF 信息,通過WriteTask 函數(shù)將對應(yīng)的信息寫入到NFC 標(biāo)簽中。寫入的過程中,還通過UI 提示用戶在NFC 標(biāo)簽信息更新完成前將移動終端始終靠近NFC 標(biāo)簽,以便寫入數(shù)據(jù)。此外通過標(biāo)簽還獲得了該節(jié)點在園內(nèi)位置的唯一的ID 信息,在本設(shè)計中調(diào)用百度地圖的API 實現(xiàn)定位功能。通過匹配ID 及經(jīng)緯度信息,為用戶找到其對應(yīng)的園內(nèi)具體位置,并通過圖層標(biāo)記操作顯示在導(dǎo)游圖上。NFC 標(biāo)簽中內(nèi)容如圖7 所示。
3. 2 基于NFC 標(biāo)簽的藍(lán)牙接入及手機(jī)- 節(jié)點交互
在藍(lán)牙連接中,移動設(shè)備在掃描NFC 標(biāo)簽,成功讀取標(biāo)簽消息之后,即可實現(xiàn)與指定藍(lán)牙模塊的快速連接。與傳統(tǒng)的移動設(shè)備與藍(lán)牙模塊連接的方法相比,省去了傳統(tǒng)的搜索藍(lán)牙設(shè)備、選擇連接設(shè)備、輸入PIN 匹配碼的繁瑣步驟,提高了連接的速度,節(jié)約了連接的時間。在獲取到解析成功的MAC 地址和PIN 匹配碼后,將開啟一個藍(lán)牙連接的線程,判斷藍(lán)牙設(shè)備的連接狀態(tài),若沒有連接,則開始配對。利用讀取標(biāo)簽信息的PIN 匹配碼的信息來設(shè)置自動配對的值,在配對成功后,APP 界面將會成功跳轉(zhuǎn)到讀取種植信息/環(huán)境參數(shù)顯示的界面。由于藍(lán)牙設(shè)備在實現(xiàn)通信時,均是以客戶端、服務(wù)端的模式通信,而在該設(shè)計中,移動設(shè)備始終是客戶端。當(dāng)節(jié)點與移動智能設(shè)備實現(xiàn)連接后,不再響應(yīng)上位機(jī)的指令。接入節(jié)點之后,移動設(shè)備可以讀取各個環(huán)境參數(shù)的信息,并繪制環(huán)境參數(shù)變化的曲線。在移動設(shè)備與節(jié)點的交互中,節(jié)點收到種植環(huán)境參數(shù)查詢指令后,將實時傳感器讀數(shù)與之前存儲的15 次監(jiān)測值一起發(fā)給移動設(shè)備。當(dāng)接收到的數(shù)據(jù)符合該形式,則截取數(shù)據(jù)包的特定位置上的字符串,并通過數(shù)據(jù)格式轉(zhuǎn)化來獲得并顯示所采集到的傳感器數(shù)據(jù)。為了方便用戶監(jiān)測環(huán)境參數(shù)的變化趨勢,在APP 中設(shè)計多個按鈕,點擊即可查看各個環(huán)境參數(shù)變化的曲線圖。在該界面上,繪制的環(huán)境參數(shù)的變化曲線每秒刷新1 次,較快的刷新速度能夠使用戶及時準(zhǔn)確地發(fā)現(xiàn)其變化,并做出相應(yīng)的控制。同樣對節(jié)點上設(shè)備的控制也由用戶通過點擊UI 界面上特定的按鈕實現(xiàn)。在移動設(shè)備連入節(jié)點后,移動設(shè)備與節(jié)點之間的控制指令及信息交互格式與前述上位機(jī)與節(jié)點之間的交互格式類似,但是由于此時的藍(lán)牙連接是唯一的,連接架構(gòu)為P2P,所以在設(shè)計的節(jié)點- 移動設(shè)備交互格式中,省略了前述交互格式中節(jié)點網(wǎng)內(nèi)地址和上位機(jī)地址。
4 系統(tǒng)測試
系統(tǒng)完成后于河北省秦皇島市昌黎縣進(jìn)行了現(xiàn)場測試。測試中共布設(shè)11 個節(jié)點,其中5 個布設(shè)在園林中,其余布設(shè)于蔬菜溫室內(nèi)。節(jié)點與上位機(jī)之間的距離為200 ~ 500 m。上位機(jī)采用華北工控EMB3870 低功耗嵌入式工控板,軟件基于C#設(shè)計。節(jié)點ZigBee 模塊采用基于CC2530 的DRF-2618A。對應(yīng)地在上位機(jī)采用2. 4 G/14 dBi 的全向玻璃鋼天線。每1 個節(jié)點所對應(yīng)的NFC 標(biāo)簽與節(jié)點距離約3 ~ 5 m。系統(tǒng)輪詢周期為220 s。在實測中發(fā)現(xiàn),雖然大多數(shù)節(jié)點與上位機(jī)的無線電視距傳輸通道內(nèi)都存在部分障礙物( 植物枝葉或大棚支架薄膜等) ,但是節(jié)點與上位機(jī)之間在各種氣象條件下都可以進(jìn)行較好的命令與數(shù)據(jù)交互。即便天氣為中到大雨,也能保證信道增益可彌補(bǔ)雨衰對信號的損耗。
由于游客或田間管理者所使用的移動智能設(shè)備對節(jié)點的訪問是高度隨機(jī)的,在部分情況下會與上位機(jī)- 節(jié)點之間的信息交互過程產(chǎn)生沖突。研究中發(fā)現(xiàn),沖突出現(xiàn)的最主要時間段是節(jié)點采集傳感器數(shù)據(jù)的時段。通過分析節(jié)點發(fā)往上位機(jī)的輪詢間隔內(nèi)移動智能設(shè)備接入次數(shù)還發(fā)現(xiàn),通常游客或田間管理者對節(jié)點的訪問時間小于1 個輪詢間隔,且較少出現(xiàn)對節(jié)點連續(xù)性的占用。所以在設(shè)計中采用可容納2 ~ 3 個輪詢周期數(shù)據(jù)的緩存能較好地解決上述沖突問題。研究還針對節(jié)點與配套APP 的使用體驗對游客進(jìn)行了問卷調(diào)查。問卷調(diào)查重點針對游客游覽時間、興趣度( 5 分制) 與人均消費這3 個與游客游園體驗密切關(guān)聯(lián)的問題。在問卷調(diào)查中共計回收有效問卷754 份,其中291 份為使用NFC 接入游客,其余為普通游客。NFC 接入游客組的人均游覽時間( 3 h 21 min) 、人均興趣度( 4. 71 分) 與人均消費( 154. 64 元) 比普通游客組( 3 h 37 min、4. 53 分、114. 32 元) 都有一定程度的提升。問卷調(diào)查結(jié)果表明該方式有效地提高了游客游園的興趣度。尤其是通過該節(jié)點對游客實現(xiàn)了種植過程信息與田間管理實時信息的公開化、透明化,較大程度地促進(jìn)了游客在游園過程中對農(nóng)產(chǎn)品的消費,進(jìn)而提高了園區(qū)收入。系統(tǒng)的測試結(jié)果表明,該節(jié)點不僅可以較好地服務(wù)于常規(guī)農(nóng)業(yè)數(shù)據(jù)的采集與設(shè)備控制,更能有效地服務(wù)觀光農(nóng)業(yè)游客、提高園區(qū)營收。