Blog pre slovenských vývojárov

Zdroj čerstvých informácií pre vývojárov priamo z kuchyne

Mikrodáta do Azure (2.časť) – Ako zaregistrovať zdroj dát do IoT Hub-u ( krok za krokom )

Prvú časť miniseriálu o ukladaní a spracovaní mikrodát v Azure sme ukončili úspešným vytvorením IoT Hub-u, služby, ktorá má kapacitu pre rýchly zber a “postspracovanie” malých dát frekventovane odosielaných z rôznych zdrojov (aplikácie, senzory atď.) V našom IoT Hub-e budeme zberať telemetriu prihlásení do webovej aplikácie. Každý zdroj dát (,teda v našom prípade aplikácia), ktorý chce odosielať dáta do IoT Hub-u, musí v ňom byť zaregistrovaný. Kód na registráciu zdroja dát by mal byť zakomponovaný do monitorovacej konzoly nášho sledovacieho systému, alebo do aplikácie určenej správcovi. Pre jednoduchosť si registračnú aplikáciu vytvoríme ako novú konzolovú aplikáciu.

Príklad uvediem v C# a Visual Studiu, dostupné sú aj knižnice pre C, Java a .node.js.

1. Vytvorte v Visual Studiu projekt typu “Console Application” v C#  napr. s názvom „registracia_zdroja“.

2. V Solution Explorer-e vyberte kontextové menu nad projektom “registracia_zdroja” a vyberte z neho “Manage NuGet Packages”.

3. V okne NuGet Package Manager povoľte voľbu “Include prerelease” a do položky na vyhľadavanie podľa názvu zadajte “Microsoft Azure Devices”. Po vyhľadaní balíčka “Microsoft.Azure.Devices” potvrďte  tlačidlo “Install” a následne akceptujte inštaláciu naviazaných knižníc tlačidlom “OK” a podmienky použitia tejto knižnice tlačidlom “I accept”.

obr1_nuget

4.  Otvorte kód “Program.cs” a na jeho začiatok vložte referencie na naimportované knižnice:

using Microsoft.Azure.Devices;
using Microsoft.Azure.Devices.Common.Exceptions;

5. Pridajte do triedy Program “static” člena, ktorý poslúži na správu registrácie:

static RegistryManager registryManager;

6. Počas registrácie sa naša pripravovaná správcovská konzola bude musieť pripojiť k IoT Hub-u s dostatočnými právami, čo zaručí výber správneho “connection string-u”. Prepnite sa do okna https://portal.azure.com, prihláste sa do Azure subskripcie, kde je vytvorený IoT Hub. Najjednoduchšie ho nájdete cez skupinu zdrojov (Resource Group), do ktorej ste ho pri vytváraní pridelili. Vyberte IoT Hub a prejdite do jeho nastavení práv pre pripojenie: Settings -> Shared Access Policies -> registryReadWrite a vložte do clipboardu Connection String – Primary Key.

obr3_saspolicy

7. Pridajte do triedy Program ďalšieho člena, ktorý bude obsahovať “connection string” načítaný v predošlom kroku:

static string connectionString = "sem vlozte connection string pre registryReadWrite IoT Hub";

8. Pridajte do triedy Program metódu na pridanie zdroja dát ( označovaného v IoT Hub-e ako Device):

private async static Task PridajZdrojDatAsync()
{
//zdroj dat bude v IoT Hub-e identifikovany nasledujucou hodnotou
string zdrojId = "mojaWebAplikacia";
Device zdroj;
try
{
//zaregistrovanie noveho zdroja dat
zdroj = await registryManager.AddDeviceAsync(new Device(zdrojId));
}
catch (DeviceAlreadyExistsException)
{
//nacitanie objektu, ak je uz zdroj v IoT Hub-e zaregistrovany
zdroj = await registryManager.GetDeviceAsync(zdrojId);
}
Console.WriteLine("Vygenerovany kluc zdroja dat: {0}", zdroj.Authentication.SymmetricKey.PrimaryKey);
}

9. Nakoniec pridajte do iniciálnej metódy Main kód, ktorý vytvorí spojenie s IoT Hub-om cez inštanciu triedy RegistryManager a zavolá metódu  PridajZdrojDatAsync:

registryManager = RegistryManager.CreateFromConnectionString(connectionString);
PridajZdrojDatAsync().Wait();
Console.ReadLine();

10. Naša správcovská aplikácia zaregistruje do IoT Hub-u nový zdroj dát a nakoniec vypíše jeho kľúč, ktorý budete potrebovať ako autentifikačný prvok pre aplikáciu generujúcu a zapisujúcu telemetrické dáta. Zobrazený kľúč zdroja dát si uložte, budete ho potrebovať pre telemetrickú aplikáciu, ktorú vytvoríme v ďalšej časti nášho seriálu o IoT Hub-e.

obr4_klucdevicu

11. Indikátorom, že registrácia zdroja dát prebehla úspešne, je pridanie nového “device” v IoT Hub-e:

obr_zaregistrovanyzdroj

12. Detailnejšie informácie nielen o zaregistrovaných zdrojoch dát, ale aj o komunikácii vám poskytne nástroj Device Explorer, ktorý nájdete na  https://github.com/Azure/azure-iot-sdks/releases . Nainštalujte ho cez inštalačný balíček “SetupDeviceExplorer.msi” a spustite.

13. Prepnite sa do okna https://portal.azure.com , prejdite do nastavení práv IoT Hub-u pre pripojenie: Settings -> Shared Access Policies -> iothubowner a vložte do clipboardu Connection String – Primary Key.

14. Nakopírujte „connection string“ s právami vlastníka IoT HuB-u do panela „Connection Information“ v záložke Connection Information nástroja Device Explorer. Potvrďte tlačidlo Update.

obr_constring_v_DevExplorere
15. Vyberte v Device Explorer-e záložku Management a počkajte, kým nástroj načíta stav z IoT Hub-u (alebo potvrďte tlačidlo Refresh). Získate detailné informácie o tom, kedy sa zdroj dát naposledy pripojil do IoT, s akým „connection string-om“, a či práve teraz pripojený.

obr_device_v_DevExplorere
Poznámka: Device Explorer beží na Windows, pre iné platformy použite nástroj iothub explorer.

V tejto časti sme “zoznámili” IoT Hub s prvým zdrojom dát, ktorý ho bude plniť a zároveň sme získali pre zdroj dát autentifikačný kľúč, ktorým sa prihlási do IoT Hub-u pre posielanie dát. Ďalšiu časť budeme venovať kódu posielania telemetrických dát, komunikácii s IoT Hub-om a monitoringu dát posielaných z zdroja dát do IoT Hub-u.

Miro

P.S. Ak ste členmi BizSpark programu pre začínajúce vývojárske “startupy” (firmy alebo živnostníkov) , alebo máte kúpené Visual Studio s MSDN, môžete si bezplatne aktivovať Azure benefit v týchto programoch (Microsoft Azure pre členov BizSpark , Microsoft  Azure pre MSDN predplatiteľov). Pri registrácii Azure benefitu v MSDN alebo BizSparku nie je požadované overenie platobnou kartou. Ak nie ste členmi týchto programov, môžete si Microsoft Azure bezplatne vyskúšať na dobu 30 dní cez Microsoft Azure Trial.