1.安装库:工具->管理库->库管理->填入"MQTT",选择"MQTT by Joel Gaehwiler",安装后效果如下:
2.下载调试软件通信猫-Windows下全能调试助手_通信猫云平台资源-CSDN下载,安卓手机也可安装一个调试APP:MyMQTT2.3.3_通信猫云平台资源-CSDN下载。
3.利用通信猫测试和MyMQTT测试免费MQTT Broker:public.cloud.shiftr.io,端口是1883,账号密码都是public,利用MyMQTT连接时要选择"MQTT V3"。

4.按照顺序:示例->来自自定义库的示例->MQTT->ESP32DevelopmentBoard,打开Demo程序:

5.ssid和pass根据自己的实际情况加以修改,并做以下修改:
client.subscribe("/hello");->client.subscribe("sdau");
client.publish("/hello", "world");->client.publish("2005", "hello world")
上传到ESP32C3小板,并打开串口监视器,波特率改为115200,同时通信猫订阅主题设为2005,并发布主题为sdau,内容为2005的消息,如下图所示,很明显可以看出ESP32C3和通信猫建立了通信联系。


6.进一步修改,通信猫发送数字0,1,2,3分别控制两个led的亮灭,在setup()函数里增加两个led对应引脚配置,messageReceived函数增加digitalWrite(payload.toInt()/2+12, payload.toInt()%2)命令,完整程序如下:
#include <WiFi.h>
#include <MQTT.h>
const char ssid[] = "XXX";
const char pass[] = "12345678";
WiFiClient net;
MQTTClient client;
unsigned long lastMillis = 0;
void connect() {
Serial.print("checking wifi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.print("\nconnecting...");
while (!client.connect("arduino", "public", "public")) {
Serial.print(".");
delay(1000);
}
Serial.println("\nconnected!");
client.subscribe("sdau");
}
void messageReceived(String &topic, String &payload) {
Serial.println("incoming: " + topic + " - " + payload);
digitalWrite(payload.toInt()/2+12, payload.toInt()%2);//1,3分别点亮12,13脚led;0,2分别熄灭
}
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
client.begin("public.cloud.shiftr.io", net);
client.onMessage(messageReceived);
connect();
}
void loop() {
client.loop();
delay(10); // <- fixes some issues with WiFi stability
if (!client.connected()) {
connect();
}
// publish a message roughly every second.
if (millis() - lastMillis > 1000) {
lastMillis = millis();
client.publish("2005", "hello world");
}
}
7.推荐另外一个免费的MQTT Broker:broker.emqx.io,wss端口是8084,TCP端口1883,账号密码都可用public,操作界面如下:



8.Dfrobot的easy-iot物联网平台,网址:.
需要在线注册,免费享有1万条消息存储,服务器地址:iot.dfrobot.com.cn,端口1883。
每个设备对应一个Topic,不可更改,支持在线发送消息。不支持SSL。
用户名、密码由系统产生,不可自行修改,不能订阅自定义Topic消息。运行效果如下:


9.通信猫提供的免费Broker:mq.tongxinmao.com,TCP端口:18830,WS端口:18832,用户/密码:空,如下:

