EspMQTTClient 项目使用教程
1. 项目的目录结构及介绍
EspMQTTClient 项目的目录结构如下:
EspMQTTClient/
├── examples/
│ ├── BasicPubSub/
│ ├── CustomMQTTClientId/
│ ├── CustomWifiCredentialsProvider/
│ ├── MinimalConfig/
│ ├── OTAUpdate/
│ ├── PersistentClientId/
│ ├── SecureClient/
│ └── WebUpdater/
├── src/
│ ├── EspMQTTClient.cpp
│ ├── EspMQTTClient.h
│ └── README.md
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
└── library.properties
目录介绍
examples/
: 包含多个示例项目,展示了如何使用 EspMQTTClient 库进行基本的发布/订阅、自定义 MQTT 客户端 ID、自定义 WiFi 凭证提供者、最小配置、OTA 更新、持久化客户端 ID、安全客户端和 Web 更新等功能。src/
: 包含库的核心源文件EspMQTTClient.cpp
和EspMQTTClient.h
,以及一个README.md
文件。.gitignore
: 用于指定 Git 版本控制系统忽略的文件和目录。.travis.yml
: Travis CI 的配置文件,用于持续集成。LICENSE
: 项目的许可证文件。README.md
: 项目的说明文档。library.properties
: Arduino 库的属性文件,包含库的名称、版本、作者等信息。
2. 项目的启动文件介绍
项目的启动文件主要是 src/EspMQTTClient.cpp
和 src/EspMQTTClient.h
。这两个文件定义了 EspMQTTClient 类,提供了连接 WiFi 和 MQTT 服务器的功能。
EspMQTTClient.h
EspMQTTClient.h
文件定义了 EspMQTTClient 类的接口,包括构造函数、成员函数和成员变量。以下是部分关键接口:
class EspMQTTClient
{
public:
EspMQTTClient(const char* wifiSsid,
const char* wifiPassword,
const char* mqttServerIp,
const char* mqttUsername,
const char* mqttPassword,
const char* mqttClientName,
uint16_t mqttServerPort = 1883);
void loop();
bool publish(const String& topic, const String& payload, bool retained = false);
bool subscribe(const String& topic, uint8_t qos = 0);
// 其他成员函数...
};
EspMQTTClient.cpp
EspMQTTClient.cpp
文件实现了 EspMQTTClient.h
中定义的接口,包括 WiFi 和 MQTT 连接的管理、消息的发布和订阅等功能。
3. 项目的配置文件介绍
EspMQTTClient 项目的配置主要通过构造函数参数进行。以下是构造函数的参数介绍:
EspMQTTClient(const char* wifiSsid,
const char* wifiPassword,
const char* mqttServerIp,
const char* mqttUsername,
const char* mqttPassword,
const char* mqttClientName,
uint16_t mqttServerPort = 1883);
参数介绍
wifiSsid
: WiFi 网络的 SSID。wifiPassword
: WiFi 网络的密码。mqttServerIp
: MQTT 服务器的 IP 地址。mqttUsername
: MQTT 服务器的用户名。mqttPassword
: MQTT 服务器的密码。mqttClientName
: MQTT 客户端的名称。mqttServerPort
: MQTT 服务器的端口号,默认为 1883。
通过这些参数,可以在实例化 EspMQTTClient
对象时配置 WiFi 和 MQTT 连接的详细信息。
以上是 EspMQTTClient 项目的目录结构、启动文件和配置文件的介绍。希望这份教程能帮助你更好地理解和使用该项目。