柯春艷,安思
(新疆農業大學計算機與信息工程學院,烏魯木齊 830000)
農田信息監測系統主要監測對象包括土壤水分、含鹽度、酸堿度、環境溫濕度和光照度等信息,在農業精細化管理中發揮著重要作用。農田信息監測的主要任務是及時、準確、全面地掌握作物生長環境狀況,目的是通過監測和分析數據及其變化規律,通過精準管理提高農作物產量和質量、提高生產效率和解放勞動力、減少環境消耗、推進基于大數據的農業智能決策管理應用等。傳統的人工觀測或者儀器監測的方式成本高效率低且工作繁瑣,無法適應農業信息化的發展需要,為此,筆者開發一種基于RF無線通信技術的農田信息實時監測系統,該系統除了能將實時監測到的土壤和環境數據上傳到物聯網平臺,實現數據的遠程監控外,長遠來看還能為基于大數據的農業智能決策提供數據支撐。
系統由數據監測中心、匯聚節點和采集節點三部分組成,采集節點將土壤和環境數據通過RF無線通信模塊發送到匯聚節點,再由匯聚節點發送到基于開放云平臺的數據監測中心。
采集節點以Arduino UNO作為主控制器,包括nRF2401無線數據收發模塊,溫濕度檢測模塊、含鹽度和電導率檢測模塊以及光照強度檢測模塊。匯聚節點也以Arduino UNO作為主控制器,包括Wi-Fi和nRF2401無線數據收發模塊。數據監測中心依托中國移動OneNET物聯網開放平臺,匯聚節點采用HTTP協議接入該平臺,在平臺上實現數據的存儲和可視化。

圖1
系統結構如圖1所示。采集節點和匯聚節點都要進行數據處理,采集節點要將從各檢測模塊接收的數據統一轉換成一種進制再進行發送,匯聚節點要將來自采集節點的數據按照HTTP協議進行封裝處理后再發送到云平臺。
系統硬件包含兩個組成部分,分別是作為數據接收主機的匯聚節點和作為數據接收從機的采集節點。系統硬件結構圖如圖2所示。

圖2 系統硬件結構框圖
綜合考慮價格、功耗、通用性、開發周期等因素后,系統采用Arduino UNO作為采集節點和匯聚節點的主控制器。Arduino具有豐富的數字I/O接口和AD通道,接口資源和精度都滿足本系統各種檢測模塊的需求,此外還具有SPI接口和UART接口,可與本系統選用的RF無線模塊和Wi-Fi無線模塊進行通信。
采集節點除Arduino控制板外,集成溫度傳感器DS18B20、數字式光照傳感器BH1750、基于RS-485通信的高精度土壤溫濕度以及電導率傳感器、MGV3810電壓轉換模塊和nRF2401數據發射模塊。
(1)溫度檢測模塊的連接
溫度檢測模塊采用常用的數字溫度傳感器DS18B20,該模塊有三個端子,分別是 I/O、GND和VDD,其中VDD接3-5.5V電壓。DS18B20有兩個主要特點,第一是接線方便,不需要外圍元件,只需要一條通信接口,第二是封裝方便,進行不同的封裝后可適用于多種場合。主控板采用數字接口2與DS18B20進行通信,需要注意的是,I/O口必須經過10K上拉電阻接到VDD,主控板才能讀到數據。
(2)光照檢測模塊的連接
光照檢測模塊用于檢測作物生長環境的光照強度,系統采用數字式光照傳感器BH1750,它內置一個16位的AD,可直接得到光照數字值。該模塊采用I2C接口傳輸光照數據,有四個接口,分別是SDL、SCL、VCC和GND,其中VCC接3-5V電壓。BH1750的特點是功耗低、誤差小。主控板采用模擬接口A4和A5與BH1750進行通信,A4和A5管腳對應著UNO板上I2C總線的SDA信號線和SCL時鐘線。
(3)電導率檢測模塊的連接
采集節點的土壤檢測模塊信號線長度約1-3米,UART串口通信的可靠性在這種距離下無法得到保障,RS-485接口為差模信號傳輸,長距離通信時具有更好的抗干擾性,因此系統采用RS-485式土壤EC水分溫度三合一傳感器,該傳感器可同時測量土壤溫度、水分以及土壤總鹽量和電導率,精度高,響應快,輸出穩定,可長期埋入土壤中,耐電解,耐腐蝕。
主控板Arduino是TTL電平,為實現主控板與本模塊的數據通信,需要一個RS-485-TTL轉換模塊進行電平的轉變。主控板采用硬件串口RX/TX與轉換模塊的TTL串口連接,轉換模塊的RS-485差分信號與電導率檢測模塊連接。
(4)電源轉換模塊
采集節點各模塊需要不同的電壓,系統使用MGV3810電壓轉換模塊進行電壓轉換。MGV3810模塊的輸入電壓為12V,可得到3.3V、5.0V和12V三種輸出電壓,誤差小于0.05V。系統中需要一路12V供電導率檢測模塊使用,一路5V供Arduino主控板使用,一路3.3V供nRF2401使用,nRF2401也可由Arduino板載的3.3V電壓輸出口供電,BH1750模塊和DS18B20模塊由Arduino板載的5V電壓輸出口供電。采集節點的nRF2401模塊與匯聚節點的nRF2401模塊硬件設計類似,將在下一小節中進行介紹。
匯聚節點的功能是通過nRF2401模塊接收采集節點的數據,經過封裝之后通過Wi-Fi模塊將數據發到云平臺,匯聚節點包括主控板、nRF2401模塊和Wi-Fi模塊三個組成部分。
(1)nRF2401通信模塊與主控板的連接
采集節點和匯聚節點之間采用nRF2401進行通信,nRF2401是Nordic公司生產的2.4G無線射頻收發芯片,芯片內置頻率合成器、功放、晶振和調制器等模塊,該芯片有兩個主要特點,第一是沒有復雜的通信協議,第二是低功耗低成本,采用板載天線,空曠區實測通信距離達200米以上。nRF2401有5個信號線,分別是CE模式控制線、CSN片選線,與Arduino的數字引腳D9和D10連接,以及3個SPI的接口數據線SCK、MOSI和MISO,與Arduino UNO的SPI接口引腳D11、D12和D13連接。
(2)Wi-Fi通信模塊與主控板的連接
ESP8266是無線Wi-Fi模塊,具有集成度高、尺寸小巧、低功耗的特點,支持IEEE802.11 b/g/n和完整的TCP/IP協議棧,帶有UART/I2C/SPI接口,非常適合用來進行數據傳輸和物聯網應用等二次開發。本設計ESP8266使用串口和主控板進行通信。Wi-Fi模塊、nRF2401模塊和主控板的連接如圖3所示。

