天天看點

Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub

上篇博文中,我們主要介紹了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.

Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub
輸入名稱後,選擇定價和縮放級别,這裡我們做測試,使用免費的F1即可,同時建立資源組。
Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub
Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub

建立完成後,IoTTest即可使用了。

使用前,我們需要确定兩個重要的連接配接配置:主機名和連接配接字元串,我們選擇“概述”,右側有個主機名,先複制下來備用。

Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub
然後選擇共享通路政策:
Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub
Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub

将連接配接字元串-主秘鑰,複制儲存下來備用。

開始編碼吧,我們建立一個Console工程叫做“RegisterDevice”,用于裝置注冊到Azure IoT Hub。同時添加重要的Nuget引用:

Microsoft.Azure.Devices

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

Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub

兩個核心的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,

Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub

可以看到,TeldPile001這個裝置已經注冊到我們自己的Azure IoT Hub中了。

Azure IoT 技術研究系列2-裝置注冊到Azure IoT Hub

以上便是,将裝置注冊到Azure IoT Hub的介紹,不複雜,微軟的設計還是比較贊的,簡單、快速、易用。

下一篇我們繼續研究裝置到雲、雲到裝置的通信。

周國慶

2014/4/16

繼續閱讀