项目简介
THiNXLib 是专门为 ESP8266/ESP32 设备打造的固件库,其目的在于简化设备与 THiNX 云服务的集成。该库提供了设备连接、注册、状态检查、固件更新以及基于 MQTT 协议的远程通信等功能,开发者可借助它轻松将 ESP8266/ESP32 设备融入物联网(IoT)项目,实现设备的远程管理与控制。
项目的主要特性和功能
- 设备初始化与WiFi连接:自动连接设备到WiFi网络,支持通过WiFiManager配置SSID和密码。
- 设备注册与状态检查:将设备注册到THiNX云服务,定期检查设备状态并获取更新信息。
- MQTT通信:通过MQTT协议与THiNX云服务双向通信,支持消息的发布与订阅。
- 固件更新:可从THiNX云服务下载新固件并自动更新设备。
- 设备信息保存与恢复:保存和恢复设备的关键信息,如API密钥、设备ID、所有者ID等。
- 回调函数支持:提供回调函数处理从THiNX云服务接收的更新消息和配置更改。
- 环境变量注入:支持通过配置推送功能注入自定义环境变量,无需在设备代码中硬编码。
- 位置支持:支持通过WiFi或GPS模块更新设备的地理位置信息。
安装使用步骤
- 确保已下载本项目的源码文件。
- 安装依赖库:将项目中
lib
文件夹里的依赖库复制到你的 Arduino 库目录中。 - 配置项目:在代码中引入 THiNXLib 库,按需配置 API 密钥、设备别名、所有者ID等信息。
- 编译与上传:使用 Arduino IDE 编译并上传代码到你的 ESP8266/ESP32 设备。
- 运行设备:设备启动后会自动连接到WiFi并注册到THiNX云服务,可通过THiNX云服务进行远程管理和控制。
示例代码
```c
include "Arduino.h"
include
THiNX thx;
void setup() { Serial.begin(115200);
ifdef DEBUG
while (!Serial); // 等待调试控制台连接
WiFi.begin("THiNX-IoT+", "
endif
// 输入API密钥和所有者ID thx = THiNX("71679ca646c63d234e957e37e4f4069bf4eed14afca4569a0c74abf503076732", "cedc16bb6bb06daaa3ff6d30666d91aacd6e3efbf9abbc151b4dcade59af7c12"); thx.setFinalizeCallback(finalizeCallback); thx.setPushConfigCallback(pushConfigCallback); }
void loop() { thx.loop(); }
/ 当库成功连接并注册后调用此回调函数 / void finalizeCallback () { Serial.println("*INO: Finalize callback called."); ESP.deepSleep(3e9); }
/ 处理从THiNX云服务接收到的配置更改 / void pushConfigCallback (String config) { // 解析并应用环境变量 DynamicJsonBuffer jsonBuffer(512); JsonObject& root = jsonBuffer.parseObject(config.c_str()); JsonObject& configuration = root["configuration"];
if ( !configuration.success() ) { Serial.println(F("Failed parsing configuration.")); } else { const char ssid = configuration["THINX_ENV_SSID"]; const char pass = configuration["THINX_ENV_PASS"];
if ((strlen(ssid) > 2) && (strlen(pass) > 0)) {
WiFi.disconnect();
WiFi.begin(ssid, pass);
unsigned long timeout = millis() + 20000;
Serial.println("Attempting WiFi migration...");
while (WiFi.status() != WL_CONNECTED) {
yield();
if (millis() > timeout) break;
}
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi migration failed.");
} else {
Serial.println("WiFi migration successful.");
}
}
} } ```
通过以上步骤,可快速将 ESP8266/ESP32 设备集成到 THiNX 云服务中,实现远程管理和控制。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】