賴義漢,王宇松,傅智河
(龍巖學院物理與機電工程學院,福建 龍巖 364012)
我國作為果樹栽培大國, 每年的水果產量及果樹種植面積均位居世界前列[1]。 在較偏遠的山區種植果樹,地形地勢較復雜,信號傳輸不穩定,缺乏對果樹生長氣候環境、土壤等相關參數的有效采集和監測,無法對果樹生長的環境進行最合適的調控, 從而影響果樹的成長以及果實的產量和品質。
隨著電子信息、傳感器、物聯網等技術的發展,種植人員可以通過傳感器等儀器設備對作物生長環境實時采集,并通過互聯網技術把數據傳送到遠程終端,及時精準獲取農作物生長環境信息及相關數據, 實現對農作物生長環境的遠程監測[2]。 由于果樹種植面積較大,范圍較廣, 一般需要用多個傳感器進行分布式采集數據。 目前主要采用以PLC 或單片機等作為采集和控制的核心設備[3-4]。PLC 雖然控制方便,但總體成本較高, 而采用單片機作為控制芯片, 通常采用WIFI、ZigBee、藍牙等作為無線傳輸模塊[5]。 WIFI 功耗較大、通信距離較近且成本高, 不適合戶外大范圍的多點測量和低功耗的組網要求;ZigBee、藍牙屬于短距離無線通信技術[6],其通信距離較短,一般適用于地勢比較平坦、空曠且范圍較小的環境。本設計以STC8A 系列單片機為控制核心,以RS485 為通信接口[7],通過TTLRS485 轉換電路與LoRa 無線數據透傳模塊實現對果樹種植環境參數的采集、傳輸、處理和顯示,具有成本低,通信距離遠、擴展靈活等特點[8-9],適用于多節點、范圍廣且環境較復雜的遠程數據監測。
系統采用宏晶科技有限公司的ST8A8K64S4A12單片機作為核心控制器,其片內有8 KB 內存、64 KB 的Flash 程序存儲器和4 個串口, 工作電壓為2.0~5.5 V,內部集成了復位電路和晶振電路。 單片機通過TTLRS485 轉換電路、LoRa 數據透傳模塊與環境傳感器、土壤傳感器連接,通過Modbus 協議實現一對多的無線通信模式,采集果樹生長的環境參數(溫度、濕度、光照、壓強、雨量)和土壤參數(溫度、水分、pH 值、電導率)等。 單片機把采集到的數據通過串口送至串口屏,并通過4G DTU 模塊發送至云服務器, 實現數據的遠程存儲和監測。 系統框圖如圖1 所示。

圖1 系統方框圖
STC8A 系列單片機串口采用的是TTL 電平,需通過MAX485 等轉換芯片轉換成RS485 電平, 才能與RS485 接口的傳感器等設備進行通信。 系統采用MAX13487 芯片構成的具有自動收發功能的半雙工TTL-RS485 電平轉換電路, 其工作電壓為+5 V, 電路原理圖如圖2 所示,其中:芯片的第1 腳RO 接單片機的RXD; 第4 腳DI 接單片機的TXD; 芯片的第3 腳SHDN 是關斷引腳,高電平時芯片為正常模式,低電平時芯片進入關斷模式;第2 腳RE 是模式切換控制端,低電平時芯片處于接收模式, 高電平時芯片工作在自動方向控制模式, 即在該模式下接收數據和發送數據都是芯片內部自動切換, 不需要程序和外部電路的參與。 本設計將2 腳RE 和3 腳SHDN 接為高電平,芯片為自動方向控制模式。

圖2 TTL-RS485 轉換電路
USART-HMI 串口屏選用型號為TJC8048X543 的4.3 寸電容串口屏, 它是一塊自帶處理器和觸摸功能的液晶顯示屏,通過串口與單片機主控模塊連接,其分辨率為800×480,采用5 V 供電,具有128 MB 的Flash 存儲器和512 KB 的運行內存。 串口屏的內部功能強大,具有按鈕控件、數字控件、虛擬浮點數控件、文本控件等多種組態控件, 通過廠家提供的上位機軟件以圖形化的方式對屏幕顯示的界面背景、按鈕效果、數字、文本顯示等控件進行設置, 通過豐富的串口指令集完成各種功能。 串口屏共有4 個端口:VCC、GND、TXD、RXD, 其中串口屏的TXD 和RXD 分別與單片機的RXD 和TXD 連接,單片機通過串口向串口屏發送顯示數據。
土壤傳感器采用ZTS-3001-TR 五插針土壤四參數傳感器,能夠測量土壤溫度、水分、電導率、pH 值等參數,具有性能穩定、靈敏度高、響應快、體積小、耐腐蝕等特點,可長期埋入土壤中。
環境傳感器采用氣象百葉箱結構,其內部由多個傳感器構成的共用一條RS485 總線接口的多合一檢測設備,能測量空氣的溫度、濕度、大氣壓、光照度等氣象參數。 傳感器采用高靈敏度數字探頭,信號穩定,精度高。
雨量傳感器采用翻斗式結構,其分辨率為0.2 mm,即每翻斗一次,雨量為0.2 mm,采用脈沖轉485 信號輸出,可直接讀取降雨量,無需二次計算。
土壤傳感器、 環境傳感器、 雨量傳感器均采用RS485 接口,即VCC(紅)、GND(黑)、RS485-A(黃)、RS485-B(綠),支持標準Modbus-RTU 通信協議,波特率設置為9 600,各傳感器的設備地址、寄存器地址及主要參數如表1 所示。

