IoTDB 入门教程 实战篇②——MQTT集成

文章目录

  • 一、前文
  • 二、配置参数
  • 三、开放端口
  • 四、MQTT客户端连接
  • 五、推送数据
  • 六、查询数据
  • 八、参考

一、前文

IoTDB入门教程——导读

IoTDB时序数据库内置MQTT服务器,允许远程设备将消息直接发送到IoTDB内置的MQTT服务器,并可以直接存入IoTDB时序数据库。

如果是没有远程控制功能,单纯的传感器类的设备,比如远程抄水表项目、远程抄电表项目、智慧实验室的温湿度传感器等。

直接使用IoTDB就很方便。设备通过MQTT推送数据到IoTDB内置的MQTT服务器,并直接存入IoTDB数据库中。

二、配置参数

  • 配置文件路径:apache-iotdb-1.3.2-all-bin\conf\iotdb-common.properties
  • MQTT服务默认是关闭的,修改enable_mqtt_service=true即可
  • MQTT服务默认主机是127.0.0.1,修改mqtt_host=127.0.0.1即可,修改成mqtt_host=0.0.0.0
  • MQTT服务默认端口是1883,修改mqtt_port=1883即可
  • 还有更多参数用来配置MQTT服务,如下所示
####################
### MQTT Broker Configuration
##################### whether to enable the mqtt service.
# Datatype: boolean
enable_mqtt_service=true# the mqtt service binding host.
# Datatype: String
mqtt_host=0.0.0.0# the mqtt service binding port.
# Datatype: int
mqtt_port=1883# the handler pool size for handing the mqtt messages.
# Datatype: int
# mqtt_handler_pool_size=1# the mqtt message payload formatter.
# Datatype: String
# mqtt_payload_formatter=json# max length of mqtt message in byte
# Datatype: int
# mqtt_max_message_size=1048576
  • 修改配置参数后,重启IoTDB,再netstat -nplt查看。
  • 就能看到1883端口的MQTT服务起来了。

在这里插入图片描述

三、开放端口

  • 记得在服务器安全组上要开放MQTT服务的端口

在这里插入图片描述

四、MQTT客户端连接

  • 使用MQTTX客户端连接MQTT服务器
  • MQTT服务器地址端口用户名密码,按照实际修改。
  • 值得注意的是,IoTDB时序数据库内置的MQTT服务器不支持MQTT 5.0协议,所以只能选择MQTT 3.1.1协议。
  • 最后点击连接按钮。
    在这里插入图片描述
    在这里插入图片描述

五、推送数据

  • 标题topic无限制
  • 数据格式如下
{"device":"root.test.test","timestamp":1722069846000,"measurements":["status"],"values":[66]
}

在这里插入图片描述

六、查询数据

  • 再次查询数据,看看是数据是否存入数据库
  • 查询发现,value(66)的数据已经存入数据库
IoTDB> select status from root.test.test
+-----------------------------+---------------------+
|                         Time|root.test.test.status|
+-----------------------------+---------------------+
|1970-01-21T06:21:09.846+08:00|                 55.0|
|2024-07-21T08:34:04.378+08:00|                  1.0|
|2024-07-21T08:34:21.513+08:00|                  2.0|
|2024-07-21T08:34:23.284+08:00|                  3.0|
|2024-07-21T08:34:25.675+08:00|                 11.0|
|2024-07-21T08:34:28.155+08:00|                 22.0|
|2024-07-21T08:34:30.341+08:00|                 33.0|
|2024-07-27T16:44:06.000+08:00|                 66.0|
+-----------------------------+---------------------+
Total line number = 8
It costs 0.013s

八、参考

MQTT协议| IoTDB Website

觉得好,就一键三连呗(点赞+收藏+关注)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitee的远程连接与公钥SSH的连接

