你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:将 MXCHIP AZ3166 Devkit 连接到 IoT Central

适用于嵌入式设备开发
总完成时间:30 分钟

浏览代码

本快速入门介绍如何使用 Azure RTOS 将 MXCHIP AZ3166 IoT DevKit(后称 MXCHIP DevKit)连接到 Azure IoT。

你将完成以下任务:

  • 安装一组嵌入式开发工具,用于以 C 语言编写 MXCHIP DevKit 的程序
  • 生成一个映像并将其刷入到 MXCHIP DevKit
  • 使用 Azure IoT Central 创建云组件、查看属性、查看设备遥测和调用直接命令

先决条件

  • 运行 Windows 10 的电脑

  • 用于克隆存储库的 Git

  • 硬件

  • 一个有效的 Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户

准备开发环境

若要设置开发环境,请先克隆一个 GitHub 存储库,其中包含本快速入门所需的所有资产。 然后安装一组编程工具。

克隆本快速入门所需的存储库

克隆以下存储库以下载所有示例设备代码、安装脚本和文档的脱机版本。 如果以前在另一篇快速入门中克隆过此存储库,则无需再次执行此操作。

要克隆存储库,请运行以下命令:

git clone --recursive https://github.com/azure-rtos/getting-started.git

安装工具

克隆的存储库包含用于安装和配置所需工具的安装脚本。 如果在另一篇嵌入式设备快速入门中安装了这些工具,则无需再次执行此操作。

注意

安装脚本将安装以下工具:

若要安装工具:

  1. 在文件资源管理器中,导航到存储库中的以下路径,并运行名为 get-toolchain.bat 的安装脚本:

    getting-started\tools\get-toolchain.bat

  2. 安装后,打开一个新的控制台窗口来识别安装脚本所做的配置更改。 使用此控制台完成本快速入门中的其余编程任务。 可以使用 Windows CMD、PowerShell 或 Git Bash for Windows。

  3. 运行以下代码,确认已安装 CMake 版本3.14 或更高版本。

    cmake --version
    

创建云组件

创建 IoT Central 应用程序

可以通过多种方式将设备连接到 Azure IoT。 本部分介绍如何使用 Azure IoT Central 连接设备。 IoT Central 是一个 IoT 应用程序平台,可降低创建和管理 IoT 解决方案的成本和复杂性。

要创建新的应用程序:

  1. Azure IoT Central 门户的侧面导航菜单中选择 “编译”

    注意

    如果有现成的 IoT Central 应用程序,则可以用来完成本文中的步骤,而不必创建新的应用程序。 在这种情况下,如果要使用现有的设备 ID,我们建议你创建一个新设备,或者删除设备,然后重新创建设备。

  2. “自定义应用” 磁贴中选择 “创建应用”

    在 Azure IoT Central 中创建自定义应用的屏幕截图

  3. 添加应用程序名称和 URL。

  4. 选择标准定价计划之一。 选择“目录”、“Azure 订阅”和“位置”。 若要了解如何创建 IoT Central 应用程序,请参阅创建 IoT Central 应用程序。 若要了解定价,请参阅 Azure IoT Central 定价

    在 Azure IoT Central 中输入新应用的信息的屏幕截图

  5. 选择“创建” 。 IoT Central 在预配应用程序后,会自动将你重定向到新的应用程序仪表板。

创建新设备

在本部分中,将使用 IoT Central 应用程序仪表板创建新设备。 在后面的部分中,将使用新创建的设备的连接信息安全连接到你的物理设备。

