Arduino_esp32_WiFi_mqtt代码

#include<WiFi.h>
#include<PubSubClient.h>

const char* ssid = "BlackWalnut";
const char* password = "blackwalnut";

const char* mqttServer = "192.168.1.25";
const int mqttPort = 1883;
const char* mqttUser = "admin";
const char* mqttPassword = "public";
 
WiFiClient espClient;
PubSubClient client(espClient);

void callback(char* topic, byte* payload, unsigned int length)
{
    Serial.print("来自订阅的主题:");
    Serial.println(topic);
    Serial.print("信息:");
    for (int i = 0; i< length; i++)
    {
        Serial.print((char)payload[i]);
    }
    Serial.println();
    Serial.println("-----------------------");
}
void setup()
{
    Serial.begin(115200);
    while (WiFi.status() != WL_CONNECTED)
    {
        Serial.println("WiFi连接中...");
        WiFi.begin(ssid,password);
        delay(2500);
    }
    Serial.println("WiFi连接成功");
    
    client.setServer(mqttServer,mqttPort);
    client.setCallback(callback);
    while (!client.connected())
    {
        Serial.println("MQTT服务器连接中");
        if (client.connect("ESP32Client",mqttUser, mqttPassword ))
        {
            Serial.println("MQTT服务器连接成功");
        }
        else
        {
            Serial.print("MQTT服务器连接失败,正在尝试重新连接");
            Serial.print(client.state());
            delay(2000);
        }
    }
    client.subscribe("ESP32");
    Serial.print("已订阅主题,等待主题消息....");
    client.publish("/World","Hello from ESP32");
}
 
void loop()
{
  client.loop();                            
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是ESP32 Arduino连接到MQTT服务器的示例代码: ```C++ #include <WiFi.h> #include <PubSubClient.h> // Replace the variables below with your network credentials and MQTT broker details const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqttServer = "your_MQTT_broker_server_address"; const int mqttPort = 1883; const char* mqttUser = "your_MQTT_username"; const char* mqttPassword = "your_MQTT_password"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); client.setServer(mqttServer, mqttPort); client.setCallback(callback); while (!client.connected()) { Serial.println("Connecting to MQTT..."); if (client.connect("ESP32Client", mqttUser, mqttPassword )) { Serial.println("Connected to MQTT"); client.subscribe("testTopic"); } else { Serial.print("Failed with state "); Serial.print(client.state()); delay(2000); } } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); } void callback(char* topic, byte* message, unsigned int length) { Serial.print("Message received on topic: "); Serial.print(topic); Serial.print(". Message: "); String messageTemp; for (int i = 0; i < length; i++) { messageTemp += (char)message[i]; } Serial.println(messageTemp); } void reconnect() { while (!client.connected()) { Serial.println("Connecting to MQTT..."); if (client.connect("ESP32Client", mqttUser, mqttPassword )) { Serial.println("Connected to MQTT"); client.subscribe("testTopic"); } else { Serial.print("Failed with state "); Serial.print(client.state()); delay(2000); } } } ``` 这个代码使用了ESP32的WiFi库和PubSubClient库。在代码中,你需要替换以下变量: - `ssid`:你的无线网络名称。 - `password`:你的无线网络密码。 - `mqttServer`:你的MQTT服务器地址。 - `mqttPort`:MQTT服务器端口号,默认为1883。 - `mqttUser`:你的MQTT服务器用户名。 - `mqttPassword`:你的MQTT服务器密码。 在`setup()`函数中,我们连接到WiFi和MQTT服务器,并订阅了`testTopic`主题。在`loop()`函数中,我们检查是否连接到MQTT服务器,如果没有连接,则调用`reconnect()`函数进行重新连接。在`callback()`函数中,我们打印接收到的消息。 注意:在使用此代码之前,请确保你已经在你的网络中安装了MQTT服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值