水肥一体化MQTT应用案例
目前我国农业用水面临资源短缺的问题,同时农业用水浪费现象非常严重,造成我们不可能通过单纯增加新水源来缓解农业用水的紧缺状况。
通过水肥一体化物联网远程精准控制技术,可以根据检测土壤水分、作物种类的需肥规律,设置周期性水肥计划实施轮灌。实现对灌溉、施肥的定时、定量控制,充分提高水肥利用率。实现节水节肥、改善土壤环境,提高作物品质。
1. 设备协议不统一,无法有效对接
由于水肥一体项目中使用的设备多样性,设备协议也不同,传统的网关不支持多种PLC协议,无法进行统一接入。
2. 采集多种数据上报
网关要求能够连接多种传感器,采集诸如空气温湿度、光照、CO2含量、土壤温湿度、土壤PH、流量等参数信息,通过多个主题进行数据上报
3.对采集数据稳定性要求高
水肥一体化项目尤其注重数据采集的完整性,在网关断网的情况下,也需要网关能够存储数据,并在网络恢复后上传数据
4. 需要支持PLC远程上下载
由于项目分布点众多,无法做到全部现场管理,迫切需要支持PLC远程上下载功能
5. 项目参数自动化调优
项目中需要实时监控项目内数据的变化情况,对于不同的环境需要及时调整设备进行处理,采取人工处理,无法有效及时的调整参数,因此需要自动化调优参数,达到节省人力的目的
为了解决客户上述问题,我们提出使用蓝蜂MQTT 网关作为水肥一体化项目系统的核心监控设备,通过蓝蜂MQTT网关对接大棚内的设备进行数据采集,再通过MQTT协议将数据转发到云端服务器。最终实现水肥一体机项目的数据实时监测,设备远程控制等功能
具体整体架构图如下
客户需求:
需要将采集到的数据上报给阿里云服务器,用于做数据的实时监控和存储分析。
解决方案:
蓝蜂MQTT网关支持对接多种MQTT云服务器,包括阿里云,腾讯云,华为云,OneNet,以及自建MQTT服务器。
通过蓝蜂MQTT配置工具,可对MQTT网关进行连接服务器配置,可填写阿里云服务器连接参数,支持阿里云动态注册,能够实现快速连接至阿里云服务器。
客户需求:
需要根据客户要求建立与设备连接,并配置相关采集的变量数据
解决方案:
蓝蜂MQTT网关,支持多种PLC协议和仪表传感器,能够连接多种下位机设备,包括西门子,三菱,信捷,台达,Modbus,可根据需要进行下位设备连接,支持RS232,RS485,以及LAN口进行通讯。
通过蓝蜂MQTT网关配置页面中驱动管理功能,可进行驱动配置管理,支持创建/编辑,删除驱动,设置通讯口配置信息等,如图
变量管理可用来配置要上报给水务平台的具体的变量,支持新增、编辑、导入、导出、复制等功能,能够快速方便的定义好要上报数据基础信息配置。
客户需求:
对于一部分温度、光照、湿度等数据,需要定时进行上报,对于其他类型的数据,PH、CO2含量等,则需要根据变化数据来进行上报。
解决方案:
蓝蜂MQTT网关可以设置多个数据上报主题,同时对于数据上报的方式可使用三种:定时上报,条件上报,变化上报,能够按照客户的实际需求进行选择
在此项目中,可使用定时上报和变化上报的方式进行数据上报
同时,针对于上报数据的格式,可通过自定义脚本实现定制化,实现脚本上报哪些数据,上报什么样格式的数据。可通过脚本进行定制化调整,达到客户实机的数据要求
通过脚本功能,可实现上报数据的JSON格式如下:
上报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",
}
}
}
客户需求:
通过阿里云平台,使用MQTT协议对设备下发对应数值,实现对于内卷膜电机、上下通风电机等设备的远程操作,可进行开启或关闭
解决方案:
蓝蜂MQTT网关,支持通过MQTT协议进行数写变量功能,可对设备进行写值操作,通过请求主题向设备写入变量的值,通过响应主题发送写入结果,在大棚管理系统中,下发对应设备数值后,即可通过网关远程项设备写入数值,达到远程控制设备目的
应用场景举例:
比如发现大棚室内温度过高,则可通过配置写变量主题,向PLC写入参数,实现大棚的棉被电机远程开启功能
写变量请求主题示例:
/hcvhaj5yoHd/mqttx_0ea6d383/user/write/req
写变量响应主题示例:
/hcvhaj5yoHd/mqttx_0ea6d383/user/write/resp
默认请求json示例:
{
"msgId":"1",
"sn":"200122200001",
"greenhouse":"1",
"type": "default",
"data": {
"key": "SolenoidValve1",
"readKey": "SolenoidValve2",
"value":"1"
}
}
当网关的网络异常时,网关会将报文缓存到存储中,待网络恢复后补发缓存的报文,并支持数据采集时间的上报,从而保证数据的连续和完整性
蓝蜂MQTT网关支持进行PLC远程上下载操作,选择开启远程上下载功能后,可以通过网关建立与PLC的虚拟网络通道,实现对PLC程序远程上下载功能。
目前支持主流PLC设备的程序进行远程上下载和在线监测,即使设备远在国外,也可以实现远程管理。
客户需求:
项目中需要实时监控项目内数据的变化情况,对于不同的环境需要及时调整设备进行处理,采取人工处理,无法有效及时的调整参数,因此需要自动化调优参数,达到节省人力的目的
解决方案:
蓝蜂MQTT网关的支持强大的脚本功能,当某些任务或功能在常规情况下难以实现时,可编写脚本进行解决,通过脚本编写控制程序和处理逻辑,能够实现在某些特定条件下,自动调整参数的功能,实现项目参数自动调优,极大增强整个网关对于业务的支撑,让网关功能更强大
脚本案例举例:
通过发现大棚室内温度,当网关判断温度过高,网关自动向PLC写入参数,实现大棚的棉被电机远程开启功能,达到降温的目的,当棚内温度低于10摄氏度,则需要自动关闭大棚棉被电机控制开关,达到保温的目的
脚本实现方案:
创建2个脚本,脚本1设置运行环境为:条件执行,满足temp温度> 30后,执行写值1操作,脚本2设置运行环境为:条件执行,满足temp温度<10后,执行写值0操作,达到自动控制棚内温度的目的
脚本1示例代码如下:
function main(){
API.writeSignalValue("temp1",1);
}
脚本2示例代码如下:
function main(){
API.writeSignalValue("temp1",0);
}
1.统一的协议:使用蓝蜂MQTT网关可以将各个设备之间的数据统一通过MQTT协议数据上报,方便管理和维护。
2.高效的数据传输:蓝蜂MQTT网关具有较低的带宽占用和低功耗特点,使得数据传输更加高效,省流量,节约成本
3.安全可靠:蓝蜂MQTT网关具有较高的安全性,可以通过加密等方式保证数
4.实时监控:通过蓝蜂MQTT网关实时数据采集和读取,能够及时发现大棚内数值异常情况并采取应对措施。
5.远程管理:通过蓝蜂MQTT网关,能够对设备实现远程上下载和实时监测,提高管理效率。
6.性能稳定,功能强大:客户端软件操作简单容易上手,方便基层人员操作,在常规功能无法支持的情况下,可通过编写脚本程序实现比较复杂的业务逻辑和功能。
7. 提高作物品质与产量:通过蓝蜂MQTT网关进行远程监控,可有效的控制棚内湿度,温度、土壤湿度等条件,能够降低病虫害对种植户造成的损失,起到了增收的作用,减少农药用量与人工打药的成本。