创建设备:

  1. 在应用程序仪表板中,选择侧面导航菜单中的“设备”。

  2. “所有设备” 窗格中选择 “创建设备” 以打开 “新建设备” 窗口。 (如果要重复使用已有一个或多个设备的现有应用程序,请选择 “+ 新建” 以打开该窗口。)

  3. 将“设备模板”保持设为“未分配”。

  4. 填写所需的设备名称和设备 ID。

    在 Azure IoT Central 中输入新设备的信息的屏幕截图

  5. 选择“创建”按钮。

  6. 新创建的设备显示在“所有设备”列表中。 选择设备名称以显示详细信息。

  7. 在右上方的菜单栏中选择“连接”可显示连接信息(用于在下一节中配置设备)。

    Azure IoT Central 中的设备连接详细信息的屏幕截图

  8. 请注意,“连接”对话框中显示的以下连接字符串参数的连接值。 将在下一步中将这些值添加到配置文件中:

    • ID scope
    • Device ID
    • Primary key

准备设备

要将 MXCHIP DevKit 连接到 Azure,需要修改 Wi-Fi 和 Azure IoT 设置的配置文件,重建映像,并将映像刷写到设备。

添加配置

  1. 在文本编辑器中打开以下文件:

    getting-started\MXChip\AZ3166\app\azure_config.h

  2. 在本地环境中,将 Wi-Fi 常量设置为以下值。

    常量名称
    WIFI_SSID {Wi-Fi SSID}
    WIFI_PASSWORD {Wi-Fi 密码}
    WIFI_MODE {文件中枚举的 Wi-Fi 模式值之一}
  3. 将 Azure IoT 设备信息常量设置为在创建 Azure 资源后保存的值。

    常量名称
    IOT_DPS_ID_SCOPE {ID 范围值}
    IOT_DPS_REGISTRATION_ID {设备 ID 值}
    IOT_DEVICE_SAS_KEY {主密钥值}
  4. 保存并关闭该文件。

生成映像

  1. 在控制台或文件资源管理器中,在以下路径中运行脚本 rebuild.bat 以生成映像:

    getting-started\MXChip\AZ3166\tools\rebuild.bat

  2. 生成完成后,请确认已在以下路径中创建了二进制文件:

    getting-started\MXChip\AZ3166\build\app\mxchip_azure_iot.bin

刷写映像

  1. 在 MXCHIP DevKit 上,找到“重置”按钮和 Micro USB 端口。 可在以下步骤中使用这两个组件。 下图突出显示了这两个组件:

    在 MXChip devkit 板上查找关键组件

  2. 将 Micro USB 电缆连接到 MXCHIP DevKit 上的 Micro USB 端口,然后将电缆连接到计算机。

  3. 在文件资源管理器中,找到在上一节中创建的二进制文件。

  4. 复制二进制文件 mxchip_azure_iot.bin

  5. 在文件资源管理器中,找到连接到你的计算机的 MXCHIP DevKit 设备。 设备在系统中显示为驱动器,驱动器标签为 AZ3166

  6. 将二进制文件粘贴到 MXCHIP Devkit 的根文件夹中。 刷写会自动启动,并在几秒钟内完成。

    注意

    在刷写过程中,MXCHIP DevKit 上的绿色 LED 闪烁。

确认设备连接详细信息

可以使用 Termite 应用来监视通信,并确认设备已正确设置。

  1. 启动 Termite

    提示

    如果无法将 Termite 连接到 devkit,请安装 ST-LINK 驱动程序,然后重试。 有关其他步骤,请参阅故障排除

  2. 选择“设置”。

  3. 在“串行端口设置”对话框中,检查以下设置并根据需要进行更新:

    • 波特率:115,200
    • 端口:你的 MXCHIP DevKit 连接到的端口。 如果下拉列表中有多个端口选项,则可以找到要使用的正确端口。 打开 Windows 设备管理器,查看“端口”以确定要使用的端口。

    Termite 应用中串行端口设置的屏幕截图

  4. 选择“确定”。

  5. 按设备上的“复位”按钮。 该按钮在设备上进行了标记,位于 Micro USB 连接器附近。

  6. Termite 应用中,检查以下检查点值,以确认设备已初始化并连接到 Azure IoT。

    Starting Azure thread
    
    Initializing WiFi
         MAC address: C8:93:46:8A:4C:43
         Connecting to SSID 'iot'
    SUCCESS: WiFi connected to iot
    
    Initializing DHCP
         IP address: 192.168.0.18
         Mask: 255.255.255.0
         Gateway: 192.168.0.1
    SUCCESS: DHCP initialized
    
    Initializing DNS client
         DNS address: 75.75.75.75
    SUCCESS: DNS client initialized
    
    Initializing SNTP client
         SNTP server 0.pool.ntp.org
         SNTP IP address: 38.229.71.1
         SNTP time update: May 19, 2021 20:36:6.994 UTC 
    SUCCESS: SNTP initialized
    
    Initializing Azure IoT DPS client
         DPS endpoint: global.azure-devices-provisioning.net
         DPS ID scope: ***
         Registration ID: mydevice
    SUCCESS: Azure IoT DPS client initialized
    
    Initializing Azure IoT Hub client
         Hub hostname: ***.azure-devices.net
         Device id: mydevice
         Model id: dtmi:azurertos:devkit:gsgmxchip;1
    Connected to IoT Hub
    SUCCESS: Azure IoT Hub client initialized
    

