Lekce 3 - Microsoft AZURE - Připojení k wifi síti a poprvé v Azure
V minulé lekci jsme vytvořili první program pro desku ESP 8266. Dnes se zaměříme na připojení k wifi.
Jako základní program budu používat knihovnu optimalizovanou pro desku ESP 8266, kterou dává Microsoft ke stažení zdarma. Na níže uvedené stránce je k dispozici i relativně podrobný popis funkcí. Nebudeme je tedy zde podrobně rozebírat a budeme se věnovat jenom důležitým věcem spojeným s oživením komunikace a naším zobrazením dat.
Stáhněte se tedy balíček https://github.com/…etstartedkit.
Bude nás zajímat projekt ve složce REMOTE_MONITORING, budeme ho postupně mírně upravovat, takže si pro své budoucí pokusy udělejte raději zálohu. V době psaní článku a tvoření tohoto postupu došlo k drobným změnám v kódu, ale na naši funkci by to nemělo mít vliv.
Otevřete projekt **remote_monitoring.ino **

První, co bude nutné, je donutit desku připojit se k vaší wifi síti, doplníme tedy potřebné informace do našeho kódu, přesněji přímo do souboru remote_minitoring.ino
char ssid[] = "[Your WiFi network SSID or name]"; char pass[] = "[Your WiFi network WPA password or WEP key]";

Jedná se o klasická char pole, takže hranaté závorky tam nebudou. Pro "security guru", kteří se hrozí nad typem zabezpečení jen podotýkám, že "destička, ačkoli maličká, zvládne zlehoučka i tužší heslíčka", tedy i WPA2, takže si lámat hlavu s WPA a WEP moc nemusíte. Obecně lze říci, že co se týče Azure, tak to Microsoft myslí se zabezpečením opravdu vážně, takže vás v AZURE budou klíče nebo jiné typy Credentials dost provázet. Ostatně hned na to narazíme v dalším kroku, takže se pokusím nic nevynechat. Doplňte tedy vaše přihlašovací údaje pro připojení k wifi a hned přejdeme k doplnění přihlašovacích údajů do IoT Hub v AZURE. Ty se nastavují v knihovně a tedy v souboru remmote_monitoring.c.
Doplníme tedy sekci:
static const char* deviceId = "[device-id]"; static const char* deviceKey = "[device-key]"; static const char* hubName = "[hub-name]"; static const char* hubSuffix = "azure-devices.net";
No ano, ale kde vzít tyto hodnoty? Odpověď se nachází v cloudu a k tomu budeme potřebovat několik věcí:
- Zaprvé budete potřebovat login do Azure. Pro vyzkoušení můžete využít free credit pro Azure. https://azure.microsoft.com/en-us/free/ nebo, pokud jste studenti, odkáži vás na program pro studenty DreamSpark, kde je free credit pro AZURE součástí vašeho členství. Podrobnosti naleznete na https://msdn.microsoft.com/cs-cz/ee460845. Pro bližší a podrobnější informace zkuste navštívit ještě vývojářský Blog https://blogs.msdn.microsoft.com/…-1-aktivace/.
Prosím, zaregistrujte se a zapamatujte si své Credentials, budeme je často potřebovat. Pokud vlastníte Live ID od Microsoftu nebo firemní účet na AD, například z 365, nespojujte jej s testovacím free accountem na AZURE, neboť to přináší řadu problémů.
- Zadruhé budeme potřebovat program jménem Device Explorer. Je ke stažení na adrese https://github.com/…Explorer.msi. Program slouží k managementu zařízení připojených k IoT hubu. Linuxáci tady mají drobný problém a jsem nucen je odkázat na IoTHubExplorer, který roste na adrese https://github.com/…e_iot_hub.md#….. Nemám s ním žádné zkušenosti, proto si budete muset poradit sami. Ale věřím, že to nebude problém.
Azure se rapidně vyvíjí, a proto tento prográmek snad v brzké době nebude potřeba. Mám informaci, že v brzké době bude možné zařízení spravovat pouze přes portál AZURE.
Device Explorer bude chtít klíče k IoT HUBU. Ty získáme později, takže program na chvíli odložíme a nastavíme si služby v AZURE. Nyní bychom měli mít vše, co je potřebné k přihlášení Azure a budeme se chvilku věnovat právě práci s AZURE.
Dashboards - řídící panely
Pro ostřílené uživatele AZURE bude zbytek lekce zbytečný, ale bez něj by nebyl kurz neúplný. Ti, jež netuší, co je AZURE, mi budou muset věřit, že se jedná o cloudovou platformu, co toho umí velmi mnoho. AZURE je platforma, která má v dnešní době tolik zákoutí, že je běžný člověk ani nedokáže pojmout, natož zvládnout. Jeho kouzlo je, že v něm lze realizovat prakticky vše, co lze provozovat v cloudu. Zvědavé odkáži na úvod našeho seriálu.
Nyní však hurá do obláčků.