表1 各傳感器的設備地址及參數
LoRa 通信技術是近年來發展較快的低功耗、 遠距離傳輸的無線通信技術,具有傳輸距離遠、功耗低、組網節點多、抗干擾性強、成本低等特點,支持RS485 接口的數據收發。 系統采用USR-LG206 無線LoRa 透傳模塊,工作電壓為9~36 V,支持點對點通信協議,有4 種工作模式:AT 指令、透傳模式、定點模式、主從模式等。
傳感器通過RS485 接口與LoRa 設備連接, 通過點對點的方式實現一個主LoRa 模塊與多個從LoRa模塊之間的數據傳輸,其通信連接方式如圖3 所示。

圖3 LoRa 模塊的一對多通信示意圖
LoRa 在數據透傳模式下工作,只要通信雙方速率等級相同、信道一致、目標地址相同,雙方就可以實現數據傳送。 通信距離在500 m 左右范圍內,可選擇速率等級為8~9;若在1 km 以內,可選擇速率等級為5~7;若存在大型遮擋物時,還需降低速率。
USR-G771 是有人物聯網公司推出的高可靠性4G全網通DTU 模塊,具有高速率、低延遲等特點,內置獨立硬件看門狗,支持RS485 接口,支持三大運營商4G Cat-1 網絡和移動、聯通2G 網絡接入,且上電即可聯網應用,使用方便。 DTU 透傳工作模式如圖4 所示。

圖4 G771 DTU 透傳工作模式
要使DTU 設備連上云端服務器,首先要在有人云平臺上注冊有人云通行證,然后將設備添加到云端,在添加設備的過程中, 要在云平臺上填寫DTU 設備的SN、IMEI 等信息,設置完成后DTU 重新上電,設備啟動網絡后即可上線進行通信。 當G771 在透傳模式下工作時, 用戶的串口設備可以通過G771 發送數據到指定的服務器,G771 也可以接收來自服務器的數據,并將信息轉發至串口設備, 用戶無需關注串口數據與網絡數據包之間的數據轉換過程, 只需通過簡單的參數設置,即可實現數據雙向透明通信。
RS485 接口采用的是一種兩線制的差分信號的傳輸方式,Modbus 協議常用ASCII 或RTU 兩種模式,在RTU 模式下, 每個字節可以傳輸兩個十六進制字符,且在相同的波特率下RTU 模式可以比ASCII 模式傳送更多的數據。 在通信過程中,以單片機作為主機、傳感器作為從機, 當主機向從機發送帶有設備地址的問詢幀時,由于每個從機的設備地址是唯一的,從機收到命令后, 只有設備地址與問詢幀地址相同的傳感器才會做出應答,并返回一幀數據。
在Modbus RTU 模式下,主機問詢幀格式見圖5,從機應答幀格式見圖6。 其中:地址碼為傳感器的設備地址,在通信網絡中是唯一的。 功能碼指主機所發送的指令功能,如功能碼0x03(讀取寄存器數據)、0x06(存入寄存器數據)。

圖5 主機問詢幀格式