在以下步骤中,保持 Termite 处于打开状态以监视设备输出。

查看设备状态

要在 IoT Central 门户中查看设备状态,请执行以下操作:

  1. 在应用程序仪表板中,选择侧面导航菜单中的“设备”。

  2. 确认“设备状态”已更新为“已预配”。

  3. 确认“设备模板”已更新为“MXCHIP 入门指南” 。

    IoT Central 中设备状态的屏幕截图

查看遥测数据

通过 IoT Central,可以查看从设备到云的遥测数据流。

在 IoT Central 门户中查看遥测数据:

  1. 在应用程序仪表板中,选择侧面导航菜单中的“设备”。

  2. 从设备列表中选择设备。

  3. 在“概述”选项卡中,查看设备向云发送消息的实时遥测数据。

    IoT Central 中设备遥测数据的屏幕截图

    注意

    还可以使用 Termite 应用从设备监视遥测数据。

在设备上调用直接方法

还可以使用 IoT Central 来调用已在设备上实现的直接方法。 直接方法有一个名称,可以选择包含 JSON 有效负载、可配置的连接和方法超时。 在本节中,将调用一个方法让你可以打开或关闭 LED。

要在 IoT Central 门户中调用方法,请执行以下操作:

  1. 在设备页中选择“命令”选项卡。

  2. 在“状态”下拉列表中选择“True”,然后选择“运行” 。 LED 指示灯应亮起。

    在 IoT Central 中调用设备上的直接方法的屏幕截图

  3. 在“状态”下拉列表中选择“False”,然后选择“运行” 。 LED 指示灯应关闭。

查看设备信息

可以从 IoT Central 查看设备信息。

从设备页中选择“关于”选项卡。

IoT Central 中设备信息的屏幕截图

提示

若要自定义这些视图,请编辑设备模板

故障排除和调试

如果在生成设备代码、刷写设备或进行连接时遇到问题,请参阅故障排除

要调试应用程序,请参阅使用 Visual Studio Code 进行调试

清理资源

如果不再需要本快速入门中创建的 Azure 资源,可以从 IoT Central 门户将其删除。

要删除整个 Azure IoT Central 示例应用程序及其所有设备和资源,请执行以下操作:

  1. 选择“管理”>“你的应用程序”。
  2. 选择“删除”。

后续步骤

在本快速入门中,你生成了一个包含 Azure RTOS 示例代码的自定义映像,然后将该映像刷写到了 MXCHIP DevKit 设备。 还使用 IoT Central 门户创建了 Azure 资源,将 MXCHIP DevKit 安全地连接到 Azure,查看遥测数据以及发送消息。

接下来请浏览以下文章,以详细了解如何使用 IoT 设备 SDK 将设备连接到 Azure IoT。

重要

Azure RTOS 为 OEM 提供了一些组件,通过这些组件可以保护通信以及使用底层 MCU/MPU 硬件保护机制创建代码和数据隔离。 但是,每个 OEM 最终负责确保其设备满足不断变化的安全要求。