littlebot
Published on 2025-04-12 / 2 Visits
0

【源码】基于C语言的Zoho IoT开发工具包

项目简介

Zoho IoT C SDK 致力于让智能(网关)设备便捷地与 Zoho 云平台建立安全连接。它借助轻量级的 MQTT 消息协议,通过实现 TLS 安全机制,实现设备与云之间数据的安全交换。

项目的主要特性和功能

  1. 连接性:助力设备简单地与服务器建立可靠的 MQTT 连接,用于传输设备遥测数据和接收云端命令。
  2. 安全性:通过 TLS 保障设备与云之间通信数据包的安全,支持服务器和客户端的 X.509 证书配置。
  3. 数据收集:内置对 JSON 数据格式的支持,可依据传感器采集的数据生成遥测负载,也支持用户自定义 JSON 格式。
  4. 设备可移植性:以开源形式分发,支持不同平台和硬件架构上运行的各种设备,已在树莓派和基于 OpenWRT 的设备上完成构建和测试。

安装使用步骤

1. 安装依赖

确保在 Linux 系统上运行,预先安装以下软件包: bash sudo apt update && sudo apt install cmake build-essential unzip curl patch git 若需运行测试,还需安装: bash sudo apt install cmocka lcov covr 注:此 SDK 在 GCC 和 G++ 8 版本上开发和测试,若在其他版本遇到构建问题,请尝试使用指定版本。

2. 配置构建参数

编辑根目录下的 CMakeList.txt 文件,更新构建配置: - 单元测试支持:将 Z_RUN_TESTS 选项从 OFF 改为 ONcmake OPTION(Z_RUN_TESTS "Run unit tests" ON) - TLS 支持:将 Z_ENABLE_TLS 的值更新为 ON,并配置是否使用 TLS 客户端证书,若启用 TLS 模式,更新 X.509 证书的位置。 cmake OPTION(Z_ENABLE_TLS "Enable TLS for Secure connection" ON) OPTION(Z_USE_CLIENT_CERTS "Use Client side Certs for Secure connection" OFF) SET(CA_CRT "/home/user/mycerts/rootCA.crt") SET(CLIENT_KEY "/home/user/mycerts/client.key") SET(CLIENT_CRT "/home/user/mycerts/client.crt")

3. 构建源码

创建一个构建文件夹来保存临时构建配置: bash mkdir build cd build 执行构建命令: bash cmake .. make 生成的库和二进制文件将位于 build 文件夹内。

4. 尝试示例

本 SDK 在 projects 目录下有一些实现示例。默认情况下,所有示例在 build/CMakeLists.txt 的构建过程中被注释掉,需要在启动构建前取消注释所需的示例。 编辑 projects/basic/basic.c,在第 80 行更新 MqttUserNameDeviceTokenc zclient_init(&client, "<YOUR-DEVICE-MQTT-USERNAME>", "<YOUR-DEVICE-TOKEN>", CRT_PARSE_MODE, pRootCACert, pDeviceCert, pDevicePrivateKey, pDeviceCertParsword, logConfig); 对于非 TLS 模式,与证书相关的参数(如 pRootCACertpDeviceCertpDevicePrivateKeypDeviceCertPassword)可以为空。 构建完成后,生成的二进制文件将位于 build/projects 文件夹。切换到 build/basic 文件夹并运行 ./basic 来执行基本示例。

5. 移植/交叉编译

对于树莓派和 OpenWRT 平台,可参考相应的文档进行移植或交叉编译: - Raspberry Pi - OpenWRT 若要将此 SDK 移植到自定义设备,需创建一个包含目标设备交叉编译配置的 toolchain.cmake 文件,并在调用构建时将 -DCMAKE_TOOLCHAIN_FILE={path}/toolchain.cmake 追加到 cmake 命令中。

6. 生成可导出的库包

Build Exportable Library 的值更新为 ON,可生成包含所需依赖源和头文件的 Zoho IoT 库包文件夹: cmake OPTION(BUILD_EXPORTABLE_LIB "Build Exportable Library" ON) 构建 Zoho SDK 库时,Zoho IoT 库包将在 build 目录中创建。开发者可将此库包直接导入到源文件夹中进行编译,编译时需包含必要的特性,如 -DMQTTCLIENT_PLATFORM_HEADER=tls_config.h-DZ_LOG_LEVEL=LOG_DEBUG 等。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】