Skip to main content

理解设备标识(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

开发基于Azure IoT Hub的物联网应用

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

要想开发基于Azure IoT Hub的物联网应用,仅仅了解Azure IoT Hub的基本功能是不够的,必须了解和学习由Azure IoT Hub提供的其他功能,这包括: Azure IoT Hub提供的设备接入和认证方式 Azure IoT Hub提供的设备和云之间的通讯方式 Azure IoT Hub提供的消息处理机制 Azure IoT Hub提供的工具和SDK 我们本节先给大家分别介绍一下这些基本的概念,后继的章节再持续展开。

Read more

使用Azure Portal在Azure IoT Hub中管理设备

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

我们之前介绍了如何使用Azure Portal来创建Azure IoT Hub资源以及浏览了Azure Portal提供的主要功能,在Azure Portal主要的菜单有一个区域是专门为了创建和管理设备,您可以通过如下的路径来访问:Azure Portal -> Device Management -> Devices: 要创建一个设备只需要按照上图的步骤, 点击按钮Add Device, 显示创建设备的主要界面:

Read more