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

相关文章

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基