《ESP32从0到1》之MQTT与阿里iot通信(上)


文章内容

基于MQTT->tcp结合wifi->smart_config示例工程,读懂程序,最终实现MQTT与阿里iot平台通信。

上篇:基于MQTT->tcp修改,配合MQTTX及已有后台接口,实现MQTT通信;


硬件

● 一款 ESP32 开发板(本专辑中均使用ESP32-LyraT-Mini V1.2开发板)

● USB 数据线 (A 转 Micro-B)

● 电脑(Windows)


MQTT基础信息介绍

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。


测试准备

当前程序角色为客户端,客户端连接服务器并实现MQTT通信,需要的测试参数有:服务器地址(url+端口号)、用户名、密码。另多个设备连接服务器时需要保证clientID的唯一性。

用已有MQTT服务器配合测试。
在这里插入图片描述

MQTTX下载链接:https://mqttx.app/zh?spm=a2c6h.13046898.publish-article.27.67bb6ffadVozp2

用MQTTX连接测试服务器通信链路是否正常。打开MQTTX,点击“+”->“New Connection”,新建一个MQTT客户端,如下图所示填写相关信息后,点击“Connect”

在这里插入图片描述
在这里插入图片描述
若与MQTT服务器连接成功,则会跳出弹窗“Connected”,点击右上角关闭按钮可断开连接。
在这里插入图片描述
说明:用户名和密码对于MQTT并不是必须,若MQTT服务器开启了认证需要用户名和密码则必须填写;


基于 MQTT->tcp示例创建工程

1.创建并打开工程

ctrl+alt+P,输入ESP-IDF show,选择“ESP-IDF: Show Examples Projects” ,找到MQTT->“tcp”,选择“Create Project using example tcp”,在跳出的保存框中,选择某一文件夹,新建Project文件夹,保存。用于存放新建的tcp工程。
注意:文件夹名称和路径中最好不要有中文且路径尽量短;
在这里插入图片描述

2.程序解读及配置

app_main()主要功能就是初始化nvsflash、初始化底层TCP/IP堆栈、创建默认事件循环、阻塞连接wifi、进行MQTT相关操作。
在这里插入图片描述

wifi配置

点击左下角配置按钮,在弹出的配置页面中找到“Example Configure”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
填写wifi SSID和Password,编译运行后example_connect函数会自动实现wifi连接。

MQTT连接参数配置

mqtt_app_start中进行mqtt客户端连接参数的配置,并进行客户端初始化、注册事件处理程序、启动MQTT等操作。
在这里插入图片描述
按照实际连接参数修改mqtt_cfg变量。关于mqtt_cfg配置可自行了解esp_mqtt_client_config_t结构体,内容和注释都比较清晰,不做单独说明,后续用到时会提一嘴。
在这里插入图片描述

MQTT发布、订阅

mqtt_event_handler为MQTT事件处理函数,在连接成功事件中进行主题发布和主题订阅。
在这里插入图片描述
MQTTX中增加两个订阅,用于观察该tcp示例程序运行状态。MQTTX之前新建的名为“ESP32_MQTT_Test”的连接如果长时间不用可能会退出,此时需要点击下“Connect”按钮,连接成功后点击“New Subscription”
在这里插入图片描述
按照MQTT_EVENT_CONNECTED事件处理程序中的发布内容填写Topic,Qos,点击“Confirm”保存
在这里插入图片描述

3. 编译并运行tcp示例程序

在这里插入图片描述
在这里插入图片描述
MQTTx收到了来自MQTT服务器转发的tcp示例程序发布的消息。MQTTx端发布主题为“/topic/qos0”的消息则tcp示例程序同样会触发MQTT_EVENT_DATA事件,如下图所示。
在这里插入图片描述
在这里插入图片描述
至此,使用自有MQTT服务器配合MQTTX对tcp示例的MQTT功能测试成功。

《ESP32从0到1》之MQTT与阿里iot通信(中)预告:整合MQTT->tcp和wifi->smart_config示例,实现app快速配网,wifi连接成功后,定时发布MQTT主题,实现数据定时上报功能(依旧结合MQTTX实现测试)

🌹欢迎关注、订阅、收藏🌹

文章中有不清晰或者有疑问、错误的地方,请务必留言提醒、讨论。非常感谢!!!