目录 1. 登录注册gitee1.1 登录注册1.2 创建仓库 2. 远程连接3. 公钥连接4. 参考链接 1. 登录注册gitee 1.1 登录注册 gitee官网 进入后进行登录注册 1.2 创建仓库 2. 远程连接 在你想要上传文件的文件夹中进行git初始化(我在其他文章已经写过,链接…

新手小白,如何新建一个springboot的web项目?

第一步:打开软件,点击file,点击new 然后选择module,在右侧选择springboot 第二步:选择配置和JDK以及java版本 ①选择maven类型 ②选择JDK1.8版本 ③选择java8版本 ④选择jar包类型 http://t.csdnimg.cn/XeplRhttp:…

ICMPv6与DHCPv6之网络工程师软考中级

ICMPv6概述 ICMPv6是IPv6的基础协议之一。 在IPv6报文头部中,Next Header字段值为58则对应为ICMPv6报文。 ICMPv6报文用于通告相关信息或错误。 ICMPv6报文被广泛应用于其它协议中,包括NDP、Path MTU发现机制等 ICMPv6控制着IPv6中的地址自动配置、地址…

tarojs项目启动篇

TaroJS 是一个开放式跨端开发解决方案,使用 React 语法规范来开发多端应用(包括小程序、H5、React Native 等)。它可以帮助开发者高效地构建出在不同端上运行一致的应用。以下是启动 TaroJS 项目(本来就有的旧项目)的步…

OTA远程升级语音芯片”在线更新语音内容的方式有哪几种?分别如何使用及有什么优势?

一:【在板更新】在PCBA上预留语音芯片烧录口,通过配套下载器更新语音芯片中的语音文件。 如何使用,有什么优势? 1.研发设计阶段、调试阶段可以使用下载器更换PCBA上面的语音文件,无需重新购买IC,大大缩短项目周期。 2.产品一样,但是需要出口到不同国…

request编码方式Content-Type以及params和data传参

编码x-www-form-urlencoded Content-Type: application/x-www-form-urlencoded 是一种HTTP头部信息,用于指定请求或响应正文的内容类型。 具体来说: Content-Type 是HTTP头部字段,它指示了随后发送或接收的实体正文的媒体类型。 applicati…

Mybatis框架基础知识

Mybatis 1.1什么是Mybatis 1.MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 2.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 3.MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO…

redis的使用场景-热点数据缓存

1.什么是缓存? 把一些经常访问的数据放入缓存中,减少访问数据库的频率,减少数据库的压力,从而提高程序的性能。【内存中存储】 2.缓存的原理 通过上图可以看出程序首先访问缓存,如果缓存中有访问的数据会直接方会给客…

Avalonia中的路由事件

文章目录 一、路由事件的基本概念事件路由机制事件的生命周期二、创建路由事件定义路由事件触发路由事件处理路由事件三、使用路由事件的场景用户输入控件交互动画和样式数据绑定和验证四、路由事件的优缺点优点:缺点:五、总结在Avalonia中,路由事件是处理用户交互和控件之间…

Flutter Geocoding插件使用指南:简化地理编码与逆地理编码

Flutter Geocoding插件使用指南:简化地理编码与逆地理编码 简介 geocoding 是一个Flutter插件,提供了简便的地理编码(将地址转换为经纬度坐标)和逆地理编码(将经纬度坐标转换为地址)功能。它利用了iOS和A…

C#判断代码片段为class还是method

判断代码片段是class还是method: public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string codeSnippet1 "public class MyClass{bool bfalse;public void MyMethod(…

shell-awk文本处理工具

1、awk概述 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作 数据可以来自标准输入也可以是管道或文件 在 linux 上常用的是 gawk,awk …

NSS [NSSRound#18 Basic]easy_rw

NSS [NSSRound#18 Basic]easy_rw 题目描述:弱口令就完事了 入口:/dolphinscheduler 靶机启动需要1分钟。 这题有两种做法。CVE-2023-48796、CVE-2024-23320 先说CVE-2023-48796 Apache DolphinScheduler是一个分布式、易扩展、可视化的工作流任务调度…

MATLAB学习日志DAY22

动态字段名称 访问结构体中的数据的最常用方法是指定要引用的字段的名称。 访问结构体数据的另一种方法是使用动态字段名称。这些名称将字段表示为变量表达式,MATLAB 会在运行时计算这些表达式。此处显示的 点-括号 语法将 expression 作为动态字段名称&#xff1…

【redis】一致性hash算法和hash槽

普通hash取模 直接hash(key)%N , N为机器的数量,但不利于集器扩容或者缩容 一致性hash算法和hash槽 一致性hash算法是在redis 分片中使用,hash槽在redis cluster(集群)中使用 Redis一致性hash:Redis一致性hash是为…

前端获取当前年月日时分秒

getCurrentTime() {//改时间数据格式var currentTime new Date();const formattedDate ${currentTime.getFullYear()}-${this.padZero(currentTime.getMonth() 1)}-${this.padZero(currentTime.getDate())} ${this.padZero(currentTime.getHours())}:${this.padZero(currentTi…

Netdevops入门之Telnetlib语法案例

1、Telnetlib模块: 支持telnet/ssh远程访问的模块很多,常见的有telnetlib、ciscolib、paramiko、netmiko、pexpect,其中telnetlib和ciscolib对应telnet协议,后面3个对应SSH协议。 ①-通过ENSP环境搭建实验环境 ②-基础语法-telnetlib案例1&…

16现代循环神经网络—深度循环与双向循环

目录 1.深度循环神经网络回顾:循环神经网络总结简洁代码实现2.双向循环神经网络隐马尔可夫模型中的动态规划双向模型模型的计算代价及其应用总结代码实现1.深度循环神经网络 回顾:循环神经网络 如何将循环神经网络变深,以获得更多的非线性? 通过添加多个隐藏层的方式来实现…

解决git每次push代码到github都需要输入用户名以及密码

产生原因: 出现以上情况的主要原因在于采用的是 https 方式提交代码, 如果采用的是 ssh 方式只需要在版本库中添加用户的 sha 的key就可以实现提交时无需输入用户名和密码。 解决方法 在终端中使用以下命令删除原先已经建立的http的链接方式&#xff0c…

KCache-go本地缓存,支持本地缓存过期、缓存过期自维护机制。

GitHub - kocor01/kcache: go 本地缓存解决方案,支持本地缓存过期、缓存过期自维护机制。 最近系统并发很高,单接口10W的 QPS,对 redis 压力很大,大量的热KEY导致 redis 分片CPU资源经常告警。计划用 go 本地缓存缓解 redis 的压…