蜂窝接口演示(双向验证)
本页内容:
简介
FreeRTOS 提供了一套专为 IoT 应用程序设计的网络堆栈。应用程序可以访问
不同级别的通信协议(MQTT、HTTP、安全套接字等)。通用连接
技术(如以太网、Wi-Fi 和 BLE)已与
FreeRTOS 的网络堆栈集成,还预集成了多种微控制器和模块。
本项目中的演示将展示如何使用蜂窝连接与 MQTT 代理
(例如 AWS IoT Core)建立经过双向验证的 MQTT 连接。相关演示均使用
来自外部项目的子模块蜂窝接口库
。该蜂窝接口库通过统一的 API 提供了一些常用的
蜂窝调制解调器的功能。
FreeRTOS 的 MQTT 和 HTTP 库使用抽象传输
接口以通用方式发送/接收数据。本项目中的演示
除蜂窝接口库公开的统一 API 外,还提供了传输接口的实现
。
硬件设置
本项目中的演示可以在
FreeRTOS Windows 模拟器中运行。您需要一台 Windows 计算机和一个受支持的蜂窝调制解调器
来运行演示。构建演示时需要 Visual Studio,
如免费社区版 Visual Studio。
FreeRTOS Windows 模拟器使用 COM 端口与蜂窝模块进行通信。
请按照如下步骤设置蜂窝模块通信。
将蜂窝模块连接到计算机。大多数蜂窝开发套件都有 USB 连接器,
因此只需将其连接到计算机的 USB 端口,然后在 Windows 设备管理器中查找 COM 端口即可。
例如,如下图所示,连接调制解调器时,您会看到新的 COM69 出现。如果
蜂窝开发套件没有 USB,请使用
如下 USB 适配器。
请使用 Putty 或
任何其他终端工具验证与蜂窝模块的连接。有关波特率、奇偶校验和流量控制等设置,
请参阅蜂窝模块手册。在终端工具中,
输入 "ATE1",调制解调器会返回 "OK"。您可能还会看到 "ATE1" 的回显,
具体取决于您的调制解调器设置。输入 "AT",调制解调器会返回 "OK"。
组件和接口
本项目使用其他 GitHub 项目中的五 (5) 个子模块,
如下图黄色方框所示。
- 蜂窝演示应用程序
与
coreMQTT 演示的功能大致相同,但添加了
将蜂窝设置为传输的逻辑。(最初的 coreMQTT 演示专为 FreeRTOS
Windows 模拟器上的 Wi-Fi 而设计。)
- MQTT 库
需要传输接口来发送和接收数据包,
该库是 coreMQTT 项目的子模块。
- mbedTLS 库
需要 TLS 移植接口
才能在 FreeRTOS 上运行。
- 蜂窝接口库使用通信接口
通过 UART 连接与蜂窝调制解调器通信。
开发者参考和 API 文档
请参阅托管 doxygen。
源代码组织
Visual Studio 的演示项目文件名为 <xyz>_mqtt_mutual_auth_demo.sln,
其中,xyz 是蜂窝调制解调器的名称。这些文件位于
GitHub 上的 FreeRTOS_Cellular_Interface_Windows_Simulator 存储库,目录如下:
-
MQTT_Mutual_Auth_Demo_with_BG96
-
MQTT_Mutual_Auth_Demo_with_HL7802
-
MQTT_Mutual_Auth_Demo_with_SARA_R4
./FreeRTOS-Plus
├── Demo
│ ├── FreeRTOS_Cellular_Interface_Windows_Simulator
│ │ ├── Common
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── FreeRTOSIPConfig.h
│ │ │ ├── MutualAuthMQTTExample.c
│ │ │ ├── cellular_platform.c
│ │ │ ├── cellular_platform.h
│ │ │ ├── cellular_setup.c
│ │ │ ├── comm_if_windows.c
│ │ │ ├── core_mqtt_config.h
│ │ │ ├── main.c
│ │ │ └── mbedtls_config.h
│ │ ├── MQTT_Mutual_Auth_Demo_with_BG96 ( demo project for Quectel BG96 )
│ │ │ ├── WIN32.vcxproj
│ │ │ ├── WIN32.vcxproj.filters
│ │ │ ├── WIN32.vcxproj.user
│ │ │ ├── cellular_config.h
│ │ │ ├── demo_config.h
│ │ │ └── mqtt_mutual_auth_demo_with_bg96.sln
│ │ ├── MQTT_Mutual_Auth_Demo_with_HL7802 ( demo project for Sierra Wireless HL7802 )
│ │ └── MQTT_Mutual_Auth_Demo_with_SARA_R4 ( demo project for U-Blox Sara-R4 )
│ │
├── Source
│ ├── Application-Protocols
│ │ ├── coreMQTT ( submodule : coreMQTT )
│ ├── FreeRTOS-Cellular-Interface ( submodule : FreeRTOS-Cellular-Interface )
│ ├── FreeRTOS-Cellular-Modules
│ │ ├── bg96 ( submodule : Lab-FreeRTOS-Cellular-Interface-Reference-Quectel-BG96 )
│ │ ├── hl7802 ( submodule : Lab-FreeRTOS-Cellular-Interface-Reference-Sierra-Wireless-HL7802 )
│ │ └── sara-r4 ( submodule : Lab-FreeRTOS-Cellular-Interface-Reference-ublox-SARA-R4 )
│ ├── Utilities
│ │ ├── backoff_algorithm ( submodule : backoffAlgorithm )
│ │ ├── logging
│ │ ├── mbedtls_freertos
│ │ │ ├── mbedtls_bio_freertos_cellular.c
│ │ │ └── ( code for adapting mbedtls with cellular socket )
│ │ │ ├── mbedtls_bio_freertos_plus_tcp.c
│ │ │ ├── mbedtls_freertos_port.c
│ │ │ └── threading_alt.h
├── ThirdParty
│ ├── mbedtls ( submodule : mbedtls )
配置应用程序设置
配置蜂窝网络
蜂窝配置中的参数
cellular_config.h(位于
"MQTT_Mutual_Auth_Demo_with_<cellular_module>/cellular_config.h")必须
根据您的网络环境进行修改。
配置 |
描述 |
值 |
CELLULAR_COMM_INTERFACE_PORT |
蜂窝通信接口利用计算机上的 COM 端口
与 Windows 模拟器上的蜂窝模块通信。 |
连接到蜂窝模块的 COM 端口。 |
CELLULAR_APN |
网络注册的默认 APN。 |
根据您的网络运营商指定此值。 |
CELLULAR_PDN_CONTEXT_ID |
蜂窝网络的 PDN 上下文 ID。 |
默认值为 CELLULAR_PDN_CONTEXT_ID_MIN。 |
CELLULAR_PDN_CONNECT_TIMEOUT |
网络注册的 PDN 连接超时。 |
默认值为 100000 毫秒。 |
配置 MQTT 代理
有关连接到 MQTT 代理的配置,详见演示配置
demo_config.h(位于
"MQTT_Mutual_Auth_Demo_with_<cellular_module>/demo_config.h")。具体请参阅文档
MQTT 双向验证演示。
配置 COM 端口设置
有关 COM 端口设置,请参阅蜂窝模块文档。如有必要,请更新
comm_if_windows.c 中的设置。
配置其他子模块
"FreeRTOSConfig.h"、"mbedtls_config.h" 和 "core_mqtt_config.h"(位于
"MQTT_Mutual_Auth_Demo_with_<cellular_module> 中)包含
相应子模块的配置。
演示执行步骤流程
演示应用程序执行三类操作。搜索
下图中的函数名称,即可在源代码中找到执行这些操作的确切位置。
- 注册蜂窝网络。(请参阅
cellular_setup.c。)
- 使用 MQTT 代理建立与 AWS IoT 的安全连接。(请参阅
using_mbedtls.c。)
- 执行 MQTT 操作。(请参阅
MutualAuthMQTTExample.c。)
下图说明了演示应用程序与其他组件之间的交互。
演示流程点击图像放大
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.