欢迎关注并留言

文章同步发表于公众号"IT搬砖客",欢迎关注并留言

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: ESP32可以通过阿里云提供的MQTT协议与阿里云进行通信,具体步骤如下: 1. 在阿里云上创建一个MQTT实例,并获取到AccessKey和SecretKey。 2. 在ESP32上安装MQTT客户端库,例如PubSubClient。 3. 在ESP32代码中配置WiFi连接信息和阿里MQTT服务器地址、端口、AccessKey、SecretKey等相关信息。 4. 使用MQTT客户端库连接阿里MQTT服务器,并订阅需要的主题或发布消息。 5. 在阿里云上配置相应的规则引擎,用于处理ESP32发送的消息或发送指令到ESP32。 通过以上步骤,ESP32阿里云即可相互通信。具体实现过程可以参考阿里云官方文档和MQTT客户端库的示例代码。 ### 回答2: ESP32 是一款小型的、低功耗的开发板,可以用于物联网应用。它具有Wi-Fi和蓝牙功能,适用于与云平台进行通信阿里云是一家全球领先的云计算平台提供商,提供了丰富的服务和解决方案。 ESP32可以与阿里云相互通信,实现物联网设备与云平台之间的数据传输和控制。具体的步骤如下: 1. ESP32首先需要连接到Wi-Fi网络。通过ESP32的Wi-Fi功能,可以将设备连接到本地无线网络或者移动网络,确保设备与互联网相连。 2. 在阿里云平台上创建一个账号和设备。通过阿里云的控制台,可以注册一个账号,并创建一个设备,获取设备的唯一标识符(Device ID)和设备密钥(Device Secret)。 3. 在ESP32上安装相应的物联网开发框架,例如Arduino IDE或者MicroPython。这些开发框架提供了与阿里通信所需的库和示例代码。 4. 在ESP32的代码中,使用阿里云提供的SDK或者库,初始化设备并设置与云平台的连接参数,例如设备ID和设备密钥。 5. 通过调用相应的API,ESP32可以向阿里云发送数据,或者从阿里云接收控制指令。例如,可以使用MQTT协议通过发布订阅方式实现数据传输。 6. 在阿里云平台上,可以配置规则引擎(Rule Engine)或者函数计算(Function Compute)等服务,对设备上报的数据进行处理和分析,实现更复杂的业务逻辑。 通过以上步骤,ESP32可以与阿里云平台相互通信,实现设备与云的数据交互和远程控制。这种通信方式为物联网应用提供了强大的支持,使得设备能够与云端实时交互,实现远程监控、数据分析和远程控制等功能。 ### 回答3: ESP32是一款高度集成的微控制器,具备Wi-Fi和蓝牙通信功能。而阿里云是一个领先的云计算平台,提供云服务和物联网解决方案。通过ESP32阿里云的相互通信,可以实现智能家居、车联网、工业自动化等各种物联网应用。 首先,ESP32可以使用其内置的Wi-Fi模块连接到阿里云服务器,实现与云平台的通信ESP32通过Wi-Fi模块建立与阿里云平台的连接,将传感器数据或其他设备信息发送到阿里云服务器。 其次,阿里云平台提供了物联网平台IoT Hub,可以创建设备连接,具备设备管理、数据通信、数据存储等功能。ESP32可以通过IoT Hub提供的API进行设备注册,获取设备凭证,从而连接到阿里云的物联网平台。 一旦ESP32成功连接到阿里云平台,可以使用MQTT或者HTTP协议进行数据的上传和下载。使用MQTT协议,ESP32可以向阿里云发送传感器数据,也可以接收来自阿里云的指令控制设备。使用HTTP协议,可以通过HTTP请求与阿里云平台进行数据交互。 另外,阿里云提供了物联网套件Link Kit,其中包括设备端SDK和云端SDK。ESP32可以使用物联网套件中的设备端SDK,结合阿里云的云端SDK,进行更便捷的通信和云平台管理。 综上所述,通过ESP32阿里云的相互通信,可以实现设备与云平台之间的数据交互、远程控制等功能,开发更多智能化的物联网应用。同时,阿里云提供了丰富的云服务,可以为ESP32提供设备管理、数据存储、数据分析等功能,进一步提升系统的可靠性和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT搬砖客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值