圖3 nRF2401模塊和主控板接口
系統程序設計主要包括采集節點的程序設計和匯聚節點的程序設計兩部分。
采集節點的程序流程圖如圖4所示,上電后首先對nRF2401和各傳感器模塊進行初始化,BH1750模塊初始化主要完成的是I2C地址和解析度設置,本系統將解析度設置為H-resolution mode,精度為1LUX;DS18B20初始化配置OneWire通信端口;RS-485接口模塊初始化內容為差分信號線配置;nRF2401初始化主要內容是標記本節點地址、定義傳輸數據長度、定義信道號和nRF2401發送模式設置。nRF2401模塊有256個信道,在使用時為避免信道間干擾,應盡量避免使用連續信道傳輸數據,初始化結束后,系統首先需要判斷是否接到發數據指令,該指令由系統的時鐘管理程序周期性產生。為降低系統功耗,設定每30分鐘采集一次傳感器數據存入片內EEPOM,接收到發送數據指令后調用nRF2401模塊的數據發送函數Mirf.send(),將EEPROM存儲的數據發給匯聚節點。

圖4 采集節點程序流程圖
匯聚節點的ESP8266初始化配置為STA模式。使用ESP8266需要注意兩個問題,接入物聯網平臺前先對申請好的Key進行驗證,發送數據前要先計算發送數據總的字節數,否則發送失敗。
OneNet平臺提供EDP、MQTT和HTTP等幾種常用協議傳輸方案,本系統對實時性要求不高且不需要建立長連接,相對于EDP協議和MQTT協議,HTTP協議實現簡單,所以選擇HTTP協議發送數據。系統初始化結束后,通過接收數據標志位判斷是否開始接收數據,若為是,則開始調用nRF2401數據接收函數Mirf.getData()接收來自采集節點的數據并將寫入片內EEPROM。數據全部接收完后調用ESP8266模塊的數據發送函數sendmessage(),將從EEPROM讀取的數據按照HTTP協議發送到物聯網平臺。
測試系統由3個采集節點和1個匯聚節點組成,圖5是物聯網平臺觀測其中一個采集節點溫度和濕度數據的效果圖,實驗結果驗證了農田信息監測系統能夠實現土壤含鹽度、電導率和濕度,以及環境光照度和溫度等數據的定時采集和傳輸。

圖5 數據采集效果
本文設計了一種基于nRF2401的農田信息監測系統,具有體積小、功耗低、傳輸距離遠的特點,能夠實現數據遠程監測,滿足實際應用需求,用戶可以通過連接互聯網一目了然地查看各監測點的土壤和環境情況,實現農業信息化管理。該系統具有良好的擴展性,同時適用于水環境監測、生態環境監測等其他環境監測領域的應用。