【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

相关文章

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

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

Python实现MQTT通信的示例代码

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

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

基于C#实现MQTT通信实战

《基于C#实现MQTT通信实战》MQTT消息队列遥测传输,在物联网领域应用的很广泛,它是基于Publish/Subscribe模式,具有简单易用,支持QoS,传输效率高的特点,下面我们就来看看C#实现... 目录1、连接主机2、订阅消息3、发布消息MQTT(Message Queueing Telemetr

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO