(長(zhǎng)春職業(yè)技術(shù)學(xué)院,長(zhǎng)春 130033)
傳統(tǒng)農(nóng)業(yè)生產(chǎn)方式難以滿足現(xiàn)階段日益增長(zhǎng)的糧食需求,加之農(nóng)村勞動(dòng)力短缺和人工成本不斷上升更促使農(nóng)業(yè)生產(chǎn)面臨嚴(yán)峻壓力。在此背景下,智能農(nóng)業(yè)技術(shù)應(yīng)運(yùn)而生。
物聯(lián)網(wǎng)技術(shù)通過(guò)將傳感器和通信技術(shù)應(yīng)用于農(nóng)業(yè)機(jī)械和農(nóng)作物生長(zhǎng)環(huán)境監(jiān)測(cè)中,實(shí)現(xiàn)對(duì)農(nóng)機(jī)和農(nóng)田的實(shí)時(shí)數(shù)據(jù)采集和傳輸,同時(shí),物聯(lián)網(wǎng)技術(shù)還支持?jǐn)?shù)據(jù)的大規(guī)模存儲(chǔ)和分析[1-2]。在云平臺(tái)上,農(nóng)業(yè)生產(chǎn)的歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)被集中存儲(chǔ),通過(guò)數(shù)據(jù)分析和挖掘[3],探明農(nóng)業(yè)生產(chǎn)中的規(guī)律和潛在問(wèn)題,為農(nóng)業(yè)生產(chǎn)提供了更深入的理論依據(jù)和科學(xué)指導(dǎo)。
本文融合物聯(lián)網(wǎng)、傳感器技術(shù)和自動(dòng)控制技術(shù),構(gòu)建智能農(nóng)業(yè)機(jī)械監(jiān)測(cè)與控制系統(tǒng),并結(jié)合智能控制策略,實(shí)現(xiàn)農(nóng)機(jī)作業(yè)的智能化和自動(dòng)化。研究結(jié)果可以為現(xiàn)代農(nóng)業(yè)生產(chǎn)提供更加智能、高效、精準(zhǔn)的農(nóng)業(yè)生產(chǎn)方案。
基于物聯(lián)網(wǎng)的智能農(nóng)業(yè)機(jī)械控制系統(tǒng)是一種整合了物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)和自動(dòng)控制技術(shù)的系統(tǒng),通過(guò)對(duì)農(nóng)田環(huán)境和農(nóng)機(jī)作業(yè)數(shù)據(jù)的分析與挖掘,實(shí)現(xiàn)對(duì)農(nóng)業(yè)機(jī)械的智能化監(jiān)控和自動(dòng)化控制。
在進(jìn)行系統(tǒng)設(shè)計(jì)前,需要進(jìn)行充分需求分析,以確保系統(tǒng)能夠滿足農(nóng)業(yè)生產(chǎn)實(shí)際需求和預(yù)期目標(biāo)。本文設(shè)計(jì)的智能農(nóng)機(jī)監(jiān)測(cè)與控制系統(tǒng)需實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)、遠(yuǎn)程監(jiān)測(cè)與控制、數(shù)據(jù)處理與分析及智能控制等(表1)。
表1 基于物聯(lián)網(wǎng)下智能農(nóng)業(yè)機(jī)械控制系統(tǒng)設(shè)計(jì)要求
智能農(nóng)機(jī)監(jiān)測(cè)與控制系統(tǒng)通過(guò)數(shù)據(jù)采集器作為網(wǎng)絡(luò)傳輸中心,將農(nóng)機(jī)和農(nóng)田傳感器節(jié)點(diǎn)采集到的數(shù)據(jù)傳輸至控制中心進(jìn)行處理和分析。然后,控制中心根據(jù)數(shù)據(jù)分析結(jié)果制定智能控制策略,并通過(guò)傳輸節(jié)點(diǎn)將控制指令傳送給執(zhí)行設(shè)備,實(shí)現(xiàn)對(duì)農(nóng)機(jī)和農(nóng)田環(huán)境的智能化監(jiān)控,總體設(shè)計(jì)方案如圖1所示。農(nóng)民和農(nóng)場(chǎng)管理者可以通過(guò)遠(yuǎn)程監(jiān)控和操作實(shí)時(shí)了解農(nóng)業(yè)生產(chǎn)情況和遠(yuǎn)程控制農(nóng)機(jī)。
圖1 總體設(shè)計(jì)方案
目前,我國(guó)智能農(nóng)機(jī)數(shù)據(jù)采集與控制設(shè)備處于起步階段,農(nóng)田信息采集裝置及功能較為單一,本章節(jié)設(shè)計(jì)一種支持多種接口及便捷切換聯(lián)網(wǎng)方式的通用型數(shù)據(jù)采集器,該數(shù)據(jù)采集器將配備多種接口,以適應(yīng)不同類型的農(nóng)機(jī)和農(nóng)田傳感器節(jié)點(diǎn)。例如,通過(guò)CAN總線接口、模擬信號(hào)接口、數(shù)字信號(hào)接口、UART接口等,可以連接不同類型的傳感器和設(shè)備,實(shí)現(xiàn)對(duì)農(nóng)機(jī)工作狀態(tài)和農(nóng)田環(huán)境參數(shù)的全面監(jiān)測(cè)和采集[4-6]。基本結(jié)構(gòu)如圖2所示。
圖2 數(shù)據(jù)采集器結(jié)構(gòu)示意圖
綜合考慮系統(tǒng)的性能、功耗、穩(wěn)定性、成本等方面的要求,本文選用STM32G070CBT6作為主控芯片,STM32G070CBT6采用ARM Cortex-M0+內(nèi)核,工作頻率高,具有優(yōu)秀的處理能力,能夠滿足復(fù)雜的數(shù)據(jù)處理和控制要求,同時(shí),該芯片集成了豐富的外設(shè)接口,包括模數(shù)轉(zhuǎn)換器(ADC)、通用定時(shí)器(TIM)、串行通信接口(UART、SPI、I2C)、模擬比較器等,能夠輕松連接各類傳感器和執(zhí)行設(shè)備[7],電路引腳圖如圖3所示,STM32G070CBT6是一款32位ARM Cortex-M0+內(nèi)核的微控制器,具有48引腳,用于芯片的供電,其中VDD為數(shù)字電源,VSS為地引腳,VDDA為模擬電源。電池管理模塊選用高性能的CN3052B實(shí)現(xiàn)電池充放電管理,具備高性能和多重保護(hù)功能,能夠有效管理鋰電池的充放電過(guò)程,保障電池的安全性和穩(wěn)定性。
圖3 STM32G070CBT6引腳圖
良好的EMC (Electromagnetic Compatibility,電磁兼容性)設(shè)計(jì)可以確保系統(tǒng)的正常運(yùn)行,避免電磁干擾引起的問(wèn)題,保障系統(tǒng)的穩(wěn)定性和可靠性。基于本章節(jié)設(shè)計(jì)的通用型數(shù)據(jù)采集器,其運(yùn)行應(yīng)該遵循基本的PCB(Printed Circuit Board,印刷電路板)設(shè)計(jì)準(zhǔn)則,確保PCB上的地平面(Ground Plane)是連續(xù)的,以最小化地回流電流的路徑,并減少信號(hào)線的輻射[8],此外,本章節(jié)多采用短而直的信號(hào)走線,減少信號(hào)線的長(zhǎng)度和環(huán)路,以降低輻射和接收干擾。
智能農(nóng)機(jī)在田間需要長(zhǎng)時(shí)間運(yùn)行,因此,采用低功耗設(shè)計(jì)對(duì)于以延長(zhǎng)電池壽命,減少充電頻率,降低系統(tǒng)運(yùn)行成本具有重要意義。由于智能農(nóng)機(jī)在田間運(yùn)行時(shí)相關(guān)環(huán)境參數(shù)不會(huì)發(fā)生太大變化,不需要實(shí)時(shí)采集數(shù)據(jù),因此,本章節(jié)設(shè)置“采集周期”的方法控制智能農(nóng)機(jī)各類傳感器工作時(shí)長(zhǎng),在需要采集數(shù)據(jù)并發(fā)送的時(shí)候指令自動(dòng)喚醒,其余不需要進(jìn)行數(shù)據(jù)采集的過(guò)程中自動(dòng)進(jìn)入休眠模式,工作流程如圖4所示。
圖4 低功耗工作流程圖
智能農(nóng)機(jī)系統(tǒng)中包含眾多物聯(lián)網(wǎng)設(shè)備,如攝像頭、傳感器和自控儀等,各個(gè)設(shè)備之間相互獨(dú)立。但是在農(nóng)田生產(chǎn)中,由于受到距離、傳輸環(huán)境、通信條件等制約和限制,單一的網(wǎng)絡(luò)通信方式無(wú)法很好滿足智能農(nóng)機(jī)裝備通信需求。因此,本章節(jié)使用一種多網(wǎng)融合通信方式,提供更穩(wěn)定、更快速、更可靠的通信服務(wù)。在智能農(nóng)機(jī)監(jiān)控系統(tǒng)中,多網(wǎng)融合通信可以用于數(shù)據(jù)采集器和其他設(shè)備,以確保在不同環(huán)境下都能實(shí)現(xiàn)有效的數(shù)據(jù)傳輸和通信。
3.2.1 MQTT協(xié)議
MQTT(Message Queuing Telemetry Transport)是一種輕量級(jí)、基于發(fā)布/訂閱模式的通信協(xié)議,進(jìn)而實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備之間的高效通信,特別適用于傳感器、設(shè)備和服務(wù)器之間的實(shí)時(shí)通信。本文MQTT協(xié)議報(bào)文結(jié)構(gòu)如表2所示,在智能農(nóng)機(jī)裝備監(jiān)測(cè)與控制系統(tǒng)中,可以使用這些報(bào)文來(lái)實(shí)現(xiàn)設(shè)備之間的通信和控制,使得監(jiān)測(cè)與控制過(guò)程更加高效和靈活。
表2 MQTT報(bào)文結(jié)構(gòu)
假設(shè)有一個(gè)智能農(nóng)機(jī)裝備監(jiān)測(cè)與控制系統(tǒng)中的溫度傳感器,它要將當(dāng)前的溫度數(shù)據(jù)發(fā)布到主題(Topic)“farm/sensor/temperature”。發(fā)布報(bào)文的格式如下,溫度傳感器發(fā)布了當(dāng)前的溫度數(shù)據(jù)到主題“farm/sensor/temperature”,因?yàn)镼oS等級(jí)為0,所以沒(méi)有報(bào)文標(biāo)識(shí)符和可變報(bào)頭字段,消息體中包含了具體的溫度數(shù)據(jù)(例如,25.5 ℃)。
報(bào)文類型:PUBLISH (3)
控制報(bào)文標(biāo)志:0011 (發(fā)布報(bào)文,QoS等級(jí)為0,保持連接標(biāo)志為0,重發(fā)標(biāo)志為0)
QoS等級(jí):0(因?yàn)槭荙oS 0,所以報(bào)文標(biāo)識(shí)符字段不存在)
保持連接:0
主題名稱:farm/sensor/temperature
可變報(bào)頭:無(wú)(因?yàn)槭荙oS 0,沒(méi)有報(bào)文標(biāo)識(shí)符和可變報(bào)頭字段)
消息體:當(dāng)前溫度數(shù)據(jù)(例如:25.5 ℃)
3.2.2 圖像傳輸協(xié)議設(shè)計(jì)
為了在MQTT寫一下傳輸大量圖像數(shù)據(jù),本文在MQTT協(xié)議中設(shè)計(jì)一項(xiàng)事件上報(bào)命令,在MQTT協(xié)議中定義一個(gè)專門用于事件上報(bào)的主題(Topic)—“farm/sensor/image”,用于傳輸大量圖像數(shù)據(jù)。
本文使用Python編程語(yǔ)言來(lái)實(shí)現(xiàn)MQTT客戶端,然后,使用以下代碼作為MQTT客戶端發(fā)送圖像數(shù)據(jù):
import paho.mqtt.client as mqtt
import base64
# 設(shè)置MQTT服務(wù)器地址和端口
broker_address = "mqtt_server_address"
broker_port = 1883
# 創(chuàng)建MQTT客戶端
client = mqtt.Client()
# 連接到MQTT服務(wù)器
client.connect(broker_address, broker_port)
# 讀取圖像文件
image_file = "path/to/your/image.jpg"
with open(image_file, "rb") as file:
image_data = file.read()
# 將圖像數(shù)據(jù)轉(zhuǎn)換為Base64編碼,方便在消息體中傳輸
image_base64 = base64.b64encode(image_data).decode("utf-8")
# 定義發(fā)布主題
topic = "farm/sensor/image"
# 發(fā)布圖像數(shù)據(jù)到主題
client.publish(topic, payload=image_base64, qos=0, retain=False)
# 斷開(kāi)與MQTT服務(wù)器的連接
client.disconnect()
讀取圖像文件并將圖像數(shù)據(jù)轉(zhuǎn)換為Base64編碼,然后指定了發(fā)布的主題為“farm/sensor/image”,并通過(guò)publish方法將圖像數(shù)據(jù)發(fā)布到該主題,使用QoS等級(jí)0(最多一次傳遞)來(lái)傳輸,不進(jìn)行持久化(retain=False)。最后,斷開(kāi)與MQTT服務(wù)器的連接。
智能農(nóng)機(jī)系統(tǒng)遠(yuǎn)程監(jiān)測(cè)于控制功能基于JetLink物聯(lián)網(wǎng)基礎(chǔ)平臺(tái)進(jìn)行設(shè)計(jì),實(shí)現(xiàn)各個(gè)智能農(nóng)機(jī)裝備實(shí)現(xiàn)數(shù)據(jù)可視化管理及執(zhí)行裝備的遠(yuǎn)程控制,基于JetLink物聯(lián)網(wǎng)云平臺(tái)結(jié)構(gòu)如圖5所示,主要包括信息感知層、網(wǎng)絡(luò)傳輸層和應(yīng)用服務(wù)層:
圖5 物聯(lián)網(wǎng)云平臺(tái)結(jié)構(gòu)層次圖
1)信息感知層(Perception Layer)。信息感知層是物聯(lián)網(wǎng)系統(tǒng)的底層,用于感知和采集來(lái)自各種物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù),用于監(jiān)測(cè)農(nóng)機(jī)工作狀態(tài)、土壤濕度、氣溫、空氣濕度等環(huán)境參數(shù)。傳感器將采集到的數(shù)據(jù)轉(zhuǎn)換為數(shù)字信號(hào),并將數(shù)據(jù)傳輸給上層網(wǎng)絡(luò)傳輸層,為農(nóng)業(yè)生產(chǎn)提供基礎(chǔ)數(shù)據(jù)支持。
2)網(wǎng)絡(luò)傳輸層(Network Transmission Layer)。網(wǎng)絡(luò)傳輸層采用各種通信技術(shù),例如Wi-Fi、以太網(wǎng)、蜂窩網(wǎng)絡(luò)、LoRa等,確保數(shù)據(jù)從農(nóng)機(jī)和傳感器傳輸?shù)皆破脚_(tái)的高效和可靠。在網(wǎng)絡(luò)傳輸層中,數(shù)據(jù)可能需要進(jìn)行壓縮、加密和優(yōu)化以滿足不同網(wǎng)絡(luò)環(huán)境和帶寬需求。
3)應(yīng)用服務(wù)層(Application Service Layer)。應(yīng)用服務(wù)層是物聯(lián)網(wǎng)云平臺(tái)的最上層,負(fù)責(zé)數(shù)據(jù)處理、存儲(chǔ)、分析和應(yīng)用服務(wù)的提供,實(shí)時(shí)接收來(lái)自網(wǎng)絡(luò)傳輸層的數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理、實(shí)時(shí)監(jiān)測(cè)和分析。平臺(tái)可以將數(shù)據(jù)轉(zhuǎn)化為可視化的圖表和報(bào)表,為農(nóng)機(jī)管理人員提供實(shí)時(shí)的農(nóng)田和農(nóng)機(jī)狀態(tài)。同時(shí),應(yīng)用服務(wù)層還提供遠(yuǎn)程控制功能,允許農(nóng)機(jī)管理人員通過(guò)平臺(tái)對(duì)農(nóng)機(jī)裝備進(jìn)行遠(yuǎn)程操作。
系統(tǒng)功能測(cè)試是在完成系統(tǒng)開(kāi)發(fā)和部署后的一個(gè)重要階段,用于驗(yàn)證系統(tǒng)是否按照設(shè)計(jì)要求和預(yù)期功能正常工作。在智能農(nóng)機(jī)監(jiān)測(cè)與控制系統(tǒng)中,本文對(duì)該系統(tǒng)數(shù)據(jù)查詢進(jìn)行測(cè)試,登陸系統(tǒng)后,該平臺(tái)首頁(yè)就是當(dāng)前農(nóng)田信息圖表化數(shù)據(jù)展示。以農(nóng)田環(huán)境數(shù)據(jù)可視化圖標(biāo)為例(圖6),該圖可以清晰的展示當(dāng)前農(nóng)田環(huán)境的溫度、濕度、雨量等關(guān)鍵數(shù)據(jù),農(nóng)機(jī)管理人員可以選擇查看不同時(shí)間段內(nèi)的數(shù)據(jù),比較農(nóng)田環(huán)境的變化趨勢(shì),找出規(guī)律和異常,從而更好地優(yōu)化農(nóng)機(jī)作業(yè)計(jì)劃和農(nóng)田管理策略。
圖6 農(nóng)田環(huán)境可視化圖表展示
本文基于物聯(lián)網(wǎng)技術(shù)構(gòu)建了智能農(nóng)業(yè)機(jī)械監(jiān)測(cè)與控制系統(tǒng),并在該系統(tǒng)中實(shí)現(xiàn)了數(shù)據(jù)采集、傳輸、處理和控制等功能,實(shí)現(xiàn)對(duì)農(nóng)機(jī)和農(nóng)田的實(shí)時(shí)數(shù)據(jù)采集和傳輸,主要得到以下結(jié)論:
1)設(shè)計(jì)一種通用型數(shù)據(jù)采集器,支持多種接口及便捷切換聯(lián)網(wǎng)方式,同時(shí)選擇高性能的主控芯片STM32G070CBT6,并通過(guò)電池管理模塊CN3052B實(shí)現(xiàn)了低功耗設(shè)計(jì),以提高系統(tǒng)的穩(wěn)定性和能效。
2)通過(guò)多網(wǎng)融合通信方式,保證智能農(nóng)機(jī)裝備在不同網(wǎng)絡(luò)環(huán)境下都能實(shí)現(xiàn)有效的數(shù)據(jù)傳輸和通信。在MQTT協(xié)議的設(shè)計(jì)中定義了事件上報(bào)命令,實(shí)現(xiàn)了傳輸大量圖像數(shù)據(jù)的需求,進(jìn)一步拓展了系統(tǒng)的應(yīng)用場(chǎng)景。
3)運(yùn)用JetLink物聯(lián)網(wǎng)基礎(chǔ)平臺(tái),實(shí)現(xiàn)了數(shù)據(jù)的可視化管理和執(zhí)行裝備的遠(yuǎn)程控制。農(nóng)機(jī)管理人員可以通過(guò)平臺(tái)的圖表化數(shù)據(jù)展示,實(shí)時(shí)監(jiān)測(cè)農(nóng)機(jī)工作狀態(tài)、環(huán)境參數(shù)等,為農(nóng)田作業(yè)提供了及時(shí)有效的支持。
除了當(dāng)前農(nóng)田環(huán)境的圖表化數(shù)據(jù)展示,未來(lái)的智能農(nóng)機(jī)系統(tǒng)可以擴(kuò)展到更多多樣化的數(shù)據(jù)展示方式。例如,通過(guò)增加視頻監(jiān)控功能,農(nóng)機(jī)管理人員可以遠(yuǎn)程查看農(nóng)田的實(shí)時(shí)情況;通過(guò)增加地圖展示功能,可以直觀地顯示農(nóng)機(jī)的運(yùn)行軌跡和作業(yè)范圍,更好地指導(dǎo)農(nóng)機(jī)作業(yè)。