项目简介
本项目是基于C语言的Azure IoTHub MQTT客户端示例,适用于运行最新mbed OS的mbed开发板。对原示例进行修改,使其使用mbed OS 5.x,并将SSL/TLS库切换为mbed TLS,满足使用最新mbed OS的需求。
项目的主要特性和功能
- MQTT协议支持:实现MQTT协议,支持MQTT 3.1.1版本。
- 连接管理:可连接到Azure IoTHub或其他MQTT服务器,具备断开连接和保持连接状态的功能。
- 消息发布与订阅:支持发布消息到指定主题,以及订阅和取消订阅主题。
- 错误处理:有错误处理机制,能处理连接失败、解析失败、内存不足等情况。
- 日志追踪:提供日志追踪功能,便于调试和测试。
- 安全性:支持TLS/SSL加密,保障数据安全。
- 跨平台:针对嵌入式系统优化,支持在资源受限环境中运行。
安装使用步骤
前提条件
- 需获取一块支持以太网的mbed开发板,如ST NUCLEO - F429ZI 或 NXP/Freescal FRDM - K64F。
- 使用 GNU ARM Embedded Toolchain 作为编译器,版本为 6 - 2017 - q2 - update。
- 安装
mbed CLI
,参考 mbed CLI | mbed OS 5 Handbook 进行安装和使用。 - 获取Azure IoTHub设备凭证,参考 The Azure IoT device SDK for C | Microsoft Docs 了解详情。
构建示例步骤
- 将示例复制到本地文件夹。
- 修改
iothub_client_sample_mqtt.c
中定义的设备连接字符串:C static const char* connectionString = "[device connection string]";
将其替换为你的设备连接字符串。 - 切换工作目录到
mbedos_iothub_client_sample_mqtt
,根据不同开发板使用以下命令进行构建: - 为
ST Nucleo F429ZI
开发板构建:sh mbed compile --profile azure_debug.json -t GCC_ARM -m NUCLEO_F429ZI
- 为
NXP/Freescale K64F
开发板构建:sh mbed compile --profile azure_debug.json -t GCC_ARM -m K64F
- 将构建好的应用程序
mbedos_iothub_client_sample_mqtt\BUILD\NUCLEO_F429ZI\GCC_ARM\mbedos_iothub_client_sample_mqtt.bin
复制到开发板。 - 使用 putty 连接到开发板的串口,以监控调试消息。默认串口设置为 9600 8N1。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】