Skip to main content

使用.Net Device SDK从设备上向Azure IoT Hub上传文件

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-13 20:51:56

如果需要从设备上向IoT Hub上传文件,首先需要配置文件上传的功能,也需要创建一个和Azure IoT Hub在同一个区域的Storage Account, 关于如何创建Storage Account和blob, 您可以参考文档:https://docs.microsoft.com/zh-cn/azure/storage/common/storage-account-create?tabs=azure-portal, 创建好之后找到您的Azure IoT Hub, 从左边找到File Upload这个功能,进行配置,如下图:

Read more

使用.Net SDK处理孪生设备预期属性更新和上报属性更新

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-13 20:49:25

本节我们学习设备代码如何影响孪生设备的预期属性更新以及上报属性的更新,希望大家能够直接从代码中学习到更多,另外需要注意的是,我们所有的代码都是基于.Net 6,所以如果你想从我们的这些代码中收益,您需要安装.Net 6的SDK。 创建一个新的项目 首先使用如下的命令取得设备simDevice的连接字符串,当然这之前你需要先创建好Azure IoT Hub资源以及该设备: az iot hub device-identity connection-string show --device-id simDevice --hub-name MyIoThubByCli 得到连接字符串之后,先保存起来,后面的代码中需要使用到这个连接字符串。 使用下述的命令创建我们的项目:

Read more

另外一个调用直接方法处理实例(Direct Method)

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-13 20:47:06

本节我们再来学习一个新的用于处理直接方法调用的实例,希望大家能够直接从代码中学习到更多,另外需要注意的是,我们所有的代码都是基于.Net 6,所以如果你想从我们的这些代码中收益,您需要安装.Net 6的SDK。 创建一个新的项目 首先使用如下的命令取得设备simDevice的连接字符串,当然这之前你需要先创建好Azure IoT Hub资源以及该设备: az iot hub device-identity connection-string show --device-id simDevice --hub-name MyIoThubByCli 得到连接字符串之后,先保存起来,后面的代码中需要使用到这个连接字符串。 使用下述的命令创建我们的项目:

Read more

使用.Net Service SDK调用设备的Direct Method方法

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-13 20:44:52

在我们这个例子中使用.Net Device SDK实现一个模拟设备,并在该设备中准备好需要相应的Direct method方法,之后我们在使用工具来调用该方法,之后使用.Net Serivce SDK来实现该方法的调用。 使用.Net Device SDK创建一个模拟设备 通过Azure Cli IoT扩展工具找到SAS key以及连接字符串。 az iot hub device-identity connection-string show --device-id simDevice --hub-name MyIoThubByCli 该语句返回的结果就是我们需要的连接字符串,那到该以SAS Key为基础的连接字符串之后,我们可以使用如下的代码来连接Azure IoT Hub

Read more

使用X.509证书来认证设备

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-13 20:39:20

前面学习过如何使用SAS Key来连接和认证设备,我们本节使用X.509证书来连接和认证设备。 本节要点: 生成根证书以及证书链和设备证书 向Azure IoT Hub注册根证书。 使用证书链签发设备证书 使用.Net SDK通过X.509证书连接设备 生成证书以及证书链,设备证书 我们这里为了测试的目的,因此使用的是工具CA签发的证书,关于签发证书我们也使用两种不同的方式,第一是使用Azure C SDK提供的脚本工具来自动生成,另外一种是使用openssl工具来生成。

Read more

使用SAS Key链接Azure IoT Hub并发送遥测数据

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-13 20:33:45

目前Azure IoT Hub支持三种方式认证并使得设备可以通过Device SDK连接,一种是SAS Key,一种是X.509签发证书, 还可以使用自签发证书。我们本节先来过一下如何使用SAS Key。 SAS Key SAS Key即symmetric shared access key, 可以通过如下方式得到设备的SAS key。 通过Azure Portal 登录到Azure Portal之后,从IoT hub左侧菜单的Device菜单中找到需要连接的设备,点击该设备之后,即可在如下的界面上找到该key, 如下图:

Read more

Azure IoT工具介绍

分类:  Azure物联网 标签:  #Azure # #IoT Hub 发布于: 2023-06-13 20:30:54

前面的一些文章主要是学习了Azure IoT Hub中的基本概念,那么从这一节开始我们会持续的学习Azure IoT的各种工具和以.Net为工具的开发教程以及一些思想以及架构。本节来学习基本的工具使用,可以快速的帮助用户检验和判断问题。 Azure IoT Hub官方除了Azure IoT Hub Portal之外还提供两类工具: Azure CLi IoT 扩展(以及PowerShell的模块,不过推荐使用Azure CLi的扩展) Azure IoT Explorer Azure Cli IoT 扩展 Azure Cli能够跨平台使用,安装Azure Cli以及设置Azure Cli, 您可以参考文档: 安装和更新Azure Cli: https://docs.a

Read more

Azure IoT Hub中X509证书的应用基础

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-12 21:50:30

在开始之前,我们先来简单的回顾一下证书的基础知识:证书是包含实例公钥的数字文档(仅仅包含公钥), 可以用于确定证书的使用者真实身份。一般情况下可以向证书颁发机构购买证书(CA: certificate authority), 或者如果是在测试环境中,也可以使用工具创建自签名的证书,创建自签名证书之后,可以使用它来签发设备证书或者中间步骤使用的中间证书,从而形成证书链。 算法:定义原始明文数据如何转换成密文,以及密文如何转换回明文。 密钥:是随机或者伪随机的数据字符串,用作算法的输入。 证书:包含实体公钥的数字文档。 证书颁发机构: certificate authority

Read more

Azure IoT Hub消息指南

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-12 21:46:00

Azure IoT Hub允许通过消息进行双向通讯,关于消息的通讯,您可以参考我们之前的文章(D2C, C2D), 为了更好的适应各种协议,Azure IoT Hub专门为消息指定了统一的格式,包括D2C和C2D都使用统一的消息格式。虽然消息的内容格式是一样的,但是D2C和C2D在和服务器之间的通讯方式由于选择协议不一样而不一样,D2C消息使用流模式,并且它的实现类似于Event Hub的时间模式。 Azure IoT Hub消息主要包括如下几个部分: 预定义的系统属性 应用属性 二进制的消息体 属性名和值只能包括ASCII字符串 + !, #, $, %, &, ', *, +, -, ., ^, _, '',|,~`。

Read more

Azure IoT Hub上针对孪生设备的查询语言

分类:  Azure物联网 标签:  #Azure #IoT Hub # 发布于: 2023-06-12 21:43:25

Azure IoT Hub提供类似SQL的查询语言,专门针对如下几种对象进行查询: 孪生设备(device twin) 孪生模块(module twin) 计划任务( jobs) 路由消息( Message Routing) 注意 关于路由消息的查询,后面学习Message的时候再进一步深入。 当使用查询语言是,上述几种对象针对的对象名分别为: 孪生设备(device twin): devices, 例如:SELECT * FROM devices 孪生模块(module twin): devices.modules, 例如: SELECT * FROM devices.modules 计划任务(jobs): devices.jobs, 例如: SELECT

Read more