水肥一體化MQTT應(yīng)用案例
一、客戶(hù)介紹
目前我國(guó)農(nóng)業(yè)用水面臨資源短缺的問(wèn)題,同時(shí)農(nóng)業(yè)用水浪費(fèi)現(xiàn)象非常嚴(yán)重,造成我們不可能通過(guò)單純?cè)黾有滤磥?lái)緩解農(nóng)業(yè)用水的緊缺狀況。 通過(guò)水肥一體化物聯(lián)網(wǎng)遠(yuǎn)程精準(zhǔn)控制技術(shù),可以根據(jù)檢測(cè)土壤水分、作物種類(lèi)的需肥規(guī)律,設(shè)置周期性水肥計(jì)劃實(shí)施輪灌。實(shí)現(xiàn)對(duì)灌溉、施肥的定時(shí)、定量控制,充分提高水肥利用率。實(shí)現(xiàn)節(jié)水節(jié)肥、改善土壤環(huán)境,提高作物品質(zhì)。
二、客戶(hù)所面臨的問(wèn)題
1. 設(shè)備協(xié)議不統(tǒng)一,無(wú)法有效對(duì)接
由于水肥一體項(xiàng)目中使用的設(shè)備多樣性,設(shè)備協(xié)議也不同,傳統(tǒng)的網(wǎng)關(guān)不支持多種PLC協(xié)議,無(wú)法進(jìn)行統(tǒng)一接入。
2. 采集多種數(shù)據(jù)上報(bào)
網(wǎng)關(guān)要求能夠連接多種傳感器,采集諸如空氣溫濕度、光照、CO2含量、土壤溫濕度、土壤PH、流量等參數(shù)信息,通過(guò)多個(gè)主題進(jìn)行數(shù)據(jù)上報(bào)
3.對(duì)采集數(shù)據(jù)穩(wěn)定性要求高
水肥一體化項(xiàng)目尤其注重?cái)?shù)據(jù)采集的完整性,在網(wǎng)關(guān)斷網(wǎng)的情況下,也需要網(wǎng)關(guān)能夠存儲(chǔ)數(shù)據(jù),并在網(wǎng)絡(luò)恢復(fù)后上傳數(shù)據(jù)
4. 需要支持PLC遠(yuǎn)程上下載
由于項(xiàng)目分布點(diǎn)眾多,無(wú)法做到全部現(xiàn)場(chǎng)管理,迫切需要支持PLC遠(yuǎn)程上下載功能
5. 項(xiàng)目參數(shù)自動(dòng)化調(diào)優(yōu)
項(xiàng)目中需要實(shí)時(shí)監(jiān)控項(xiàng)目?jī)?nèi)數(shù)據(jù)的變化情況,對(duì)于不同的環(huán)境需要及時(shí)調(diào)整設(shè)備進(jìn)行處理,采取人工處理,無(wú)法有效及時(shí)的調(diào)整參數(shù),因此需要自動(dòng)化調(diào)優(yōu)參數(shù),達(dá)到節(jié)省人力的目的
三、方案總體設(shè)計(jì)
為了解決客戶(hù)上述問(wèn)題,我們提出使用藍(lán)蜂MQTT 網(wǎng)關(guān)作為水肥一體化項(xiàng)目系統(tǒng)的核心監(jiān)控設(shè)備,通過(guò)藍(lán)蜂MQTT網(wǎng)關(guān)對(duì)接大棚內(nèi)的設(shè)備進(jìn)行數(shù)據(jù)采集,再通過(guò)MQTT協(xié)議將數(shù)據(jù)轉(zhuǎn)發(fā)到云端服務(wù)器。最終實(shí)現(xiàn)水肥一體機(jī)項(xiàng)目的數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè),設(shè)備遠(yuǎn)程控制等功能
具體整體架構(gòu)圖如下
四、詳細(xì)方案設(shè)計(jì)
4.1 功能設(shè)計(jì)
4.2.1連接阿里云MQTT服務(wù)器
客戶(hù)需求:
需要將采集到的數(shù)據(jù)上報(bào)給阿里云服務(wù)器,用于做數(shù)據(jù)的實(shí)時(shí)監(jiān)控和存儲(chǔ)分析。
解決方案:
藍(lán)蜂MQTT網(wǎng)關(guān)支持對(duì)接多種MQTT云服務(wù)器,包括阿里云,騰訊云,華為云,OneNet,以及自建MQTT服務(wù)器。
通過(guò)藍(lán)蜂MQTT配置工具,可對(duì)MQTT網(wǎng)關(guān)進(jìn)行連接服務(wù)器配置,可填寫(xiě)阿里云服務(wù)器連接參數(shù),支持阿里云動(dòng)態(tài)注冊(cè),能夠?qū)崿F(xiàn)快速連接至阿里云服務(wù)器。
4..2對(duì)接大棚內(nèi)設(shè)備
客戶(hù)需求:
需要根據(jù)客戶(hù)要求建立與設(shè)備連接,并配置相關(guān)采集的變量數(shù)據(jù)
解決方案:
藍(lán)蜂MQTT網(wǎng)關(guān),支持多種PLC協(xié)議和儀表傳感器,能夠連接多種下位機(jī)設(shè)備,包括西門(mén)子,三菱,信捷,臺(tái)達(dá),Modbus,可根據(jù)需要進(jìn)行下位設(shè)備連接,支持RS232,RS485,以及LAN口進(jìn)行通訊。
通過(guò)藍(lán)蜂MQTT網(wǎng)關(guān)配置頁(yè)面中驅(qū)動(dòng)管理功能,可進(jìn)行驅(qū)動(dòng)配置管理,支持創(chuàng)建/編輯,刪除驅(qū)動(dòng),設(shè)置通訊口配置信息等,如圖
變量管理可用來(lái)配置要上報(bào)給水務(wù)平臺(tái)的具體的變量,支持新增、編輯、導(dǎo)入、導(dǎo)出、復(fù)制等功能,能夠快速方便的定義好要上報(bào)數(shù)據(jù)基礎(chǔ)信息配置。
4.2.3上報(bào)數(shù)據(jù)
客戶(hù)需求:
對(duì)于一部分溫度、光照、濕度等數(shù)據(jù),需要定時(shí)進(jìn)行上報(bào),對(duì)于其他類(lèi)型的數(shù)據(jù),PH、CO2含量等,則需要根據(jù)變化數(shù)據(jù)來(lái)進(jìn)行上報(bào)。
解決方案:
藍(lán)蜂MQTT網(wǎng)關(guān)可以設(shè)置多個(gè)數(shù)據(jù)上報(bào)主題,同時(shí)對(duì)于數(shù)據(jù)上報(bào)的方式可使用三種:定時(shí)上報(bào),條件上報(bào),變化上報(bào),能夠按照客戶(hù)的實(shí)際需求進(jìn)行選擇
在此項(xiàng)目中,可使用定時(shí)上報(bào)和變化上報(bào)的方式進(jìn)行數(shù)據(jù)上報(bào)
同時(shí),針對(duì)于上報(bào)數(shù)據(jù)的格式,可通過(guò)自定義腳本實(shí)現(xiàn)定制化,實(shí)現(xiàn)腳本上報(bào)哪些數(shù)據(jù),上報(bào)什么樣格式的數(shù)據(jù)??赏ㄟ^(guò)腳本進(jìn)行定制化調(diào)整,達(dá)到客戶(hù)實(shí)機(jī)的數(shù)據(jù)要求
通過(guò)腳本功能,可實(shí)現(xiàn)上報(bào)數(shù)據(jù)的JSON格式如下:
上報(bào)json示例:
{
"code": "200",
"data": {
"msgId": "976",
"sn": "200121011045",
"greenhouse":"1",
"time": 1655185922470,
"value": {
"AirHumidity": "0",
"AirTemperature": "0",
"CO2": "0",
"HighVentilateMotor": "0",
"Illuminance": "0",
"InsulationQuilt": "0",
"InvoluteMembrane": "0",
"LowVentilateMotor": "0",
"SoilEC": "0",
"SoilHumidity": "0",
"SoilPH": "0",
"SoilTemperature": "0",
"SolenoidValve1": "0",
"SolenoidValve2": "0",
"WaterMeter": "0",
"WaterPump": "0",
"LiquidLevelFloat": "0",
"Reserved1": "0",
"Reserved2": "0",
"Reserved3": "0",
}
}
}
4.2.4遠(yuǎn)程控制設(shè)備
客戶(hù)需求:
通過(guò)阿里云平臺(tái),使用MQTT協(xié)議對(duì)設(shè)備下發(fā)對(duì)應(yīng)數(shù)值,實(shí)現(xiàn)對(duì)于內(nèi)卷膜電機(jī)、上下通風(fēng)電機(jī)等設(shè)備的遠(yuǎn)程操作,可進(jìn)行開(kāi)啟或關(guān)閉
藍(lán)蜂MQTT網(wǎng)關(guān),支持通過(guò)MQTT協(xié)議進(jìn)行數(shù)寫(xiě)變量功能,可對(duì)設(shè)備進(jìn)行寫(xiě)值操作,通過(guò)請(qǐng)求主題向設(shè)備寫(xiě)入變量的值,通過(guò)響應(yīng)主題發(fā)送寫(xiě)入結(jié)果,在大棚管理系統(tǒng)中,下發(fā)對(duì)應(yīng)設(shè)備數(shù)值后,即可通過(guò)網(wǎng)關(guān)遠(yuǎn)程項(xiàng)設(shè)備寫(xiě)入數(shù)值,達(dá)到遠(yuǎn)程控制設(shè)備目的
應(yīng)用場(chǎng)景舉例:
比如發(fā)現(xiàn)大棚室內(nèi)溫度過(guò)高,則可通過(guò)配置寫(xiě)變量主題,向PLC寫(xiě)入?yún)?shù),實(shí)現(xiàn)大棚的棉被電機(jī)遠(yuǎn)程開(kāi)啟功能
寫(xiě)變量請(qǐng)求主題示例:
/hcvhaj5yoHd/mqttx_0ea6d383/user/write/req
寫(xiě)變量響應(yīng)主題示例:
/hcvhaj5yoHd/mqttx_0ea6d383/user/write/resp
默認(rèn)請(qǐng)求json示例:
{
"msgId":"1",
"sn":"200122200001",
"greenhouse":"1",
"type": "default",
"data": {
"key": "SolenoidValve1",
"readKey": "SolenoidValve2",
"value":"1"
}
}
4.2.5斷點(diǎn)續(xù)傳
當(dāng)網(wǎng)關(guān)的網(wǎng)絡(luò)異常時(shí),網(wǎng)關(guān)會(huì)將報(bào)文緩存到存儲(chǔ)中,待網(wǎng)絡(luò)恢復(fù)后補(bǔ)發(fā)緩存的報(bào)文,并支持?jǐn)?shù)據(jù)采集時(shí)間的上報(bào),從而保證數(shù)據(jù)的連續(xù)和完整性
4.2.6PLC遠(yuǎn)程上下載
藍(lán)蜂MQTT網(wǎng)關(guān)支持進(jìn)行PLC遠(yuǎn)程上下載操作,選擇開(kāi)啟遠(yuǎn)程上下載功能后,可以通過(guò)網(wǎng)關(guān)建立與PLC的虛擬網(wǎng)絡(luò)通道,實(shí)現(xiàn)對(duì)PLC程序遠(yuǎn)程上下載功能。
目前支持主流PLC設(shè)備的程序進(jìn)行遠(yuǎn)程上下載和在線(xiàn)監(jiān)測(cè),即使設(shè)備遠(yuǎn)在國(guó)外,也可以實(shí)現(xiàn)遠(yuǎn)程管理。
4.2.6 通過(guò)腳本功實(shí)現(xiàn)參數(shù)自動(dòng)調(diào)優(yōu)
客戶(hù)需求:
項(xiàng)目中需要實(shí)時(shí)監(jiān)控項(xiàng)目?jī)?nèi)數(shù)據(jù)的變化情況,對(duì)于不同的環(huán)境需要及時(shí)調(diào)整設(shè)備進(jìn)行處理,采取人工處理,無(wú)法有效及時(shí)的調(diào)整參數(shù),因此需要自動(dòng)化調(diào)優(yōu)參數(shù),達(dá)到節(jié)省人力的目的
解決方案:
藍(lán)蜂MQTT網(wǎng)關(guān)的支持強(qiáng)大的腳本功能,當(dāng)某些任務(wù)或功能在常規(guī)情況下難以實(shí)現(xiàn)時(shí),可編寫(xiě)腳本進(jìn)行解決,通過(guò)腳本編寫(xiě)控制程序和處理邏輯,能夠?qū)崿F(xiàn)在某些特定條件下,自動(dòng)調(diào)整參數(shù)的功能,實(shí)現(xiàn)項(xiàng)目參數(shù)自動(dòng)調(diào)優(yōu),極大增強(qiáng)整個(gè)網(wǎng)關(guān)對(duì)于業(yè)務(wù)的支撐,讓網(wǎng)關(guān)功能更強(qiáng)大
腳本案例舉例:
通過(guò)發(fā)現(xiàn)大棚室內(nèi)溫度,當(dāng)網(wǎng)關(guān)判斷溫度過(guò)高,網(wǎng)關(guān)自動(dòng)向PLC寫(xiě)入?yún)?shù),實(shí)現(xiàn)大棚的棉被電機(jī)遠(yuǎn)程開(kāi)啟功能,達(dá)到降溫的目的,當(dāng)棚內(nèi)溫度低于10攝氏度,則需要自動(dòng)關(guān)閉大棚棉被電機(jī)控制開(kāi)關(guān),達(dá)到保溫的目的
腳本實(shí)現(xiàn)方案:
創(chuàng)建2個(gè)腳本,腳本1設(shè)置運(yùn)行環(huán)境為:條件執(zhí)行,滿(mǎn)足temp溫度> 30后,執(zhí)行寫(xiě)值1操作,腳本2設(shè)置運(yùn)行環(huán)境為:條件執(zhí)行,滿(mǎn)足temp溫度<10后,執(zhí)行寫(xiě)值0操作,達(dá)到自動(dòng)控制棚內(nèi)溫度的目的
腳本1示例代碼如下:
function main(){
API.writeSignalValue("temp1",1);
}
腳本2示例代碼如下:
function main(){
API.writeSignalValue("temp1",0);
}
五、方案的優(yōu)勢(shì)
__1.統(tǒng)一的協(xié)議:__使用藍(lán)蜂MQTT網(wǎng)關(guān)可以將各個(gè)設(shè)備之間的數(shù)據(jù)統(tǒng)一通過(guò)MQTT協(xié)議數(shù)據(jù)上報(bào),方便管理和維護(hù)。
__2.高效的數(shù)據(jù)傳輸:__藍(lán)蜂MQTT網(wǎng)關(guān)具有較低的帶寬占用和低功耗特點(diǎn),使得數(shù)據(jù)傳輸更加高效,省流量,節(jié)約成本
__3.安全可靠:__藍(lán)蜂MQTT網(wǎng)關(guān)具有較高的安全性,可以通過(guò)加密等方式保證數(shù)
__4.實(shí)時(shí)監(jiān)控:__通過(guò)藍(lán)蜂MQTT網(wǎng)關(guān)實(shí)時(shí)數(shù)據(jù)采集和讀取,能夠及時(shí)發(fā)現(xiàn)大棚內(nèi)數(shù)值異常情況并采取應(yīng)對(duì)措施。
__5.遠(yuǎn)程管理:__通過(guò)藍(lán)蜂MQTT網(wǎng)關(guān),能夠?qū)υO(shè)備實(shí)現(xiàn)遠(yuǎn)程上下載和實(shí)時(shí)監(jiān)測(cè),提高管理效率。
__6.性能穩(wěn)定,功能強(qiáng)大:__客戶(hù)端軟件操作簡(jiǎn)單容易上手,方便基層人員操作,在常規(guī)功能無(wú)法支持的情況下,可通過(guò)編寫(xiě)腳本程序?qū)崿F(xiàn)比較復(fù)雜的業(yè)務(wù)邏輯和功能。
__7.提高作物品質(zhì)與產(chǎn)量:__通過(guò)藍(lán)蜂MQTT網(wǎng)關(guān)進(jìn)行遠(yuǎn)程監(jiān)控,可有效的控制棚內(nèi)濕度,溫度、土壤濕度等條件,能夠降低病蟲(chóng)害對(duì)種植戶(hù)造成的損失,起到了增收的作用,減少農(nóng)藥用量與人工打藥的成本。
審核編輯 黃宇
-
plc
+關(guān)注
關(guān)注
5012文章
13311瀏覽量
463756 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44704瀏覽量
374019 -
MQTT
+關(guān)注
關(guān)注
5文章
651瀏覽量
22536
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論