Skip to main content

设备上如何利用上报属性(Report Property)更新设备的状态

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

我们之前学习和讨论过设备状态,都在关注设备的连接状态,而实际上设备的状态可以包含更多的信息:例如设备上散热风扇的启动频率和条件,设备上目前的网络是连接在Wifi上还是5G卡上,设备上的某个指示灯是亮着还是熄灭了,这些信息也是设备状态信息,那么设备是如何向云报告这些状态呢? 开始之前我们先要学习一下一个最佳实践: 每次设备和云之间的连接状态从其他状态变为Connected之后,我们都需要让设备从云读取完整的Device Twin, 并根据Device Twin中包含的预期属性(Desired Property), 对设备相应的组件进行相应的配置。 在每次连接建立并拉取设备完整的Device Twin, 配置设备成功后,云是如何了解到该设备是不是将要求的配置配置到位了呢?答案是

Read more

云上如何对Device-to-cloud消息加强处理

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

针对Device-to-cloud的消息加强处理主要是指Azure IoT Hub提供的一个功能: Message enrichments, 这个功能主要在消息被传递到Azure IoT Hub,但是还没有转发到定义的终结点之前,Azure IoT Hub利用一些附加的信息对消息进行一定的标识,这个过程就称为Message enrichments。 在上述的定义中我们有提到Azure IoT Hub利用附加的信息对消息进行标识,那么这里提及的附加信息可以是: 用户自定义的字符串常量。 IoT Hub的名字,使用变量$iothubname来引用 Device Twin中引入的变量。 用户在定义Message Enrichments时,是如何使用这些附件信息的呢?我们定义一个M

Read more

云上如何处理消息

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

我们之前介绍了如何通过设备向云发送消息,这类消息我们称之为Device-To-Clound消息,它的适用场景是设备上的基于时间序列的遥测数据,这些数据的吞吐量可以是非常大,频率也可以是非常高,并且这些数据发送到Azure IoT Hub后,会被暂存在云上,最大可以存储七天,可以在创建Azure IoT Hub的时候指定,或者通过Azure Portal和其他工具进行调整。另外这些数据是根据设备的Id进行分区, 用户无法调整用于分区的key, 必须是设备ID, 但是用户可以调整分区的数量以及Azure IoT Hub的单元数(unit)。

Read more

理解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