具体如何在阿里云创建一个 MQTT 服务器我就不写出来了,可以去百度一下(主要是我忘了,不好演示)。
有关 MQTT 报文的一些标识在我前面的一篇文章中讲过,感兴趣的可以去看看(有关代码部分讲解的内容也在那里,这里就不细讲了,主要讲如何连接的)
插一嘴,如果有同学找不到可以创建阿里云 MQTT 服务器的地方,检查一下是不是地区没选到华东2(上海)

一、获取阿里云 MQTT 服务器连接参数

下面的连接方法是参照阿里云的手册进行连接的,有兴趣的同学可以同时看看。

1、创建好一个产品后在创建两个设备(后面演示要用到)


2、先随便进入一个设备中,这里选择的是 test 设备。点击查看DeviceSecret。

3、将三元组的内容分别复制到 mqtt_config.h 文件的这个位置下。

4、点击查看 MQTT 连接参数,只需复制 mqttHostUrl 即可


5、密码使用阿里云提供的密码生成工具。下载解压完成后,点击 sign.html,填写对应设备信息,点击生成即可。将生成的密码复制到 Password 中。

至此,该示例代码就可以连接上阿里云 MQTT 服务器了。

二、认识阿里云 MQTT 服务器上的主题

有关阿里云的主题介绍在阿里云官方手册中有介绍,感兴趣的同学可以去了解一下。

这些主题可以在产品的 Topic 类列表中查看。

三、如何在阿里云 MQTT 服务器上显示数据

1、点击产品的功能定义。点击编辑草稿。

2、点击添加自定义功能。这里是打算显示温度的一个变化情况。添加完成之后记得点击发布上线!



3、通过查阅官方手册,得知需要向 Topic:/sys/${productKey}/${deviceName}/thing/event/property/post 发送 JSON 格式的数据。该手册中有说明 JSON 格式数据有哪些内容可以添加。还举出了一个例子,其中最重要的就是 params 参数了,该字段中的子参数名字就是前面填写的标识符 temp


4、在示例代码中,向服务器发送了一个温度值为 6 的消息。

5、运行代码后,在 test 设备的物模型数据中即可观察到温度的值。


四、如何做到两个设备之间的通信

在通常情况下,我们比较常用的需求还是像其他 MQTT 服务器那样一个设备发布了一个携带信息的主题 A 后,订阅该主题 A 的另一个设备就能收到该消息,但在阿里云 MQTT 服务器中却不能这样子,往往是发送给主题 A 的消息却没有发送给订阅了 A 的设备
如果要实现此功能,就要借助阿里云的另一个功能:云产品流转。

1、要实现该功能,首先要准备两个设备,前面已经创建了一个 test 设备,现在再创建一个 mqtt 设备。并自定义两个主题。


2、在规则引擎中点击云产品流转,切换到旧版。

3、点击创建规则。

4、进入到刚创建好的规则下。点击编写 SQL。



该 SQL 语句的作用是:监控产品 阿里mqtt 中名字为 mqtt 这台设备的发布的主题 /h18lpJMiSVO/mqtt/user/123然后把里面发布的消息全部提取出来
① *代表提取所有消息
② 选择自定义的主题
③ 选择 阿里mqtt 产品中设备
④ 选择名字为 mqtt 的这台设备
⑤ 选择这台设备发布的主题(/h18lpJMiSVO/mqtt/user/123)

大白话:
监控名字为 mqtt 的设备发布的主题 /h18lpJMiSVO/mqtt/user/123
假设设备发布的消息是:{"data": 123}
执行上面的配置就把这个 {"data": 123} 提取了出来(注:发送的格式一定要是 JSON 格式的数据,并且格式要正确)

5、现在将消息提取出来了,还需要让服务器再转发到另一个设备:test 中。在转发数据中点击添加操作。



就是把上面配置 SQL 以后提取的数据 {"data": 123} 转发到/h18lpJMiSVO/test/user/abc 这个主题上
① 选择自定义
② 选择自己创建的一个产品
③ 选择名字为 test 的这台设备
④ 选择要转发到这台设备订阅的某个主题

6、启动规则

7、使用 MQTT.fx 登录 mqtt 设备(MQTT.fx连接文档)

这里我用的是阿里云比较新版本的计算密码的网页,对于连接 MQTT.fx 来说会更快一些。


8、在 MQTT.fx 上向 /h18lpJMiSVO/mqtt/user/123 主题发送数据 {"data":123},在板子上订阅 /h18lpJMiSVO/test/user/abc 主题。



9、关于这个数据转发的内容还有其他好玩的,感兴趣的可以去观摩一下这位大佬写的文章,数据转发部分在文章的后半部分。

