MQTT 库,版本 2.0.0 - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

MQTT 库,版本 2.0.0

概览

您可以使用 FreeRTOS MQTT 库来创建发布和订阅 MQTT 主题的应用程序,就像网络上的 MQTT 客户端。FreeRTOS MQTT 库实施 MQTT 3.1.1 标准以便与 AWS IoT MQTT 服务器兼容。此库还可与其他 MQTT 服务器兼容。

FreeRTOS MQTT 库的源文件位于 freertos/.../mqtt 中。这些文件实施版本 2.0.0 的 FreeRTOS MQTT 库。FreeRTOS 还包括面向 FreeRTOS MQTT 库版本 1.0.0 的向后兼容层。有关 FreeRTOS MQTT 版本 1.0.0 的信息,请参阅MQTT 库,版本 1.0.0

依赖项和要求

FreeRTOS MQTT 库具有以下依赖项:

  • 线性容器库

  • 日志记录库(如果 AWS_IOT_MQTT_LOG_LEVEL 配置参数未设置为 AWS_IOT_LOG_NONE)。

  • 静态内存库(如果仅为静态内存)。

  • 任务池库

  • 平台层,提供了操作系统接口以实施线程管理、时钟函数、联网和其他平台级功能

  • C 标准库标头

下图演示了这些依赖项。

功能

FreeRTOS MQTT 库具有以下功能:

  • 默认情况下,该库具有完全异步的 MQTT API。您可以选择以同步方式将此库与 AwsIotMqtt_Wait 函数结合使用。

  • 此库是线程感知的,可并行化以实现高吞吐量。

  • 此库具有可扩展的性能和占用空间。使用配置设置来根据系统资源定制库。

API 参考

适用于嵌入式 C 的 FreeRTOS 和 AWS IoT 开发工具包具有相同的 MQTT v2.0.0 库 API。有关完整 API 参考,请参阅 MQTT (v2.0.0) C 开发工具包 API 参考

示例用法

有关 FreeRTOS MQTT 库的示例用法,请参阅 iot_demo_mqtt.c 中定义的 MQTT 演示应用程序。

MQTT 演示说明了 MQTT 的订阅-发布工作流程。在订阅多个主题筛选条件后,应用程序会将数据突增发布到各种主题名称。当每条消息到达时,演示会将确认消息发送回 MQTT 服务器。

要使用 MQTT 演示,您必须在 AWS IoT 中创建一个事物,包括证书和策略。有关更多信息,请参阅 AWS IoT 入门

全局演示配置参数

您必须为 freertos/demos/include/aws_clientcredential.h 文件中的以下常量设置值:

clientcredentialMQTT_BROKER_ENDPOINT

您的 AWS IoT 终端节点。

clientcredentialIOT_THING_NAME

IoT 事物的名称。

clientcredentialWIFI_SSID

Wi-Fi 网络的 SSID。

clientcredentialWIFI_PASSWORD

Wi-Fi 密码。

clientcredentialWIFI_SECURITY

Wi-Fi 网络所使用的安全类型。

您还必须为 freertos/demos/include/aws_clientcredential_keys.h 文件中的以下常量设置值:

keyCLIENT_CERTIFICATE_PEM

与事物关联的证书 PEM。

keyCLIENT_PRIVATE_KEY_PEM

与事物关联的私有密钥 PEM。

MQTT 演示配置参数

这些配置参数适用于 MQTT 演示。

AWS_IOT_DEMO_MQTT_PUBLISH_BURST_SIZE

每次突增时要发布的消息的数目。

AWS_IOT_DEMO_MQTT_PUBLISH_BURST_COUNT

本演示中的发布突增数。