Věřím, že se vám podařilo získat nějaký ten kredit zdarma, a proto se přihlaste k Azure. Adresa pro management je https://portal.azure.com/.
Po přihlášení vás přivítá poněkud holý DashBoard, kde jsou informace o vašich resources, což jsou vaše využívané zdroje, statusy jednotlivých datacenter, přístup do Marketu a přístup k podpoře. Nás bude zajímat pouze sekce "All resources". Jedná se o seznam vámi využívaných zdrojů a skupin zdrojů tzv. resources. Jednotlivé resources lze spojovat do logických skupin, tzv. resource group. Na základě jména resource groups můžete například plánovat automatické akce, anebo třeba všechny zdroje spojené do jedné resource group smazat. Blíže se tomu budeme ještě věnovat a poté by vám mělo být vše jasné.
Vlevo jsou sekce dostupných služeb, které můžete používat. Kdo má volné odpoledne, může je zkusit spočítat, moc by mě zajímalo, kolik jich je. Jelikož cílem článku není popisovat rozhraní Azure, nebudeme se tu s tím moc zaobírat. Vše potřebné pochopíte při práci.
Mám ve zvyku si pro každou službu nebo projekt dělat vlastní DashBoard takže tak učiním i nyní tlačítkem plus vedle slova Dashboard nebo Řídící panel. Pojmenujte si jej, jak chcete, u mě se jmenuje IOT Spark, nicméně na pojmenování vůbec nezáleží. Slouží pouze pro vás, abyste mohli s Azure lépe pracovat. Jednotlivé DashBoards lze sdílet a udělovat jim přístup podle oprávnění. Takže technik pro IoT, ekonom, SQL admin nebo Web admin mohou mít vlastní Dashboard. Hlouběji zabíhat netřeba, neboť na vše, v případě potřeby, přijdete i metodou pokus omyl. Mezi Dashboardy lze jednoduše přepínat, my si vybereme náš nově vytvořený.
Resource group
Nyní začneme podle mne s jednou z nejdůležitějších a často opomíjených věcí. Tou je tvorba vlastních Resource Groups, a proto ji rovnou přidejte volbou add v sekci Resource Group.

Pojmenoval jsem ji IoTDht22Spark. Nechte si ji připnout na dashboard zaškrtnutím čtverečku "Pin to dashboard". Zobrazí se vám seznam zdrojů v resource group. Zatím ho budete mít prázdný, ale nakonec v něm budete mít služby, které jsou naznačeny na diagramu z úvodu seriálu. Určitě se k němu ještě dostaneme. Na konci bude vypadat asi nějak jako ten můj.

Všimněte si služeb, které jsou v mé Resource Group,a těch, které hodláme využívat pro naše řešení.

V dalších lekcích si popíšeme jednotlivé služby jako je IoT Hub, Stream Analytics, Storage - přesněji Table Storage. Výhody toho, že všechny naše služby jsou v jedné grupě, nejsou možná na první pohled zřejmé. Azure a jeho služby s logikou sdružování zdrojů do skupin interně počítá a krom přehlednosti a jednoduchého smazání skupiny zdrojů, vám mnohdy zjednoduší konfiguraci služeb. Pochopíme to, právě pokud jednotlivé služby propojujeme.
Dále bychom si měli říci, že ačkoli jste získali nějaký ten kredit zdarma, budeme se snažit využívat, pokud možno free tarifů služeb. Za provoz služeb se v Azure platí, placení v AZURE probíhá metodou Pay as you go neboli platíte pouze pokud vám nějaké služby běží. Proto je dobré si uvědomit, že v drtivé většině případů, pokud služba neběží, je stopnutá, za využití služeb neplatíte. Dokážeme tedy pomocí automation scriptů a jména resource group zdroje vypínat například na noc.
Jednou z dalších vlastností je to, že se nám služby nebo zdroje rovnou
umístí do stejného data centra, takže nad tím pak nebudeme muset
přemýšlet při tvorbě jednotlivých služeb. U nás v Evropě jsou dostupná
dvě data centra, tzv. location West Europe (Amsterdam) a North Europe (Dublin).
Lze to z důvodu například zónové redundance změnit. Ne vždy je to ale
výhodou, neboť data centra jsou sice mezi sebou propojena optickými spoji s
vysokou propustností, ale stejně, pokud nutně nepotřebujeme řešit vysokou
dostupnost zdrojů po celé planetě, je lepší, pokud nám služby poběží v
jednom datacentru. Přinejmenším, až na datacentrum dopadne bomba a ono
umře, nebudete muset přemýšlet nad tím, co všechno asi nejde V našem kurzu budeme pracovat
pouze s jednou Resource group, ale nyní by vám mělo být jasné, proč tak
obsáhlý úvod do označení skupiny zdrojů.
Příště si zprovozníme IoT hub a pokusíme se poslat první data do AZURE.