美文网首页
arduino ESP32-MQTT使用

arduino ESP32-MQTT使用

作者: immortalWake | 来源:发表于2019-10-15 19:14 被阅读0次

    环境: emqtt代理服务器,PubSubClient库直接在库管理器中搜索安装即可

    #include<WiFi.h>
    #include<PubSubClient.h>
    
    // wifi名称
    const char* WIFINAME = "";
    // wifi密码
    const char* WIFIPASSWORD = "";
    const char* mqttServer = "192.168.1.x";
    const char* mqttUser = "admin";
    const char* mqttPassword = "public";
    
    WiFiClient espClient;
    PubSubClient client(espClient); 
    
    void setup() {
      Serial.begin(115200);
      WiFi.begin(WIFINAME, WIFIPASSWORD);
      
      while (WiFi.status()!= WL_CONNECTED) {
        delay(500);
        Serial.println("Connectingto WiFi..");
      }
      Serial.println("Connectedto the WiFi network");
      
      client.setServer(mqttServer, 1883);
      client.setCallback(callback);
    
    }
    
    // 重连MQTT
    void reconnect() {
      while (!client.connected()){
        Serial.println("Connectingto MQTT...");
        if (client.connect("ESP32Client",mqttUser, mqttPassword )) {
          Serial.println("connected");
          // 订阅主题
          client.subscribe("test");
        }else {
          Serial.print("failedwith state ");
          Serial.print(client.state());
          delay(5000);
        }
      }
    }
    
    void callback(char*topic, byte* payload, unsigned int length) {
      Serial.print("Messagearrived in topic: ");
      Serial.println(topic);
      Serial.print("Message:");
      String msg = "";
      for (int i = 0; i< length; i++) {
        msg += (char)payload[i];
      }
      Serial.println(msg);
      Serial.println("-----------------------");
    }
    
    void loop() {
      if (!client.connected()) {
        reconnect();
      }
      client.loop();
    }
    

    相关文章

      网友评论

          本文标题:arduino ESP32-MQTT使用

          本文链接:https://www.haomeiwen.com/subject/npfemctx.html