IoT 裝置開發

本概觀介紹開發連線至一般 Azure IoT 解決方案之裝置的重要概念。 每個區段都包含提供進一步詳細數據和指引的內容連結。

下圖顯示一般 IoT 解決方案中元件的高階檢視。 本文著重於圖表中顯示的裝置和閘道。

圖表顯示高階 IoT 方案架構,醒目提示裝置連線的區域。

在 Azure IoT 中,裝置開發人員會撰寫程式碼,以在解決方案的裝置上執行。 此程式碼通常:

  • 建立與雲端端點的安全連線。
  • 將從附加感應器收集的遙測資料傳送至雲端。
  • 管理裝置狀態,並將該狀態與雲端同步。
  • 回應從雲端傳送的命令。
  • 啟用從雲端安裝軟體更新。
  • 可讓裝置在與雲端中斷連線時保持運作。

裝置類型

IoT 裝置可以分為兩大類別:微控制器 (MCU) 和微處理器 (MPU):

  • MCU 較不昂貴而且較 MPU 容易操作。
  • MCU 包含許多功能,例如晶片本身中的記憶體、介面和 I/O。 MPU 會從支援晶片的元件存取這項功能。
  • MCU 通常會使用即時 OS (RTOS) 或裸機執行 (無 OS),並對外部事件提供即時回應和高確定性的回應。 MPU 通常會執行一般用途的 OS,例如提供非確定性即時回應的 Windows、Linux 或 macOS。 通常無法保證工作完成的時間。

特製化硬體和作業系統的範例包括:

Windows for IoT 是內嵌版本的 Windows for MPU,具有雲端連線能力,可讓您使用輕鬆布建和管理來建立安全的裝置。

Eclipse ThreadX 是 IOT 和由 MCU 提供電源的邊緣裝置的即時作業系統。 Eclipse ThreadX 的設計訴求是支援電池供電且快快閃記憶體不足 64 KB 的高限制裝置。

Azure Sphere 是一個安全、高階的應用程式平臺,具有因特網連線裝置的內建通訊和安全性功能。 它包含安全、連線、交叉 MCU、自定義高階 Linux 型作業系統,以及提供持續、可更新安全性的雲端式安全性服務。

Primitives

Azure IoT 裝置可以使用下列基本類型來與雲端互動:

  • 裝置到雲端訊息,將時間序列遙測資料傳送至雲端。 例如,從連接到裝置的感測器收集的溫度數據。
  • 媒體檔案的檔案上傳,例如擷取的影像和視訊。 間歇性連線的裝置可以傳送遙測資料批次。 裝置可以壓縮上傳以節省頻寬。
  • 裝置對應項可與雲端共用和同步處理狀態資料。 例如,裝置可以使用裝置對應項向雲端報告其控制的閥目前的狀態,以及從雲端接收所需的目標溫度。
  • 數位對應項代表數位世界中的裝置。 例如,數位對應項可以代表裝置的實體位置、功能,以及與其他裝置的關聯性。
  • 從雲端接收命令的直接方法。 直接方法可以有參數並傳回回應。 例如,雲端可以呼叫直接方法來要求裝置在30秒內重新啟動。
  • 從雲端接收單向通知的從雲端到裝置訊息。 例如,更新已準備好下載的通知。

若要深入瞭解,請參閱 裝置到雲端通訊指引雲端到裝置通訊指引

裝置 SDK

裝置 SDK 提供高階抽象概念,可讓您在不了解基礎通訊協定的情況下使用基本類型。 裝置 SDK 也會處理建立與雲端安全連線及驗證裝置的詳細資料。

針對 MPU 裝置,裝置 SDK 適用於下列語言:

針對 MCU 裝置,請參閱:

範例和指引

所有裝置 SDK 都包含範例,示範如何使用 SDK 連線到雲端、傳送遙測,以及使用其他基本類型。

IoT 裝置開發網站包含教學課程和操作指南,示範如何實作各種裝置類型和案例的程序代碼。

您可以在程式代碼範例瀏覽器中找到更多範例

若要深入瞭解如何實作對端點的自動重新連線,請參閱 管理裝置重新連線以建立復原的應用程式

沒有裝置 SDK 的裝置開發

雖然建議您使用其中一個裝置 SDK,但在某些情況下,您可能不想這麼做。 在這些情況下,您的裝置程式碼必須直接使用 IoT 中樞和裝置佈建服務 (DPS) 支援的其中一種通訊協定。

如需詳細資訊,請參閱

裝置模型化

IoT 隨插即用 可讓解決方案建置者整合IoT裝置與其解決方案,而不需要任何手動設定。 IoT 隨插即用 的核心是裝置型號,裝置會用來將其功能公告給 IoT 隨插即用 啟用的應用程式,例如IoT Central。 此模型是結構化的一組元素,可定義:

  • 屬性 ,表示裝置或其他實體的唯讀或可寫入狀態。 例如,裝置序號可能是只讀屬性,而控溫器上的目標溫度可能是可寫入的屬性。
  • 遙測,這是裝置所發出的數據,無論數據是感測器讀數的一般數據流、偶爾的錯誤或資訊訊息。
  • 描述 可在裝置上完成之函式或作業的命令。 例如,命令可以重新啟動閘道或使用遠端相機拍照。

您可以將這些元素分組在介面中,以跨模型重複使用,讓共同作業更容易並加速開發。

此模型是使用 Digital Twins 定義語言 (DTDL) 來指定。

IoT 隨插即用、模型化和 DTDL 的使用是選擇性的。 您可以使用IoT裝置基本類型,而不需使用 IoT 隨插即用 或模型。 Azure Digital Twins 服務也會使用 DTDL 模型,根據建築物或工廠等環境的數位模型來建立對應項圖形。

身為裝置開發人員,當您實作 IoT 隨插即用 裝置時,會遵循一組慣例。 這些慣例會使用裝置 SDK 中可用的基本類型,在程式代碼中實作裝置模型的標準方式。

若要深入了解,請參閱:

容器化裝置程式碼

如果您使用容器,例如在 Docker 中執行裝置程式代碼,您可以使用容器基礎結構的功能,將程式代碼部署至裝置。 容器也可讓您為程式碼定義執行時間環境,並安裝所有必要的程式庫和套件版本。 容器可讓您更輕鬆地部署更新,以及管理 IoT 裝置的生命週期。

Azure IoT Edge 會在容器中執行裝置程式碼。 您可以使用 Azure IoT Edge 將程式碼模組部署至您的裝置。 若要深入瞭解,請參閱 開發您自己的IoT Edge模組

提示

Azure IoT Edge 可啟用多個案例。 除了在容器中執行IoT裝置程式代碼之外,您還可以使用 Azure IoT Edge 在裝置上執行 Azure 服務,並實 現場閘道。 如需詳細資訊,請參閱 什麼是 Azure IoT Edge?

開發工具

下表列出一些可用的IoT開發工具:

工具 描述
Azure IoT 中樞 (VS Code 擴充功能) 此 VS Code 擴充功能可讓您從 VS Code 中管理 IoT 中樞 資源和裝置。
Azure IoT 總管 這個跨平臺工具可讓您從傳統型應用程式管理 IoT 中樞 資源和裝置。
適用於 Azure CLI 的 Azure IoT 擴充功能 此 CLI 延伸模組包含、 等az iot device simulateaz iot device c2d-message命令,可az iot hub monitor-events協助您測試與裝置的互動。

下一步

既然您已瞭解 Azure IoT 解決方案中的裝置開發概觀,一些建議的後續步驟包括: