arduino ESP32-MQTT使用

2019-10-15  本文已影响0人  immortalWake

环境: 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();
}
上一篇下一篇

猜你喜欢

热点阅读