ThingsCloud ESP32/ESP8266 Arduino SDK

文章介绍了ThingsCloud推出的ESP32/ESP8266ArduinoSDK,该SDK支持WiFi连接、MQTT通信、设备配网、OTA升级等功能,帮助开发者便捷地将智能硬件接入物联网云平台。提供了通过Arduino库管理和PlatformIO安装SDK的方法,并包含多个示例代码,便于快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取详细代码示例和教程,请点击下边的 Github 地址,我们会持续更新教程。别忘了留下 Star,感谢支持!

https://github.com/IoT-ThingsCloud/thingscloud-esp-sdk

众所周知,ESP32/ESP8266 是风靡全球的 WiFi 芯片,同时可作为主控 MCU,支持 Arduino 开发框架。你可以随便买到各种各样的 ESP
模组和开发板。

ThingsCloud 推出了基于 ESP32/ESP8266 Arduino 的 SDK,方便智能硬件厂商和开发者快速将设备接入 ThingsCloud 云平台并生成物联网应用,完成物联网方案的快速落地。

SDK 支持特性包括:

  • WiFi 基本连接,指定 WiFi SSID/Password,连接到固定 AP。
  • WiFi 配网,可使用 ThingsX iOS/Android App,为模组快速配置 WiFi 连接信息。适合多设备的量产。
  • MQTT 一机一密,为每个模组烧录独立的证书。
  • MQTT 一型一密,为所有模组烧录相同的固件,每个模组自动获取证书。适合多设备的量产。
  • 支持 ThingsCloud MQTT 接入协议,几行代码就可以实现设备和云平台的双向数据实时传输,包括属性上报和下发、事件上报、命令接收、自定义数据流等。
  • 固件 OTA 升级,结合 ThingsCloud 的 OTA 版本管理功能。

SDK 支持通过以下方式安装:

Arduino

通过 Arduino 库管理器安装,进入 Arduino 菜单的 工具 > 管理库,搜索 ThingsCloud,选择最新版本,点击安装。有版本更新时,需要在这里点击更新。

articles/2023/20230112135745_fe9018c6306c78688e3d772b25ebb26a.png

在 Arduino 文件 > 示例 中,可以快速添加 ThingsCloud 示例代码,如下图:

articles/2023/20230112192455_2770da909b197bab9e961e401d0e616e.png

更多示例代码即将推出,欢迎您的建议。

PlatformIO

使用 VSCode + PlatformIO 开发方式,可以直接在 PlatformIO Library 中搜索 ThingsCloud,并添加到项目中。

articles/2022/20230110235709_ae88b059b93a179e98945a207f6576f9.png

示例

如使用 Arduino IDE,可在 文件 > 示例 中,直接打开以下示例代码。

01.WiFi_Basic

普通 WiFi 连接方式,指定 WiFi SSID 和密码。

  • mqtt_connect_with_access_token:每个设备使用自己的 AccessToken 连接 ThingsCloud
  • mqtt_connect_with_device_key:每个设备使用 DeviceKey 请求 AccessToken,连接 ThingsCloud
  • mqtt_connect_with_device_key_auto_create_device:每个设备使用 DeviceKey 请求 AccessToken,连接 ThingsCloud。如果 DeviceKey 的设备不存在,支持自动创建设备。
  • mqtt_connect_with_auto_device_key:每个设备自动生成唯一的 DeviceKey,请求 AccessToken,连接 ThingsCloud。

02.WiFi_Provisioning_AP_Mode

不需要指定 WiFi SSID 和密码,用户通过 ThingsX App 完成 WiFi 配网。

  • wifi_provisioning_cliam_device:WiFi 配网模式的示例,用户完成配网后领取设备。
  • wifi_provisioning_reset:通过长按按键重置配网的示例。

03.MQTT_Communicate

设备 MQTT 通信示例。

  • mqtt_attributes:设备上报设备属性、接收云平台下发属性、读取云平台的设备属性。
  • mqtt_report_event:设备上报事件的示例。
  • mqtt_recv_command:设备接收云平台下发命令的示例。

更多示例代码即将推出……

获取详细代码示例和教程,请点击下边的 Github 地址,我们会持续更新教程。别忘了留下 Star,感谢支持!

https://github.com/IoT-ThingsCloud/thingscloud-esp-sdk

