Skip to main content

理解Azure IoT Hub对物联网应用提供的支持

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 22:45:03

我们已经学习过基本的概念了,这包括Azure IoT Hub的Device Identity, Device Twin,之前也介绍了如何通过Azure Portal来创建设备标识,我们这一节了解一下Azure IoT Hub对不用的应用提供了哪些内置的支持。 在物联网方案中我们一般将应用分为设备端的应用和后端的应用。

Read more

Device Twin介绍

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 22:43:06

Azure IoT Hub为设备提供了Device Identity,每个设备的Identity都存储在Identity Registry里, 客户可以通过它的rest api或者SDK来管理Identity, 但是Identity里没有存储设备的状态信息,例如设备上配置数据,运行时状态数据,Azure IoT Hub提供另外一个概念来记录这部分数据:Device Twin。

Read more

理解设备标识(Device Identity)

分类:  Azure物联网 标签:  #Azure #IoT Hub # #指南 #入门 发布于: 2023-06-13 22:40:56

在Azure IoT Hub的设计中,针对设备和模块有一个概念是Identity, 即设备或者模块的标识(Identity), 在任何设备或者模块接入Azure IoT Hub之前,必须先创建一个合法的Identity, 它包含设备或者模块本身的一些基本信息: 设备或者模块的ID, 需要注意的是它是区分大小写的,因此TestDevice和testdevice代表的是两个设备标识。 设备或者模块的认证方式,例如是通过对称key还是证书。 设备或者模块认证的详细值,例如对称Key的值,证书的指纹。 设备或者模块的状态:这里的状态不是在线状态,而是指该设备或者模块是不是可用。 其他的一些基本信息,例如Azure IoT Hub自动生成的etags或者generate id等。

Read more

创建一个基于Linux的产线设备应用

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 22:37:47

我们前面创建了一个基于Windows Service的设备应用,这个应用的架构是可以直接用在产线上的结构,我们本节还是使用同样的程序结构。我们借助Linux的Systemd来管理设备应用。 我们还是先创建我们的基本应用: dotnet new worker -o IoTDeviceOnLinuxService cd IoTDeviceOnLinuxService dotnet add package Microsoft.Azure.Devices.Client code . 我们最后一步是使用VS Code打开项目目录,打开该目录之后,创建如下几个文件: ExceptionHelper.cs CustomRetryPolicy.cs DeviceService

Read more

创建一个基于Windows Service的产线设备应用

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 22:35:51

我们之前的两章仔细的介绍了在设备应用中如何管理和Azure IoT Hub之间的连接。本章我们设计自己的设备应用, 该应用App运行在基于Windows的平台上,并且以Windows Service形式运行,当设备重启之后会自动重启该服务,设备的日志和Windows的事件日志集成。 该应用主要的功能还是从之前文章介绍的代码框架: 根据返回的异常判断是否重新创建设备实例。 监控设备连接的状态变化,根据状态的不同而决定需要重试还是直接放弃,或者重新初始化设备实例重连。 注意 本节的实例代码你可以在这里找到:https://github.com/hylinux/azure-iot-hub-examples/tree/main/IoTDeviceOnWindowsService

Read more

从代码学习如何设计一个健壮的设备应用

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 22:31:50

我们上一章学习了设备SDK连接状态,以及连接状态改变和原因,我们也用一个简单的应用观察和学习了设备SDK在不同的情况下的不同表现。微软发布的Azure IoT Hub .Net Device SDK包含了一个很不错的例子,这个例子里演示了如何创建一个健壮的设备应用。我们本节来学习这个例子。 注意 本章提及的原始代码可以参考:https://github.com/Azure/azure-iot-sdk-csharp/tree/main/iothub/device/samples/how to guides/DeviceReconnectionSample 需要注意的是这部分代码里有这样几个文件: ExceptionHelper.cs: 主要是用于判定当SDK中发生异常时,该

Read more

如何使用Azure IoT Hub Device SDK管理连接状态

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 22:27:51

我们前面介绍了如何使用设备SDK连入Azure IoT Hub,我们这一篇来介绍一下如何识别设备的连接状态和管理连接。 我们先来介绍一下可能出现的连接状态: 瞬时网络问题:一般出现瞬时网络问题,SDK会自动重试, 连接状态变为Disconnected_Retrying, SDK显示的改变原因变为Communication_Error。 认证使用的对称密钥或者证书过期:这种情况下连接状态会变为Disconnected, SDK显示的原因为变为Bad_Credential, 需要注意这种情况下SDK不会重试。 设备标识在Azure IoT Hub被删除或者被禁止,连接状态会变为Disconnected, SDK显示原因为DeviceNotFoundException。 这种情况S

Read more

使用X.509证书认证并连接设备

分类:  Azure物联网 标签:  #Azure #IoT Hub # #指南 #入门 发布于: 2023-06-13 22:01:53

前面有一篇讨论过如何使用自签发证书认证并连接设备,自签发证书实际是上使用证书的指纹进行认证,我们需要将自签发证书的指纹填入设备上,这种形式很复杂,而且也不推荐使用在产线上,如果要用在产线上我们推荐使用有CA签发的证书或者物联网系统用在系统中的话,可以考虑自己作为CA给自己签发证书。 使用CA签发的证书和使用自己作为CA签发的证书,在使用上没有什么区别,都需要: 上传用于签发设备的证书,并验证该证书 给设备签发设备证书,设备使用该证书认证并连接到Azure IoT Hub。 本节为了演示,使用openssl让用户成为CA, 并给自己签发证书,然后使用这个签发之后的证书签发设备证书。

Read more

使用自签发X509证书认证并连接设备

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 21:56:43

我们之前的文章已经演示了如何通过SAS Key连接Azure IoT Hub, 我们本节演示如何通过自签发证书认证并连接设备。 请先满足我们的前提条件: 一个Azure账号 创建好一个Azure IoT Hub的资源 我们先准备自签发证书。 需要注意的是自签发证书认证,也称之为指纹认证(thumbprint),因为我们将自签发的证书指纹填充到设备配置上,然后在认证连接时,设备读取存在本地的证书,并建立连接。

Read more

使用Symmetric Key认证设备接入Azure IoT Hub

分类:  Azure物联网 标签:  #Azure #IoT Hub # #入门 #指南 发布于: 2023-06-13 21:54:15

我们之前已经介绍了什么是Azure IoT Hub以及Azure IoT Hub提供的工具,也浏览了如何使用Azure Portal对Azure IoT Hub相关的资源进行管理,从本篇开始我们会正式进入物联网应用的开发。 物联网的开发从设备接入开始,Azure IoT Hub提供如下三种设备认证方式: 基于Symmetric key认证 基于自签发的X509证书进行认证 基于X509证书进行认证 同时支持如下的通讯协议: MQTT以及MQTT on Websocket AMQP以及AMQP on WebScoket HTTPS 要开始本章及后继章节的学习,您需要: 一个Azure账号 使用Azure Portal创建好一个Azure IoT Hub

Read more