项目简介
Zoho IoT C SDK 致力于让智能(网关)设备便捷地与 Zoho 云平台建立安全连接。它借助轻量级的 MQTT 消息协议,通过实现 TLS 安全机制,实现设备与云之间数据的安全交换。
项目的主要特性和功能
- 连接性:助力设备简单地与服务器建立可靠的 MQTT 连接,用于传输设备遥测数据和接收云端命令。
- 安全性:通过 TLS 保障设备与云之间通信数据包的安全,支持服务器和客户端的 X.509 证书配置。
- 数据收集:内置对 JSON 数据格式的支持,可依据传感器采集的数据生成遥测负载,也支持用户自定义 JSON 格式。
- 设备可移植性:以开源形式分发,支持不同平台和硬件架构上运行的各种设备,已在树莓派和基于 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
改为 ON
。
cmake
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 行更新 MqttUserName
和 DeviceToken
:
c
zclient_init(&client, "<YOUR-DEVICE-MQTT-USERNAME>", "<YOUR-DEVICE-TOKEN>", CRT_PARSE_MODE, pRootCACert, pDeviceCert, pDevicePrivateKey, pDeviceCertParsword, logConfig);
对于非 TLS 模式,与证书相关的参数(如 pRootCACert
、pDeviceCert
、pDevicePrivateKey
、pDeviceCertPassword
)可以为空。
构建完成后,生成的二进制文件将位于 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】