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

Azure IoT 设备开发

Azure IoT 是可以连接、监视和控制 IoT 设备的托管服务与平台服务的集合。 Azure IoT 为开发人员提供一组全面的选项。 你的选项包括设备平台、支持性云服务、SDK、MQTT 支持以及用于生成设备支持的云应用程序的工具。

本文为想要开始使用 Azure IoT 的开发人员概述了几条关键注意事项。

设备开发路径

本文介绍两种常见的设备开发路径。 每个路径都包含一组相关的开发选项和任务。

  • 常规设备开发:与现代开发实践相一致,面向高阶语言,在 Windows 或 Linux 等通用操作系统上执行。

    注意

    如果设备能够运行通用操作系统,我们建议遵循常规设备开发路径。 该路径提供更丰富的一组开发选项。

  • 嵌入式设备开发: 描述面向资源受限型设备的开发。 你通常会使用资源受限型设备来降低每单位成本、功耗或设备大小。 这些设备能够直接控制其执行所在的硬件平台。

常规设备开发

某些开发人员需要调整现有常规用途设备,以连接到云并集成到其 IoT 解决方案中。 这些设备能够支持高阶语言(例如 C# 或 Python),并且往往支持 Windows 或 Linux 等可靠的通用操作系统。 常见目标设备包括电脑、容器、Raspberry Pi 和移动设备。

常规设备开发人员不是大规模开发受限型设备,而是专注于实现其云解决方案所需的特定 IoT 方案。 一些开发人员也会出于其云解决方案的原因而使用受限型设备。 对于使用资源受限型设备的开发人员,请参阅嵌入式设备开发路径。

重要

有关用于常规设备开发的 SDK 的信息,请参阅设备 SDK

嵌入式设备开发

嵌入式开发面向内存和处理能力有限的受限型设备。 与传统的开发平台相比,受限型设备会限制可实现的目标。

嵌入式设备通常使用实时操作系统 (RTOS),或者根本不使用操作系统。 由于缺少通用操作系统,嵌入式设备可以全面控制其硬件。 这一事实使得嵌入式设备成了实时系统的极好选择。

当前的嵌入式 SDK 面向 C 语言。 嵌入式 SDK 不提供操作系统,也不提供 Eclipse ThreadX 支持。 它们是在考虑到嵌入式目标的前提下设计的。 设计注意事项包括尽最大限度减少空间占用量,并采用无需分配内存的设计。

重要

有关用于嵌入式设备开发的 SDK 的信息,请参阅嵌入式设备 SDK

选择硬件

Azure IoT 设备是 IoT 解决方案的构建基块,负责观察环境并与之交互。 有许多不同类型的 IoT 设备,了解现存的设备类型以及它们如何影响开发过程会很有帮助。

有关本文中所述设备类型之间的差异的详细信息,请参阅关于 IoT 设备类型

选择 SDK

Azure IoT 设备开发人员可以借助各种不同的 SDK、协议、工具来生成设备支持的云应用程序。

有两个主要的选项可用于连接设备并与 IoT 中心通信:

  • 使用 Azure IoT SDK。 在大多数情况下,我们建议使用 Azure IoT SDK,而不是直接使用 MQTT。 SDK 能使开发工作变得简单有序,并可简化连接和管理设备的复杂性。 IoT 中心支持 MQTT v3.1.1 协议,IoT SDK 简化了使用 MQTT 与 IoT 中心通信的过程。
  • 直接使用 MQTT 协议。 构建直接使用 MQTT 的 IoT 中心解决方案有一些优势。 例如,可以直接使用 MQTT 而不使用 SDK 的解决方案可以基于开放的 MQTT 标准构建。 基于标准的方法使解决方案更具可移植性,并使你能够更好地控制设备连接和通信的方式。 但是,IoT 中心不是功能完备的 MQTT 中转站,不支持 MQTT v3.1.1 标准中指定的所有行为。 对 MQTT v3.1.1 的部分支持增加了开发成本和复杂性。 设备开发人员应权衡使用 IoT 设备 SDK 与直接使用 MQTT 的利弊。 有关详细信息,请参阅使用 MQTT 协议与 IoT 中心通信

有三组 IoT SDK 用于设备开发:

  • 设备 SDK(用于通过高阶语言将现有通用设备连接到 IoT 应用程序)
  • 嵌入式设备 SDK(用于将资源受限型设备连接到 IoT 应用程序)
  • 服务 SDK(用于生成可将设备连接到服务的 Azure IoT 解决方案)

若要详细了解如何选择 Azure IoT 设备或服务 SDK,请参阅 Azure IoT SDK

选择服务

开发过程中的一个关键步骤是选择要将设备连接到的服务。 有两个主要的 Azure IoT 服务选项用于连接和管理设备:IoT 中心和 IoT Central。

  • Azure IoT 中心。 使用 IoT 中心来托管 IoT 应用程序并连接设备。 IoT 中心是一种平台即服务 (PaaS) 应用程序,它充当集中消息中心,用于 IoT 应用程序与连接设备之间的双向通信。 IoT 中心可以进行缩放,以支持数百万台设备。 与其他 Azure IoT 服务相比,IoT 中心提供了对应用程序设计的最大控制和自定义。 它还提供了大多数用于使用该服务的开发人员工具选项,但代价是开发和管理复杂性有所增加。
  • Azure IoT Central。 IoT Central 旨在简化使用 IoT 解决方案的过程。 可以使用它作为概念证明来评估 IoT 解决方案。 IoT Central 是一种服务型软件 (SaaS) 应用程序,它提供 Web UI 来简化创建应用程序以及连接和管理设备的任务。 IoT Central 使用 IoT 中心来创建和管理应用程序,但使大多数详细信息对用户公开透明。

用于连接和管理设备的工具

选择了要使用的硬件和设备 SDK 后,可以使用几个开发人员工具选项。 使用这些工具,可以将设备连接到 IoT 中心并对其进行管理。 下表汇总了常见的工具选项。

工具 文档 说明
Azure 门户 使用 Azure 门户创建 IoT 中心 适合 IoT 中心和设备的基于浏览器的门户。 还适用于其他 Azure 资源,包括 IoT Central。
Azure IoT 资源管理器 Azure IoT 资源管理器 无法创建 IoT 中心。 连接到现有 IoT 中心来管理设备。 通常与 CLI 或门户一起使用。
Azure CLI 使用 CLI 创建 IoT 中心 用于创建和管理 IoT 应用程序的命令行接口。
Azure PowerShell 使用 PowerShell 创建 IoT 中心 用于创建和管理 IoT 应用程序的 PowerShell 接口
适用于 VS Code 的 Azure IoT Tools 使用 Tools for VS Code 创建 IoT 中心 适合 IoT 中心应用程序的 VS Code 扩展。

注意

除了先前列出的工具,你还可使用 REST API、Azure SDK 或 Azure 资源管理器模板以编程方式创建和管理 IoT 应用程序。 有关详细信息,请参阅 IoT 中心服务文档。

后续步骤

若要详细了解可用于将设备连接到 Azure IoT 的设备 SDK,请参阅以下文章。

若要开始动手进行设备开发,请选择与所使用的设备相关的设备开发教程。 以下教程是常规设备开发或嵌入式设备开发的良好起点。