圖6 從機應答幀格式
單片機向傳感器發送問詢幀后, 等待傳感器發回應答幀,由于不同傳感器返回的數據長度不同,系統采用超時法接收一串長度不固定的數據包。 設系統串口通信的波特率為9 600, 每一幀數據由10 個數據位組成,即1 個起始位、8 個數據位和1 個停止位,那么單片機接收一個字節所需的時間為10/9 600 ms≈1.042 ms,即如果連續接收多個字節,每個字節之間相差約1.042 ms, 這里取5 ms 作為判斷一包數據是否結束的時間閾值,即單片機在接收數據過程中,若超過時間閾值沒有接收到數據即表示一包數據已接收完成。 在單片機中設定一個定時器, 每接收一字節數據就清零定時器,若長時間不清零,即定時時間超過5 ms 時,表示數據接收完成,進入數據處理環節。
在串口屏端首先使用串口屏的畫面組態軟件制作“工程文件”,設置對應的通信接口參數,設波特率為9 600,數據幀為10 位。 然后通過串口屏軟件建立顯示頁面,添加文本及數值等控件,把編制好的“工程文件”下載到串口屏的處理器和Flash 存儲器中運行。
在單片機端設置好串口的參數, 編寫發送數據的代碼,將需要發送的數據打包成字符串的形式,然后通過串口發送出去。在運行中,單片機通過串口指令改變控件的屬性就可以改變屏幕上顯示的內容, 因此單片機只需發送指令,而不需要編寫相關的驅動程序。發送溫度值部分代碼如下:
write_txt("x0.val="); //發送文本
write_COM(0x30+tem%1000/100);//溫度的十位
write_COM(0x30+tem%100/10); //溫度的個位
write_COM(0x30+tem%10); //溫度的小數位
write_COM(0xFF);//指令結束符為三字節“0xFF”
write_COM(0xFF);
write_COM(0xFF);
單片機啟動后先進行初始化,設置串口2、串口4的工作模式為波特率可變通信模式,定時器T2 為波特率發生器,波特率為9 600,設置定時器T0 為方式0 定時模式,采用中斷方式設置定時1 ms 初始值,并設置傳感器地址變量addr 的初始值為0,根據傳感器地址變量值發送土壤傳感器、氣象傳感器、雨量傳感器等設備的問詢幀,當數據包發送完后,等待接收對應傳感器發回的應答幀,并對接收到的數據包進行解析,讀出相應傳感器的參數值,發送至串口屏及DTU 模塊至云端進行顯示、存儲和監測,其流程圖如圖7 所示。

圖7 系統工作主流程圖
首先把傳感器與LoRa 模塊連接, 其中土壤傳感器(設備地址為1)與一個從LoRa 透傳模塊連接,氣象傳感器(設備地址為2)與雨量傳感器(設備地址為3)共用RS485 總線連接另一個從LoRa 透傳模塊,把主LoRa模塊通過RS485-USB 轉換模塊連接電腦,通過Modbus調試助手進行調試,在測試過程中,將所有的LoRa 模塊信道統一設置為72,目標地址為888,速度為8,波特率為9 600,無校驗位,有8 位數據位和1 個停止位。
根據表1 中各傳感器的設備地址、 寄存器地址格式分別發送土壤傳感器溫度、水分、電導率、pH 值問詢幀“0x01,0x03,0x00,0x00,0x00,0x04,0x44,0x09”,氣象傳感器的溫度、濕度問詢幀“0x02,0x03,0x01,0xf4,0x00,0x02,0x84,0x36”, 氣象傳感器的大氣壓、 光照問詢幀“0x02,0x03,0x01,0xf9,0x00,0x06,0x14,0x36”, 雨量傳感器問詢幀“0x03,0x03,0x00,0x00,0x00,0x01,0x85,0xe8”,其測試結果如圖8 所示, 調試助手能夠正確接收到對應傳感器發回的應答幀。

圖8 串口調試助手測試結果
把單片機的串口4 (P0.2,P0.3) 通過TTL-RS485自動轉換電路連接到LoRa 主模塊,串口2(P1.0,P1.1)連接到DTU 模塊。 單片機啟動后,逐一發送各傳感器的問詢幀,采用中斷方式接收各傳感器應答幀,并把相關參數數據解析出來,送串口屏及DTU 模塊至有人云端進行存儲、顯示及監測。串口屏及有人云平臺上顯示的測試數據如圖9 和圖10 所示。 從圖中可以看出,系統能夠很好地實時遠程監測環境參數的變化。

圖9 串口屏測試數據

圖10 有人云監測界面
本設計以STC8A 單片機為控制核心, 通過TTLRS485 自動轉換電路以及Modbus RTU 通信協議與具有RS485 通信接口的傳感器等外圍設備連接, 通過LoRa 無線透傳模塊,實現一對多的遠程無線數據采集控制, 同時數據通過DTU 模塊發送至云端存儲和顯示,為研究果樹的生長狀態與土壤環境、氣候環境間的關系以及不同地塊按需精準施肥等提供支撐。 整個控制系統電路結構簡單,組網方便,同時一個RS485 總線上可以掛接多個傳感器,其擴展容易,且數據傳輸可靠,性能穩定,對于地形復雜,且需要遠距離多點數據監測的工作場所有較高的應用價值。