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,用户/密码:空,如下:

相关推荐
路溪非溪4 分钟前
BLE的广播、扫描和连接等工作机制总结
linux·arm开发·驱动开发
SuperEugene15 分钟前
Vue3 + Element Plus 表格实战:批量操作、行内编辑、跨页选中逻辑统一|表单与表格规范篇
开发语言·前端·javascript
gjc59221 分钟前
踩坑实录:MySQL服务器CPU爆高,元凶竟是SELinux的setroubleshootd?
运维·服务器·数据库·mysql·adb
我才是一卓24 分钟前
linux 安装简易 git 服务端并使用
linux·运维·git
德彪稳坐倒骑驴28 分钟前
MySQL Server 5.5 win端安装,安装SQLyog
运维·服务器
Wanliang Li34 分钟前
AArch64虚拟化——virtio-mmio实现
linux·虚拟化·virtio·hypervisor·mmio
极梦网络无忧39 分钟前
基于 Vite + Vue3 的组件自动注册功能
前端·javascript·vue.js
Predestination王瀞潞1 小时前
5.4.3 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 协议架构(分层)
前端·网络·网络协议·架构·www
爱学习的程序媛1 小时前
【Web前端】优化Core Web Vitals提升用户体验
前端·ui·web·ux·用户体验
zabr1 小时前
花了 100+ 篇笔记,我整理出 了一套 AI Agent 工程完全指南
前端·后端·agent