首页 > 其他分享 >Esp32 Mqtt

Esp32 Mqtt

时间:2022-11-05 21:00:25浏览次数:120  
标签:const Esp32 Mqtt char MQTT client 服务器 连接

使用esp32连接MQTT服务器

使用Arduino库

  • PubSubClient.h

修改PubSubClient.h文件

image-20221104170155709

基本初始化

  • 引入头文件

#include "PubSubClient.h"

const char*ssid ="XXXX";               //ESP32连接的WiFi账号
const char*password =  "XXXX";        //WiFi密码
const char*mqttServer = "XXXX";  //要连接到的服务器IP
const int mqttPort =1883;                 //要连接到的服务器端口号
const char*mqttUser = "admin";            //MQTT服务器账号
const char*mqttPassword = "public";       //MQTT服务器密码
WiFiClient espClient;                     // 定义wifiClient实例
PubSubClient client(espClient);          // 定义PubSubClient的实例

接收信息函数

void callback(char*topic, byte* payload, unsigned int length) 
{
    tft.drawString("From MQTT",0,48,2);             
    tft.drawString(topic,0,60,2);               
    tft.drawString("Massage is :",0,68,2);            
    char arr[length];
    for (int i = 0; i< length; i++)           //使用循环打印接收到的信息
    {
        arr[i] = (char)payload[i]; // 接收信息
    }
    
    tft.drawString(arr,0,80,2); // 屏幕打印信息

}

连接WiFi

delay(500);
  WiFi.begin("Internet Of Things Skills", "ThingInternets@fSkillsB44752");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

MQTT初始化


client.setServer(mqttServer,mqttPort);
client.setCallback(callback); 

while (!client.connected())             //是否连接上MQTT服务器
    {
            
        if (client.connect("ESP32Client",mqttUser, mqttPassword ))  //如果服务器连接成功
        {
            State = 2;
        }
    }

    client.subscribe("ESP32");                 //连接MQTT服务器后订阅主题
    client.publish("/World","Hello from ESP32");//向服务器发送的信息(主题,内容)


}

接收

 client.loop();                              //回旋接收函数  等待服务器返回的数据

参考

ESP32连接MQTT服务器(基于Arduino环境)_- 猪猪猪的博客-CSDN博客_esp32 mqtt

标签:const,Esp32,Mqtt,char,MQTT,client,服务器,连接
From: https://www.cnblogs.com/Xin-chen/p/16859413.html

相关文章

  • 【单片机入门】(四)应用层软件开发的单片机学习之路-----ESP32开发板PWM控制电机以及
    引言各位大佬,晚上好啊,在上一篇博客中,我们讲了什么是UART串口通讯,以及使用USB转TTL使得单片机可以和c#上位机做一个串口通讯,接下来,为大家带来PWM的概念原理,以及实际案例,使......
  • esp32点亮OLED屏幕
    esp32点亮4pinOLED屏幕接线方法屏幕是4pin的使用iic的协议使用SSD1306屏库测试代码#include<Wire.h>#include"SSD1306.h"SSD1306display(0x3c,21,18);void......
  • HarmonyOS系统中内核实现MQTT连接华为云的方法
       大家好,今天主要和大家聊一聊,如何使用MQTT连接华为云平台的方法目录​​第一:MQTT通信基本原理​​​​第二:华为IOT平台API​​​​第三:华为IOT平台初始化​​​​第......
  • ESP32系列教程之空中升级OTA
    准备工作配置好开发环境,本文是基于VSCODE+PlatformIO一个可用于联网的WiFi编译一个.bin固件升级程序,并上传得到一个http网址。首先编写一个程序,每隔1s打印hellowo......
  • 工业网关BL110实现西门子S7-400 PLC 接入金鸽MQTT云平台
    LAN接口的配置COM口采集西门子S7-400PLC的配置工业智能网关BL110一共有一个LAN接口,一个WAN接口,可以通过LAN接口采集数据,通过WAN接口接入局域网,设置过程不一样,WAN接口可......
  • 工业网关BL110实现西门子S7-1200 PLC接入MQTT Client One云平台
    LAN接口的配置COM口采集西门子S7-1200PLC的配置工业智能网关BL110一共有一个LAN接口,一个WAN接口,可以通过LAN接口采集数据,通过WAN接口接入局域网,设置过程不一样,WAN接口......
  • ESP32 多线程入门实验
    一、线程创建函数函数voidxTaskCreate(pdTASK_CODEpvTaskCode,constportCHAR*constpcNane,unsignedportSHORTusStackDepth,void*pvParameters,unsigne......
  • ESP32 SNTP校时
    一、连接WIFI在进行时间同步之前,先连接WIFI#include"wifi.h"#include<string.h>#include<stdlib.h>#include"freertos/FreeRTOS.h"#include"freertos/task.h"......
  • ESP32 IDF 获取天气信息
    一、注册天气获取账号我使用的知心天气,没有获取天气账号的小伙伴可以去注册一下,知心天气官网:https://www.seniverse.com/取得天气获取的API后,可以直接在浏览器中访问测试......
  • 工业网关如何采集西门子PLC S7-200 SMART的IO数据并上传到MQTT云平台?
    西门子S7-200是一款运行稳定、编程简单、功能多样的PLC,在多个工业控制领域都有所应用,是西门子打入中国市场的敲门砖,在国内有很高的占有率。作为S7-200的升级产品S7-200SMAR......