环境: 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();
}
网友评论