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 通訊協定。 建置 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 中樞,並加以管理。 下表摘要說明一般工具選項。

工具 文件 描述
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 Resource Manager 範本,以程式設計方式建立及管理 IoT 應用程式。 在 IoT 中樞服務文件中深入了解。

下一步

若要深入了解可用來將裝置連線到 Azure IoT 的裝置 SDK,請參閱下列文章。

若要開始使用實際操作裝置開發,請選取裝置開發教學課程與您所使用的裝置相關。 下列教學課程是一般裝置開發或內嵌裝置開發的良好起點。