4G 模块DTU网关+传感器接入OneNET平台 (MQTT新版)智慧农业解决方案

本文主要是介绍4G 模块DTU网关+传感器接入OneNET平台 (MQTT新版)智慧农业解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4G 模块DTU网关+传感器上传到 OneNET平台 (MQTT新版)智慧农业解决方案

在上一篇《4G模块 DTU网关 ZL-LTE系列 OneNET平台连接教程(MQTT新版)》的基础上,今天介绍DEVELOPLINK设备 DTU ZL-LTE-300 如何通过MQTTS,MODBUS网关功能实现多个传感器接入OneNET平台的智慧农业解决方案。之后更新阿里云、腾讯云、百度云的接入教程。

本文使用到的设备为:DTU ZL-LTE-300、温湿度光照传感器、二氧化碳传感器、氨气传感器

————————————————————————————————————————
对物联网技术感兴趣请加入我们交流群,欢迎各种技术交流,QQ群: 830407941
对我们产品感兴趣请查看淘宝,免费定制项目
DEVELOPLINK ____DTU
DEVELOPLINK ____各类传感器
————————————————————————————————————————

一、 设备准备

1.硬件准备

DTU ZL-LTE-300、温湿度光照三合一传感器、二氧化碳传感器、氨气传感器
在这里插入图片描述
在这里插入图片描述

2.软件准备

DevelopLink_DTU1.0.9 上位机
在这里插入图片描述

Developlink Web配置端
在这里插入图片描述
ZLIOT_Sensor 传感器上位机
在这里插入图片描述

二、 Modbus网关

在上次的教程中我们已经成功使用MQTTS功能接入OneNET平台,并成果测试了收发数据。下面我们将使用Modbus网关功能,使传感器数据传送到OneNET平台,并简单制作显示界面。

1.调试传感器

1.1 需要重点注意的是串口、波特率、传感器地址(ID)

在这里插入图片描述
这里我们将温湿度光照三合一传感器ID设为1,二氧化碳传感器ID设为2,氨气传感器ID设为3。波特率统一设为9600。

2 DevelopLink_DTU上位机配置MODBUS

在这里插入图片描述

以温湿度光照三合一传感器为例,上文其ID设为1,因此这里DTU参数对应也设置为1,监测参数的寄存器地址需要看对应的传感器手册。这里我们可以看到,温度寄存器地址为8,湿度9,光照10

温度数据占一个寄存器,湿度占一个,光照占两个寄存器(设计上可能考虑了光照0-20W Lux需占两位)所以需要读取的寄存器总长度为4。相应的温湿度数据类型选Short,光照选Long。

(支持多种寄存器格式,包含Short,Long,Float及字节顺序,和Modbus Slave软件一致)
在这里插入图片描述
以此类推设置CO2,NH3传感器Modbus参数,如图
在这里插入图片描述
设置串口参数
在这里插入图片描述

写入配置,DTU会自动重启,Modbus配置完成。
在这里插入图片描述

3 转换数据格式

DTU默认转换后的数据为Json,需要转换成的OneJson格式才能被平台识别。接下来在远程脚本里面通过Modbus钩子函数来构造我们自定义的数据包。

新建脚本,输入以下代码:

require "log"
require "default"
require "modbus"-- 这一句非常重要
module("remotedbg", package.seeall)-- 下行数据的钩子
local function msgSubHook(data, uid)log.info("modbus sub1",  data.temp)-- 下行数据我们把“temp” 改变一下if data.temp then  data.temp = data.temp / 10log.info("modbus sub2", data.temp)return dataelsereturn nilend
end-- 上行消息的钩子,在这里构造onejson
-- cid: 网络通道
-- msg: 数据内容,table
local function msgPubHook(msg)-- 包装上行数据local buff = {id= 123, dp= {}}for key, value in pairs(msg) doif key == "temp" or key == "humi" thenbuff.dp[key] = {{v=value * 0.1}}elsebuff.dp[key] = {{v=value}}endend-- 转json上传buff = json.encode(buff)log.info("modbus pub msg", buff)return buff
end-- 设置钩子
modbus.setPubHook(msgPubHook)
modbus.setSubHook(msgSubHook)

在Web配置端上传脚本

在这里插入图片描述

三、 数据查看及简单可视化界面

1.数据查看

在这里插入图片描述

温度数据详情
在这里插入图片描述

2. 简单可视化界面编辑

点击应用管理,添加应用
在这里插入图片描述

选择设计组件,对应设备及数据流
在这里插入图片描述
至此:传感器 对接到onenet平台成功,搭建简易可视化界面

&后面还做了个有收费版的大屏显示界面(果然是人名币的魅力,功能丰富了很多,也美观了)
在这里插入图片描述
————————————————————————————————————————
对物联网技术感兴趣请加入我们交流群,欢迎各种技术交流,
QQ群: 830407941
对我们产品感兴趣请查看淘宝,免费定制项目:
DEVELOPLINK
Air724 DTU

这篇关于4G 模块DTU网关+传感器接入OneNET平台 (MQTT新版)智慧农业解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777516

相关文章

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端