博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Azure IoT 技术研究系列2
阅读量:6266 次
发布时间:2019-06-22

本文共 2055 字,大约阅读时间需要 6 分钟。

上篇博文中,我们主要介绍了Azure IoT Hub的基本概念、架构、特性:

本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT Hub, 设备到云通信,云到设备通信。

整体篇幅较大,我们先来第一步:将模拟设备注册到Azure IoT Hub。

首先,我们需要有一个联网的设备,例如树莓派、Win10 IoT设备等等,只要能联网,Azure IoT Hub有编程SDK即可,为了方便演示,本篇中我们做了一个模拟设备:

TeldPile001,即001号充电桩。

然后,在正式编码前,需要我们在Azure New Portal中,添加自己的IoT Hub.

输入名称后,选择定价和缩放级别,这里我们做测试,使用免费的F1即可,同时新建资源组。

 

创建完成后,IoTTest即可使用了。

使用前,我们需要确定两个重要的连接配置:主机名和连接字符串,我们选择“概述”,右侧有个主机名,先复制下来备用。

然后选择共享访问策略:

将连接字符串-主秘钥,复制保存下来备用。

开始编码吧,我们创建一个Console工程叫做“RegisterDevice”,用于设备注册到Azure IoT Hub。同时添加重要的Nuget引用:

Microsoft.Azure.Devices

本文测试用的:<package id="Microsoft.Azure.Devices" version="1.2.4" targetFramework="net451" />

两个核心的Namespace:

using Microsoft.Azure.Devices;

using Microsoft.Azure.Devices.Common.Exceptions;

核心类:Microsoft.Azure.Devices.RegistryManager:设备注册管理器

我们设计一个方法,添加或者获取设备信息:

1         ///  2         /// 添加或获取设备信息 3         ///  4         /// 
Task
5 private static async Task AddOrGetDeviceAsync() 6 { 7 string deviceId = "TeldPile001"; 8 Device device; 9 try10 {11 device = await registryManager.AddDeviceAsync(new Device(deviceId));12 }13 catch (DeviceAlreadyExistsException)14 {15 device = await registryManager.GetDeviceAsync(deviceId);16 }17 18 Console.WriteLine("生成设备标识: {0}", device.Authentication.SymmetricKey.PrimaryKey);19 }

Main函数:

1         static void Main(string[] args)2         {3             var connectionString = "HostName=IoTTest.***-***;SharedAccessKeyName=iothubowner;SharedAccessKey=******";4             var registryManager = RegistryManager.CreateFromConnectionString(connectionString);5             AddOrGetDeviceAsync().Wait();6             Console.ReadLine();7         }

Run,

可以看到,TeldPile001这个设备已经注册到我们自己的Azure IoT Hub中了。

以上便是,将设备注册到Azure IoT Hub的介绍,不复杂,微软的设计还是比较赞的,简单、快速、易用。

下一篇我们继续研究设备到云、云到设备的通信。

 

周国庆

2014/4/16

 

posted on
2017-05-12 10:39 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/yezuhui/p/6844408.html

你可能感兴趣的文章
map 取最大value
查看>>
WCF中的异步实现
查看>>
Thrift之代码生成器Compiler原理及源码详细解析2
查看>>
java垃圾回收
查看>>
案例分析:基于消息的分布式架构
查看>>
简单两步走 中兴V880获取权限方法
查看>>
外部 BLOB 存储体系结构
查看>>
导入文本文件时如何指定字段类型.sql
查看>>
C# 对象二进制序列化
查看>>
收藏的几个好的网站
查看>>
linux中shell变量$#,$@,$*,$?,$0,$1,$2的含义解释
查看>>
前端精选文摘:那些年我们一起清除过的浮动
查看>>
实现一种快速查找Richedit中可见区域内OLE对象的方法
查看>>
Java虚拟机工作原理详解 ( 二 )
查看>>
对象的序列化(Serialization)
查看>>
理解 Glance - 每天5分钟玩转 OpenStack(20)
查看>>
编译pure-ftpd时提示错误Your MySQL client libraries aren't properly installed
查看>>
Impala SQL
查看>>
STL源代码分析--萃取编程(traits)技术的实现
查看>>
Linux ALSA声卡驱动之一:ALSA架构简介【转】
查看>>