上篇博文中,我們主要介紹了Azure IoT Hub的基本概念、架構(gòu)、特性:
本文中,我們繼續(xù)深入研究,做一個(gè)起步示例程序:模擬設(shè)備注冊到Azure IoT Hub, 設(shè)備到云通信,云到設(shè)備通信。
整體篇幅較大,我們先來第一步:將模擬設(shè)備注冊到Azure IoT Hub。
首先,我們需要有一個(gè)聯(lián)網(wǎng)的設(shè)備,例如樹莓派、Win10 IoT設(shè)備等等,只要能聯(lián)網(wǎng),Azure IoT Hub有編程SDK即可,為了方便演示,本篇中我們做了一個(gè)模擬設(shè)備:
TeldPile001,即001號充電樁。
然后,在正式編碼前,需要我們在Azure New Portal中,添加自己的IoT Hub.
輸入名稱后,選擇定價(jià)和縮放級別,這里我們做測試,使用免費(fèi)的F1即可,同時(shí)新建資源組。
創(chuàng)建完成后,IoTTest即可使用了。
使用前,我們需要確定兩個(gè)重要的連接配置:主機(jī)名和連接字符串,我們選擇“概述”,右側(cè)有個(gè)主機(jī)名,先復(fù)制下來備用。
然后選擇共享訪問策略:
將連接字符串-主秘鑰,復(fù)制保存下來備用。
開始編碼吧,我們創(chuàng)建一個(gè)Console工程叫做“RegisterDevice”,用于設(shè)備注冊到Azure IoT Hub。同時(shí)添加重要的Nuget引用:
Microsoft.Azure.Devices
本文測試用的:<package id="Microsoft.Azure.Devices" version="1.2.4" targetFramework="net451" />
兩個(gè)核心的Namespace:
using Microsoft.Azure.Devices;
using Microsoft.Azure.Devices.Common.Exceptions;
核心類:Microsoft.Azure.Devices.RegistryManager:設(shè)備注冊管理器
我們設(shè)計(jì)一個(gè)方法,添加或者獲取設(shè)備信息:
1 /// <summary> 2 /// 添加或獲取設(shè)備信息 3 /// </summary> 4 /// <returns>Task</returns> 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("生成設(shè)備標(biāo)識: {0}", device.Authentication.SymmetricKey.PrimaryKey);19 }
Main函數(shù):
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這個(gè)設(shè)備已經(jīng)注冊到我們自己的Azure IoT Hub中了。
以上便是,將設(shè)備注冊到Azure IoT Hub的介紹,不復(fù)雜,微軟的設(shè)計(jì)還是比較贊的,簡單、快速、易用。
http://www.cnblogs.com/tianqing/p/6719607.html