文章目录
前言
之前研究了一段时间的 COAP 协议结果爱智那边没有测试工具,然后 arduino 也没有找到合适的库,我懒癌发作也懒得修这库,就只能非常尴尬先暂时放一放了。不过我在 爱智APP -> 设备 -> 设置 中发现爱智中做了一个 MQTT Broker ,也就是说我能利用精灵一号,在两块ESP32 之间进行通讯了,而且 arduino 也有现成的库,然后我就突击了一下MQTT ,把这玩意给弄起来了,这里就给大家分享一下。

配置 MQTT Broker
在爱智APP的设备中有个设置按钮:

在里面可以启用精灵一号的 MQTT Broker 功能并且进行设置:

在 MQTT 的设置中可以配置相关参数:

这些参数和与下面 ESP32 中的配置有关
代码获取
我使用的 MQTT 库直接在 IDE 的库管理器里就能下载到:

或者去GitHub下载:
https://github.com/adafruit/Adafruit_MQTT_Library
而示例代码,老样子在灵感桌面的秘密宝库 下载代码。
或者直接 git clone:
https://gitee.com/inspiration-desktop/eap-energy-conservation.git

里面有两个文件夹,分别是发布者和订阅者发的示例。
代码解析
为了方便讲解逻辑,我会打乱代码的顺序可能还会进行裁剪。本 demo 基于 MQTT 库自带的 DEMO 修改而来。
创建 MQTT 客户端
#include <WiFi.h>
//#include "WiFiClientSecure.h"
#include "WiFiClient.h"
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
/************************* WiFi Access Point *********************************/
#define WLAN_SSID "EOS-Tenda"
#define WLAN_PASS "1234567890"
/************************* Adafruit.io Setup *********************************/
#define AIO_SERVER "192.168.128.1"
// 在爱智APP->设备->MQTT Broker 设置,可以看到并且设置
#define AIO_SERVERPORT 1883
// 在爱智APP->设备->MQTT Broker 设置,可以看到并且设置
#define AIO_USERNAME "user"
#define AIO_KEY "passwd"
/************ Global State (you don't need to change this!) ******************/
// 爱智似乎没有这个安全模式,于是使用了 WiFiClient
//WiFiClientSecure client;
WiFiClient client;
// 通过传入WiFi客户端和MQTT服务端以及登录详细信息来设置MQTT客户端类,注意连入爱智必须设置 cid,可能和爱智那边设置有关系。
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, "Publish_cid", AIO_USERNAME, AIO_KEY);
需要注意的是虽然 Adafruit_MQTT_Client 有可以不带 cid 的实现

本文档介绍了如何使用Arduino库连接到MQTTBroker,特别是针对爱智平台的MQTT设置。作者提供了创建MQTT客户端、发布和订阅主题的步骤,并展示了发布者和订阅者的主循环代码。通过MQTT连接,两个ESP32设备实现了通讯。
最低0.47元/天 解锁文章
991

被折叠的 条评论
为什么被折叠?



