Azure IoT 设备 SDK 平台支持Azure IoT Device SDKs Platform Support

Microsoft 致力于持续扩展支持 Azure IoT 中心的设备的应用领域。Microsoft strives to continually expand the universe of Azure IoT Hub capable devices. Microsoft 在 GitHub 上发布开源设备 SDK,以帮助将设备连接到 Azure IoT 中心和设备预配服务。Microsoft publishes open-source device SDKs on GitHub to help connect devices to Azure IoT Hub and the Device Provisioning Service. 设备 SDK 适用于 C、.NET (C#)、Java、Node.js 和 Python。The device SDKs are available for C, .NET (C#), Java, Node.js, and Python. Microsoft 测试每个 SDK,确保它可以在 Microsoft SDK 和设备平台支持部分中详述的受支持配置中运行。Microsoft tests each SDK to ensure that it runs on the supported configurations detailed for it in the Microsoft SDKs and device platform support section.

除了设备 SDK 以外,Microsoft 还提供其他多种途径来使客户和开发人员能够将其设备连接到 Azure IoT:In addition to the device SDKs, Microsoft provides several other avenues to empower customers and developers to connect their devices to Azure IoT:

  • Microsoft 与多家合作伙伴公司协作,以帮助他们基于 Azure IoT C SDK 发布适用于其硬件平台的开发工具包。Microsoft collaborates with several partner companies to help them publish development kits, based on the Azure IoT C SDK, for their hardware platforms.

  • Microsoft 与其信任的合作伙伴合作,以提供不断扩充的已通过 Azure IoT 测试和认证的设备。Microsoft works with Microsoft trusted partners to provide an ever-expanding set of devices that have been tested and certified for Azure IoT.

  • Microsoft 在 Azure IoT 中心设备 C SDK 中提供了平台抽象层 (PAL),帮助开发人员轻松地将 SDK 移植到其平台。Microsoft provides a platform abstraction layer (PAL) in the Azure IoT Hub Device C SDK that helps developers to easily port the SDK to their platform. 有关详细信息,请参阅 C SDK 移植指南To learn more, see the C SDK porting guidance.

本主题提供有关 Microsoft SDK 及其支持的平台配置的信息,以及上面列出的其他每个选项。This topic provides information about the Microsoft SDKs and the platform configurations they support, as well as each of the other options listed above.

Microsoft SDK 和设备平台支持Microsoft SDKs and device platform support

Microsoft 在 GitHub 上发布适用于以下语言的开源 SDK:C、.NET (C#)、Node.js、Java 和 Python。Microsoft publishes open-source SDKs on GitHub for the following languages: C, .NET (C#), Node.js, Java, and Python. 本部分列出了 SDK 及其依赖项。The SDKs and their dependencies are listed in this section. 满足这些依赖项的任何设备平台都支持这些 SDK。The SDKs are supported on any device platform that satisfies these dependencies.

对于列出的每个 SDK,Microsoft 将会:For each of the listed SDKs, Microsoft:

  • 在多个流行平台上,针对 GitHub 中的相关 SDK 的主分支持续构建并运行端到端测试。Continuously builds and runs end-to-end tests against the master branch of the relevant SDK in GitHub on several popular platforms. 为了提供覆盖不同编译器版本的测试,我们通常会针对最新的 LTS 版本和最常用的版本进行测试。To provide test coverage across different compiler versions, we generally test against the latest LTS version and the most popular version.

  • 在适用的情况下提供安装指南或安装包。Provides installation guidance or installation packages if applicable.

  • 通过开源代码、客户贡献途径,以及产品团队参与 GitHub 问题的解决,来为 GitHub 上的 SDK 提供全面的支持。Fully supports the SDKs on GitHub with open-source code, a path for customer contributions, and product team engagement with GitHub issues.

C SDKC SDK

Azure IoT 中心 C 设备 SDK 已使用以下配置进行测试,并支持这些配置。The Azure IoT Hub C device SDK is tested with and supports the following configurations.

操作系统OS TLS 库TLS library 其他要求Additional requirements
LinuxLinux OpenSSL、WolfSSL 或 BearSSLOpenSSL, WolfSSL, or BearSSL Berkeley 套接字Berkeley sockets

可移植操作系统接口 (POSIX)Portable Operating System Interface (POSIX)
iOS 12.2iOS 12.2 OpenSSLOpenSSL 在 OSX 10.13.4 中仿真的 XCodeXCode emulated in OSX 10.13.4
Windows 10 系列Windows 10 family SChannelSChannel
Mbed OS 5.4Mbed OS 5.4 Mbed TLS 2Mbed TLS 2 MXChip IoT 开发工具包MXChip IoT dev kit
Azure Sphere OSAzure Sphere OS WolfSSLWolfSSL Azure Sphere MT3620Azure Sphere MT3620
ArduinoArduino BearSSLBearSSL ESP32 或 ESP8266ESP32 or ESP8266

Python SDKPython SDK

Azure IoT 中心 Python 设备 SDK 已使用以下配置进行测试,并支持这些配置。The Azure IoT Hub Python device SDK is tested with and supports the following configurations.

操作系统OS 编译器Compiler
LinuxLinux Python 2.7.*、3.5 或更高版本Python 2.7.*, 3.5 or later
MacOS High SierraMacOS High Sierra Python 2.7.*、3.5 或更高版本Python 2.7.*, 3.5 or later
Windows 10 系列Windows 10 family Python 2.7.*、3.5 或更高版本Python 2.7.*, 3.5 or later

只有 Python 3.5.3 或更高版本支持异步 API,我们建议使用 3.7 版或更高版本。Only Python version 3.5.3 or later support the asynchronous APIs, we recommend using version 3.7 or later.

.NET SDK.NET SDK

Azure IoT 中心 .NET (C#) 设备 SDK 已使用以下配置进行测试,并支持这些配置。The Azure IoT Hub .NET (C#) device SDK is tested with and supports the following configurations.

操作系统OS 标准Standard
LinuxLinux .NET Core 2.1.NET Core 2.1
Windows 10 桌面版和 Server SKUWindows 10 Desktop and Server SKUs .NET Core 2.1、.NET Framework 4.5.1 或 .NET Framework 4.7.NET Core 2.1, .NET Framework 4.5.1, or .NET Framework 4.7

.NET SDK 还可与包含 Azure 设备代理或包含可使用 RPC 来与 UWP 应用程序通信的自定义 NTService 的 Windows IoT Core 配合使用。The .NET SDK can also be used with Windows IoT Core with the Azure Device Agent or a custom NTService that can use RPC to communicate with UWP applications.

Node.js SDKNode.js SDK

Azure IoT 中心 Node.js 设备 SDK 已使用以下配置进行测试,并支持这些配置。The Azure IoT Hub Node.js device SDK is tested with and supports the following configurations.

操作系统OS Node 版本Node version
LinuxLinux LTS 和最新版LTS and Current
Windows 10 系列Windows 10 family LTS 和最新版LTS and Current

Java SDKJava SDK

Azure IoT 中心 Java 设备 SDK 已使用以下配置进行测试,并支持这些配置。The Azure IoT Hub Java device SDK is tested with and supports the following configurations.

操作系统OS Java 版本Java version
Android API 28Android API 28 Java 8Java 8
Linux x64Linux x64 Java 8Java 8
Windows 10 系列 x64Windows 10 family x64 Java 8Java 8

合作伙伴支持的开发工具包Partner supported development kits

Microsoft 与各行业的合作伙伴合作,为多种微处理器体系结构提供开发工具包。Microsoft works with various partners to provide development kits for several microprocessor architectures. 这些合作伙伴已将 Azure IoT C SDK 移植到其平台。These partners have ported the Azure IoT C SDK to their platform. 合作伙伴创建并维护 SDK 的平台抽象层 (PAL)。Partners create and maintain the platform abstraction layer (PAL) of the SDK. Microsoft 与以下合作伙伴合作提供扩展支持。Microsoft works with these partners to provide extended support.

合作伙伴Partner 设备Devices 链接Link 支持Support
EspressifEspressif ESP32ESP32
ESP8266ESP8266
Esp-azureEsp-azure GitHubGitHub
QualcommQualcomm Qualcomm MDM9206 LTE IoT 调制解调器Qualcomm MDM9206 LTE IoT Modem Qualcomm LTE for IoT SDK(用于 IoT SDK 的 Qualcomm LTE)Qualcomm LTE for IoT SDK 论坛Forum
ST MicroelectronicsST Microelectronics STM32L4 系列STM32L4 Series
STM32F4 系列STM32F4 Series
STM32F7 系列STM32F7 Series
用于 IoT 节点的 STM32L4 发现包STM32L4 Discovery Kit for IoT node
X-CUBE-AZUREX-CUBE-AZURE

P-NUCLEO-AZUREP-NUCLEO-AZURE
FP-CLD-AZUREFP-CLD-AZURE
支持Support
Texas InstrumentsTexas Instruments CC3220SF LaunchPadCC3220SF LaunchPad
CC3220S LaunchPadCC3220S LaunchPad
CC3235SF LaunchPadCC3235SF LaunchPad
CC3235S LaunchPadCC3235S LaunchPad
MSP432E4 LaunchPadMSP432E4 LaunchPad
适用于 SimpleLink 的 Azure IoT 插件Azure IoT Plugin for SimpleLink TI E2E 论坛TI E2E Forum
CC3220 的 TI E2E 论坛TI E2E Forum for CC3220
MSP432E4 的 TI E2E 论坛TI E2E Forum for MSP432E4

移植 Microsoft Azure IoT C SDKPorting the Microsoft Azure IoT C SDK

如果前面的部分未提到你所用的设备平台,你可以考虑移植 Azure IoT C SDK。If your device platform isn't covered by one of the previous sections, you can consider porting the Azure IoT C SDK. 移植 C SDK 主要涉及到实现 SDK 的平台抽象层 (PAL)。Porting the C SDK primarily involves implementing the platform abstraction layer (PAL) of the SDK. PAL 定义基元,基元用于衔接设备与 SDK 中的较高级功能。The PAL defines primitives that provide the glue between your device and higher-level functions in the SDK. 有关详细信息,请参阅移植指南For more information, see Porting Guidance.

Microsoft 合作伙伴和认证的 Azure IoT 设备Microsoft partners and certified Azure IoT devices

Microsoft 与许多合作伙伴合作,通过 Azure IoT 测试和认证的设备持续扩展 Azure IoT 的应用领域。Microsoft works with a number of partners to continually expand the Azure IoT universe with Azure IoT tested and certified devices.

在不使用 SDK 的情况下连接到 IoT 中心Connecting to IoT Hub without an SDK

如果你无法使用某个 IoT 中心设备 SDK,可以在能够发送和接收 HTTPS 请求与响应的任何应用程序中使用 IoT 中心 REST API 直接连接到 IoT 中心。If you're not able to use one of the IoT Hub device SDKs, you can connect directly to IoT Hub using the IoT Hub REST APIs from any application capable of sending and receiving HTTPS requests and responses.

支持和其他资源Support and other resources

如果在使用 Azure IoT 设备 SDK 时遇到问题,可以通过多种方式来寻求支持。If you experience problems while using the Azure IoT device SDKs, there are several ways to seek support. 可尝试使用以下渠道之一:You can try one of the following channels:

报告 bug – 可在相关 GitHub 项目的“问题”页上报告设备 SDK 中的 Bug。Reporting bugs – Bugs in the device SDKs can be reported on the issues page of the relevant GitHub project. 修复很快就会从项目实施到产品更新中。Fixes rapidly make their way from the project in to product updates.

Microsoft 客户支持团队 – 拥有支持计划的用户可以通过直接从 Azure 门户创建新的支持请求来与 Microsoft 客户支持团队进行沟通。Microsoft Customer Support team – Users who have a support plan can engage the Microsoft Customer Support team by creating a new support request directly from the Azure portal.

后续步骤Next steps