【STM32 x ESP8266】连接阿里云 MQTT 服务器(报文连接)相关推荐

  1. 单片机AT指令操作GA6-B短信模块连接阿里云MQTT服务器(双向通信)

    0. 前言 网上这种东西不太多,我也是看了不少资料弄出来了,觉得应该写点东西出来. 我用的板子不是arduino,用的是stm32,开发工具是Arduino IDE,因为Arduino IDE集成了较 ...

  2. 【单片机笔记】STM32+ESP8266通过AT指令WIFI连接阿里云MQTT服务器

    上一篇使用USB转串口的方式通过ESP8266wifi模块的方式成功连接上了阿里云,现在就要通过单片机来替换电脑上位机了,这样单片机自动的去调用并发送串口数据更加方便,也更加符合一个产品的开发.板载的 ...

  3. 移远BC35-G配置网络连接阿里云MQTT发送数据

    移远BC35/BC26/BC28配置网络连接阿里云MQTT发送数据(一)精.防踩坑 硬件准备 接线部分 软件准备 烧录固件 QFlash 4.17烧录 阿里云准备 测试准备(AT指令) 连接阿里云 第 ...

  4. ESP8266连接阿里云--MQTT协议

    ESP8266连接阿里云–MQTT协议   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscr ...

  5. 阿里云MQTT服务器搭建与测试(全图文,非常详细)

    阿里云MQTT服务器搭建与测试 一. MQTT概念 二. 阿里云MQTT服务器搭建 1 阿里云平台注册及认证 2 添加平台 2 创建产品与设备 获取MQTT连接相关信息 三.MQTT.fx测试 1 M ...

  6. SecureCRT连接阿里云ECS服务器,经常掉线的解决方案

    SecureCRT连接阿里云ECS服务器,经常掉线的解决方案 参考文章: (1)SecureCRT连接阿里云ECS服务器,经常掉线的解决方案 (2)https://www.cnblogs.com/db ...

  7. 【阿里云ECS使用FTP】使用FileZilla连接阿里云Windows服务器

    使用FileZilla连接阿里云Windows服务器 1.工具 ECS服务器安装FileZilla Server,服务端官网下载地址 本地电脑安装FileZilla Client,客户端官网下载地址 ...

  8. 使用VScode连接阿里云远程服务器

    使用VScode连接阿里云远程服务器: 文章目录 准备工作 添加新的连接 开始连接 准备工作 下载vscode 安装中文插件 安装ssh插件 添加新的连接 在阿里云找到服务器的ip地址 将地址复制进配 ...

  9. 本地电脑如何远程连接阿里云WINDOWS服务器

    一.前言 要想本地电脑远程连接阿里云WINDOWS服务器,需要做以下准备工作: (1).购买阿里云WINDOWS服务器.(我购买的是阿里云WINDOWS SERVER 2019服务器,内存8G) (2 ...

最新文章

  1. 【好文】带你用Python开发个机器学习软件!
  2. ASP.NET 配置文件加密
  3. 后端程序员必备:书写高质量SQL的30条建议
  4. JVM 分析工具和查看命令,超详细
  5. use regular expression instead of ABAP function module to parse attachment
  6. css文字排列 - 代码篇
  7. 计算机硬盘出现过哪些问题,出现这几种征兆, 说明您的电脑机械硬盘可能就有问题了!...
  8. AIM Tech Round 5C. Rectangles 思维
  9. poi之Excel下载之详细设置
  10. Ubuntu 20.04 无连接图标无网络问题
  11. Shader学习7——法线贴图
  12. Java并发框架——AQS阻塞队列管理(三)——CLH锁改造
  13. java 读取url获取的xml
  14. 校园共享单车停放问题的调研
  15. echarts在中国地图上绘制各省指标
  16. RK3588平台开发系列讲解(PWM篇)PWM及backlight的使用方法
  17. 码,主码,主属性,非主属性,平凡函数依赖,完全依赖等词解释
  18. 大数据人工智能领域从菜鸟到高手晋级指南
  19. ffmpeg设置视频帧率
  20. Android查看、修改KeyAlias

热门文章

  1. Python 列表的方法
  2. css设置背景颜色/背景图像/背景图像平铺/背景图像位置/背景图像固定显示/综合设置元素背景的方法(学习笔记)
  3. python使用opencv实现人脸检测
  4. 计算机硬盘写入量,如何查询固态硬盘SSD的总写入量?
  5. Uav开发杂记-4-无人机开发的C-C++
  6. 青蛙的约会(POJ 1061 扩展欧几里德算法)
  7. 动态内存分配(详解)
  8. Ubuntu 18.04 修改中国时区
  9. Oracle-基本SQL语句
  10. 方舟生存显示都是外国服务器,方舟生存进化:在新服的国人,都是如何跟外国人交流的?...