arduino+esp8266+onenet+mqtt_4G模块(EC20)连接MQTT服务器(EMQ X)

2023-10-27

b52cf5bab7b2393450484864e8881a17.png

上面的示意图也是这篇推文的主题:使用三个客户端EC20、ESP8266、MQTTX通过MQTT协议连接上我们搭建的EMQ X服务器最后完成消息的发布和订阅。

 概述

其中ESP826大家都有认识,那么相对陌生的EC20是一个4G模块,MQTTX是MQTT客户端工具,EMQ X是MQTT服务器,我们通过MQTT协议将这些进行链接。

在这个链接过程中最重要的是MQTT协议,那么MQTT协议让客户端和服务器实现最简单的消息发布与订阅至少要使用三种报文:

①CONNECT – 连接服务端 (客户端和服务端连接的报文)

②PUBLISH – 发布消息 (从客户端向服务端或者服务端向客户端传输一个应用消息。)

③ SUBSCRIBE - 订阅主题  (客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅。

 个人理解

上面的说辞专业术语居多,谈我个人的理解:EMQ X是一家杂志社(服务器),接受客户端得投稿和发布期刊。EC20、ESP8266、MQTTX是三个喜欢阅读和编写报纸的群众(客户端),每个群众编辑的报纸都有唯一期刊名(主题)。如此一来EMQ X(杂志社)就拥有3份不同期刊名(主题)的杂志,它们3个可以任意订阅杂志社的这3份期刊(订阅主题),比如EC20可以通过MQTT协议订阅ESP8266期刊名(主

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arduino+esp8266+onenet+mqtt_4G模块(EC20)连接MQTT服务器(EMQ X) 的相关文章

  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • NSArrayController 无需将大型数据集加载到数组中

    我想使用 NSArrayController 向 NSTableView 提供数据 我面临的问题是我不想将所有数据预先加载到数组中 然后使用数组控制器setContent 方法 我的数据模型是一个管理数百万条记录的大型现有代码库 它包含有效
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我
  • 如何在 OSX 上安装 LaTeX .sty 文件?

    我设置了一个 LaTeX 项目 tex documents some file tex support todonotes sty where some file tex uses todonotes usepackage colorinl
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前
  • 禁用允许文本选择的

    残疾人可以吗
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • MATLAB---同态滤波

    同态滤波 clc clear close all 清理命令区 清理工作区 关闭显示图形 warning off 消除警告 feature jit off 加速代码运行 tic filename pathname uigetfile bmp
  • 如何确定自己的科研课题?

    许多研究生刚入学的时候对科研都是一头雾水 不知道文献如何检索 不知道科研该如何发展 总有一段很长的时间在惆怅着我究竟该做些什么 而在写科研论文 确定科研选题就是第一步 那么 到底如何才能确定自己的科研课题呢 本文主要为大家分享以下三点 选题
  • 手把手_下载与安装Ubuntu_18.04_Linux系统

    1 下载Ubuntu镜像文件 1 找到官网 Ubuntu官网 注 不想了解官网的 请直接跳到清华镜像网 2 找到下载入口 如果您要下载最新版本的系统 就直接点击download 1 但是本文以18 04版本为例 故此 点击2处 3 找到国内
  • Python(7)

    Python 7 目录 Python 7 函数 全局变量与局部变量 文件 错误与异常 finally 函数 python的函数使用def定义 def add a b return a b def multiply a b return a
  • ESP8266连接 TCP

    AT GMR查看固件版本 v1 0以上固件命令如下 恢复到初始状态 AT RESTORE 设置WiFi应用模式为Station和Server共存模式 AT CWMODE 3 连接路由器 SSID为路由器用户名 Password为密码 AT
  • cocosCreator 物理关节组件

    cocosCreator 物理关节组件 重点 距离关节 旋转关节 绳子关节 轮子关节 焊接关节 棱柱关节 马达关节 重点 开启物理系统 物理系统默认是关闭的 如果需要使用物理系统 那么首先需要做的事情就是开启物理系统 否则你在编辑器里做的所
  • 如何在WPS、Word里插入高亮代码块

    需要使用Notepad step1 我们首先需要在Notepad 里安装好NppExport插件 步骤如下 第1步 打开 插件管理 第2步 搜索并安装 NppExport 插件 安装后 在已安装界面如下图所示 step2 然后将代码复制在N
  • ws协议与http协议的异同_websocket和http的区别

    websocket和http的区别 1 WebSocket是双向通信协议 模拟Socket协议 可以双向发送或接受信息 而HTTP是单向的 2 WebSocket是需要浏览器和服务器握手进行建立连接的 而http是浏览器发起向服务器的连接
  • 企业运维经典面试题汇总(2)

    1 写一个脚本查找最后创建时间是三天前 后缀是 log的文件并删除 find ctime 3 name log rm rf 2 统计ip访问情况 要求分析nginx访问日志 找出访问页面数量在前十位的ip cat access log aw
  • IDEA-Docker配置CA证书和远程访问

    前言 为了优化idea docker部署 防止自己服务器端口2375被黑 这里简单介绍一下idea docker的ca证书配置 1 新建一个脚本docker ca sh 将下面的脚本复制进去 注意修改一下docker主机ip 创建 Dock
  • spring boot org.springframework.context.annotation.ConflictingBeanDefinitionException

    org springframework context annotation ConflictingBeanDefinitionException 分析接解决方法 错误信息 分析接解决方法 annotation ConflictingBea
  • [从零开始学DeepFaceLab-10]: 使用-命令行八大操作步骤-第6步:模型的选择与训练 - 模型训练

    目录 总体流程 步骤6 模型的选择与训练 模型训练命令 6 1 命令 6 train Quick96 bat 适用CPU only情形以及快速学习 必需之一
  • redis mysql 案例_redis 使用案例

    1 使用redis消息列队发布信息 在一些用户创造用户的应用中 如SNS 微博 可能出现1秒有上千万个用户同时发布消息的情况 此时如果使用mysql可能出现 too many connections 错误 当然 把mysql的max con
  • idea java 远程调试_使用IDEA进行JAVA代码的远程Debug

    在本地开发过程中 对代码进行Debug能逐行对代码逻辑进行调试 方便准备的排查问题 但是当代码发布到线上时 如果运行过程中出现异常 仅仅依靠日志来排查问题的话 会比较耗时 而且经常由于日志不全等原因而不能快速准确定位问题 而通过对JAVA代
  • 电机控制基础——定时器基础知识与PWM输出原理

    单片机开发中 电机的控制与定时器有着密不可分的关系 无论是直流电机 步进电机还是舵机 都会用到定时器 比如最常用的有刷直流电机 会使用定时器产生PWM波来调节转速 通过定时器的正交编码器接口来测量转速等 本篇先介绍定时器的基础知识 然后对照
  • importing maven projects 9% 卡住

    导入一个maven工程后 一直显示 importing maven projects 9 解决办法 找到eclipse安装目录下的eclipse ini 在最后加入 vm JAVA HOME bin javaw exe 再次重启eclips
  • flutter 环形进度条组件CircularProgressIndicator、线性进度条组件LinearProgressIndicator

    环形进度条组件 不能放在ListView中 若不设置value 即无value参数 会一直加载动画 LinearProgressIndicator valueColor AlwaysStoppedAnimation Colors x 设置进
  • 如何进入mysql命令界面

    1 找到安装mysql安装路径 复制bin目录地址 eg D installmysqlin 2 进入cmd命令窗口 3 因为安装到D盘 进入D盘的盘符 输入D 直接输入cdD installmysqlin是无效的 4 进入bin目录 cdD
  • video.js 播放 rtsp、hls

    什么是HLS RTSP RTMP HLS HTTP Live Streaming 苹果公司提出的流媒体协议 直接把流媒体切片成一段段 信息保存到m3u列表文件中 可以将不同速率的版本切成相应的片 播放器可以直接使用http协议请求流数据 可
  • arduino+esp8266+onenet+mqtt_4G模块(EC20)连接MQTT服务器(EMQ X)

    上面的示意图也是这篇推文的主题 使用三个客户端EC20 ESP8266 MQTTX通过MQTT协议连接上我们搭建的EMQ X服务器最后完成消息的发布和订阅 概述 其中ESP826大家都有认识 那么相对陌生的EC20是一个4G模块 MQTTX