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

Azure IoT 技术研究系列1-入门篇

本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到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         /// <summary>
2 /// 添加或获取设备信息
3 /// </summary>
4 /// <returns>Task</returns>
5 private static async Task AddOrGetDeviceAsync()
6 {
7 string deviceId = "TeldPile001";
8 Device device;
9 try
10 {
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

Azure IoT 技术研究系列2的更多相关文章

  1. Azure IoT 技术研究系列2-起步示例之设备注册到Azure IoT Hub

    上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...

  2. Azure IoT 技术研究系列3-设备到云、云到设备通信

    上篇博文中我们将模拟设备注册到Azure IoT Hub中:我们得到了设备的唯一标识. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub 本文中我们继续深入研究,设备到云.云到 ...

  3. Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别

    上两篇博文中,我们介绍了将设备注册到Azure IoT Hub,设备到云.云到设备之间的通信: Azure IoT 技术研究系列2-设备注册到Azure IoT Hub Azure IoT 技术研究系 ...

  4. Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较

    上篇博文中,我们介绍了Azure IoT Hub的使用配额和缩放级别: Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别 本文中,我们比较一下Azure IoT Hub和 ...

  5. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub

    上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...

  6. Azure IoT 技术研究系列3

    上篇博文中我们将模拟设备注册到Azure IoT Hub中:我们得到了设备的唯一标识. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub 本文中我们继续深入研究,设备到云.云到 ...

  7. Azure IoT 技术研究系列4

    上两篇博文中,我们介绍了将设备注册到Azure IoT Hub,设备到云.云到设备之间的通信: Azure IoT 技术研究系列2-设备注册到Azure IoT Hub Azure IoT 技术研究系 ...

  8. Azure IoT 技术研究系列1-入门篇

    物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案.我们公司主要搞新能源汽车充电,充电桩就是我们物联网技术的最大应用,车联网.物联网. 互联网三网合一.作为Azure重要的Partner和 ...

  9. Azure IoT 技术研究系列1

    物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案.我们公司主要搞新能源汽车充电,充电桩就是我们物联网技术的最大应用,车联网.物联网. 互联网三网合一.作为Azure重要的Partner和 ...

随机推荐

  1. 一、基础篇--1.1Java基础-面向对象的特征

    面向对象的特征 封装.继承和多态 https://blog.csdn.net/jianyuerensheng/article/details/51602015 封装: 定义:封装就是将数据或函数等集合 ...

  2. 516D Drazil and Morning Exercise

    分析 求出直径和最远距离d 之后我们以直径中点为根 发现父亲的d肯定不小于儿子的d 于是从下往上启发式合并维护与子树根的值相差L内的个数即可 代码 #include<bits/stdc++.h& ...

  3. 那些年我们经历的BT面试题

    初入职场面试的我到处碰壁,以下是我个人对几道面试题的小总结: 1.一列数字的规则如下:1,1,2,3,5,8,13,21, 34........ 求第30位数字是多少,用递规和非递归两种方法算法实现. ...

  4. Apache监控调优

    apache是一款对静态资源处理得比较好的中间件,但是对动态请求处理得不是很好,tomcat则正好相反. apache运用得比较多得工作模式主要是Prefork和Worker两种模式 1.Prefor ...

  5. 四种方法 恢复损坏的Excel文档

    四种方法 恢复损坏的Excel文档 打开一个以前编辑好的Excel工作簿,却发现内容混乱,无法继续进行编辑,而且还不能够进行打印.这是很多朋友在处理Excel文件时都可能会遇到的一个问题,面对这种情况 ...

  6. 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评

    第7单元 - 作业2:编程互评 查看帮助 返回   提交作业(剩余10天) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩   由于在线编程不支持 ...

  7. Matlab——系统预定义的变量 常用数学函数

  8. python3 基本数据类型_2

    #!/usr/bin/python3 #以下set,dict的方法py2无法运行 #创建set 集合,使用大括号 { } 或者 set() 函数创建 #注意:创建一个空集合必须用 set() 而不是 ...

  9. LeetCode算法题-Most Common Word(Java实现)

    这是悦乐书的第321次更新,第342篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第190题(顺位题号是819).给定一个段落和一组禁止词,返回不在禁止词列表中的最常用词 ...

  10. 第六周课程总结&实验报告

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...