ThingsCloud 是物联网设备统一接入平台和低代码应用开发平台。可以帮助任何需要数字化升级的组织和企业,在极短的时间内搭建物联网应用,并适应不断变化的发展需求。ThingsCloud 支持智能传感器、执行器、控制器、智能硬件等设备接入,实现数据采集、分析、控制,还可以灵活配置规则,生成项目应用 SaaS 和用户应用 App,这一切无需任何复杂的代码开发。

  • 官网:https://www.thingscloud.xyz/
  • 控制台:https://console.thingscloud.xyz/
  • 教程:https://docs.thingscloud.xyz/tutorials
  • 文档:https://docs.thingscloud.xyz
  • 设备接入:https://docs.thingscloud.xyz/guide/connect-device/
  • 博客:https://www.thingscloud.xyz/blog/
  • B站:https://space.bilibili.com/1953347444

articles/2023/20230112114634_afd61232cd029fca77eaebe67e12beaf.png

### ThingsCloud 平台中 ESP8266Arduino 的集成开发 在 ThingsCloud 平台上使用 ESP8266Arduino 开发物联网项目时,通常需要完成硬件连接、固件烧录以及云端配置等工作。以下是详细的说明: #### 硬件准备与连接 ESP8266 是一款支持 Wi-Fi 功能的模块,可以作为独立设备运行,也可以通过串口与 Arduino 主控板通信。如果选择后者,则需将两者通过 TX/RX 引脚相连[^1]。 对于硬件连接部分,具体操作如下: - 将 ESP8266 的 RXD 连接到 Arduino 的 TX。 - 将 ESP8266 的 TXD 连接到 Arduino 的 RX。 - 使用电平转换器确保电压匹配(因为某些版本的 ESP8266 工作于 3.3V 而非 5V),避免损坏芯片[^2]。 #### 安装驱动程序和 IDE 设置 为了使计算机能够识别并编程 ESP8266 或者调试其与 Arduino 的交互情况,在安装好对应型号的 USB-to-TTL 驱动之后还需要调整 Arduino IDE 中的相关设置项来兼容该类微控制器扩展功能需求[^3]: 1. 打开 **Arduino IDE** 后转至菜单栏中的 `文件 -> 偏好设定` 输入附加开发版 URL 地址字段处填入官方推荐链接地址字符串形式表达式 https://arduino.esp8266.com/stable/package_esp8266com_index.json; 2. 接着回到主界面依次点击路径选项卡序列即为:工具->开发板:" Boards Manager..." ,搜索关键字 "esp8266", 下载最新稳定发行包版本号; #### 示例代码展示 下面提供一段简单的示例代码用于演示如何利用 MQTT 协议向 ThingsCloud 发送数据消息流过程实现方法论思路框架结构设计模式分析探讨研究学习交流分享传播推广普及教育训练指导帮助解答疑问解决困惑消除障碍克服困难提升技能增强能力培养素质塑造品格建立信心树立理想追求目标达成愿景创造价值贡献社会造福人类促进发展推动进步引领潮流带动趋势影响世界改变未来[^4]: ```cpp #include <PubSubClient.h> #include <ESP8266WiFi.h> // 替换为您自己的 WiFi 凭证 const char* ssid = "Your_SSID"; const char* password = "Your_PASSWORD"; // ThingsCloud Broker Information const char* mqtt_server = "mqtt.thingscloud.cn"; WiFiClient espClient; PubSubClient client(espClient); void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect("ESP8266Client")) { Serial.println("Connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); Serial.begin(9600); setup_wifi(); client.setServer(mqtt_server, 1883); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); long now = millis(); static long lastMsg = 0; const long interval = 1000; if (now - lastMsg > interval) { lastMsg = now; int value = digitalRead(LED_BUILTIN); char topic[] = "/v1/devices/me/telemetry"; StaticJsonDocument<200> doc; doc["led"] = !value; String payload; serializeJson(doc, payload); client.publish(topic, payload.c_str()); digitalWrite(LED_BUILTIN, !value); } } ``` #### § 1. 如何修改上述代码以适应不同的传感器采集任务? 2. 如果遇到网络不稳定的情况,应采取哪些措施优化重连机制? 3. 是否可以在同一项目中同时接入多个 IoT 设备到 ThingsCloud?如果有,需要注意什么事项? 4. 对于初学者来说,有哪些常见的错误容易发生在 ESP8266Arduino 结合使用的场景下? 5. 怎样提高基于 MQTT 协议的数据传输效率并减少延迟时间?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值