【ESP32】mqtt 发送和接收

2024-09-02 22:52
文章标签 发送 mqtt 接收 esp32

本文主要是介绍【ESP32】mqtt 发送和接收,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、首先下载MQTT-X软件

二、下载后建立mqtt,设置这些参数

点击连接,然后创建topic主题

三、程序

注释已经写的很清楚了

#include <WiFi.h> // 包含WiFi库,用于连接WiFi网络
#include <PubSubClient.h> // 包含MQTT库,用于与MQTT服务器通信// WiFi网络名称和密码
const char *ssid = "li123";
const char *psw = "li123321";// MQTT服务器地址
const char *mqtt_broker = "broker.emqx.io";// 订阅的主题
const char *topic = "esp32/test";// MQTT用户名和密码
const char *mqtt_username = "Li_MQTT";
const char *mqtt_password = "li123321";// MQTT服务器端口号
const int mqtt_port = 1883;// 创建WiFi客户端对象
WiFiClient espClient;// 创建MQTT客户端对象,并传入WiFi客户端对象
PubSubClient client(espClient);// 当接收到MQTT消息时调用的回调函数
void callback(char *topic, byte *payload, unsigned int length) {// 打印主题Serial.print("Received message on topic: ");Serial.println(topic);// 打印负载Serial.print("Payload: ");for (unsigned int i = 0; i < length; i++) {Serial.print((char)payload[i]);}Serial.println();// 在这里可以添加处理消息的代码
}void setup() {// 初始化串口通信,设置波特率为115200Serial.begin(115200);// 连接到WiFi网络WiFi.begin(ssid, psw);// 循环直到连接到WiFiwhile (WiFi.status() != WL_CONNECTED) {delay(500);Serial.println("Connecting to WiFi...");}// 打印WiFi连接成功信息Serial.println("Connected to WiFi");// 设置MQTT服务器的地址和端口号client.setServer(mqtt_broker, mqtt_port);// 设置MQTT消息回调函数client.setCallback(callback);// 循环直到连接到MQTT服务器while (!client.connected()) {// 创建一个唯一的客户端IDString clientId = "esp32-client-";clientId += WiFi.macAddress();// 尝试连接到MQTT服务器Serial.printf("Connecting to MQTT broker: %s\\n", clientId.c_str());if (client.connect(clientId.c_str(), mqtt_username, mqtt_password)) {// 如果连接成功,打印连接成功信息Serial.println("Connected to MQTT broker");// 订阅主题,以便接收消息client.subscribe(topic);} else {// 如果连接失败,打印错误信息Serial.print("Connection failed with state: ");Serial.print(client.state());// 等待2秒后重试delay(2000);}}
}void loop() {// 检查MQTT客户端是否连接,并处理任何传入的消息client.loop();// 等待100毫秒,避免过于频繁的循环检查
//  client.publish(topic, "aa");//发送delay(100);
}

实验现象:

这篇关于【ESP32】mqtt 发送和接收的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131301

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho