你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure IoT 是连接、监视和控制 IoT 设备的托管和平台服务的集合。 Azure IoT 为开发人员提供了一套全面的选项。 你的选项包括设备平台、支持云服务、SDK、MQTT 支持,以及用于生成支持设备的云应用程序的工具。
本文概述 Azure IoT 入门的开发人员的几个重要注意事项。
设备开发路径
本文讨论两个常见的设备开发路径。 每个路径都包含一组相关的开发选项和任务。
常规设备开发: 与新式开发实践保持一致,面向更高顺序的语言,并在常规用途作系统(如 Windows 或 Linux)上执行。
注释
如果设备能够运行常规用途作系统,建议遵循 常规设备开发 路径。 它提供了一组更丰富的开发选项。
嵌入式设备开发: 介绍面向资源约束设备的开发。 通常,使用资源受限的设备来降低单位成本、能耗或设备大小。 这些设备直接控制其执行的硬件平台。
常规设备开发
一些开发人员调整现有常规用途设备以连接到云并集成到其 IoT 解决方案中。 这些设备可以支持更高顺序的语言(如 C# 或 Python),并且通常支持可靠的常规用途作系统,例如 Windows 或 Linux。 常见目标设备包括电脑、容器、Raspberry Pis 和移动设备。
常规设备开发人员不大规模开发受约束的设备,而是专注于启用其云解决方案所需的特定 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 协议。 构建 IoT 中心解决方案以直接使用 MQTT,有一些优点。 例如,可以直接使用不带 SDK 的 MQTT 的解决方案可以构建在开放 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 中心并对其进行管理。 下表汇总了常见工具选项。
工具 | 文档 | DESCRIPTION |
---|---|---|
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 | 使用用于 VS Code 的工具创建 IoT 中心 | IoT 中心应用程序的 VS Code 扩展。 |
注释
除了前面列出的工具之外,还可以使用 REST API、Azure SDK 或 Azure 资源管理器模板以编程方式创建和管理 IoT 应用程序。 在 IoT 中心 服务文档中了解详细信息。
后续步骤
若要详细了解可用于将设备连接到 Azure IoT 的设备 SDK,请参阅以下文章。
为了开始动手开发设备,请选择与您正在使用的设备相关的开发教程。 以下教程是常规设备开发或嵌入式设备开发的良好起点。