ESP32C3在Arduino下的MQTT操作

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物联网平台,网址:.

http://iot.dfrobot.com.cn/

需要在线注册,免费享有1万条消息存储,服务器地址:iot.dfrobot.com.cn,端口1883。

每个设备对应一个Topic,不可更改,支持在线发送消息。不支持SSL。

用户名、密码由系统产生,不可自行修改,不能订阅自定义Topic消息。运行效果如下:


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

相关推荐
充电zcx41 分钟前
Linux:4:开发工具详解
linux·运维·服务器
泯泷1 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
野槐3 小时前
前端项目优化(有了我,会发生...)
前端
aa小小4 小时前
【无标题】
前端
码农客栈5 小时前
linux 交叉编译tslib
linux
计算机魔术师5 小时前
还在单线程跟 AI 聊天?Claude Code 并行多会话让你一个人干三个人的活
前端
志尊宝5 小时前
Vue3 零基础每日笔记(038):亲手封装 useDebounceFn 与 useThrottleFn——高频事件的流量阀
前端·javascript·vue·html·vue3
JavaGuide5 小时前
对标 MinIO!全新一代分布式文件系统正式发布
前端·后端
风骏时光牛马5 小时前
AI驱动自动化业务工作流搭建实践
前端
鱼月半5 小时前
两台电脑直连网络不通怎么办?
linux·网络协议