Lekce 2 - Microsoft AZURE - Příprava IDE a první programování ESP 8266
V minulém dílu jsme si udělali úvod do Azure, IoT a zapojili naši desku.. V dnešní lekci si připravíme IDE.
Příprava IDE
K programování desky budeme používat klasické IDE od Arduina. Arduino samotné bohužel nelze použít, neboť čip ATMega 328P toho moc neupočítá a paměti má Arduino také poskrovnu, takže nezvládne TSL 1.2 šifrování, což je pro použití IoT hubu na AZURE nutnost.
Arduinní IDE v sobě v základu nemá podporu pro naši desku, takže pro mnohé nebude novinkou, že oproti klasickému Arduinu budeme muset nainstalovat pár knihoven. Popíšeme si tedy přípravu IDE a, protože základní vlastností programátora je lenost, použil jsem knihovny dostupné na GitHubu.
Nemám nyní k dispozici Linux na desktopu, takže programuji celé řešení pod Windows, ale výsledek našeho snažení by měl být nezávislý na platformě. Je tedy jen na vás, co použijete. Tady se budeme trochu lišit. S ohledem na linuxáky jako odborníky, budu spoléhat na to, že si poradí. Kovaným linuxákům se předem omlouvám, ale jako malý důkaz, že AZURE není přímo závislý na platformě, kterou člověk používá, jsou některé knihovny od Microsoftu k dispozici zdarma jako Open Source. Divná to změna za ta léta války MS vs. Linux.
K programování desky budeme potřebovat Arduino IDE. Je ke stažení na adrese: https://www.arduino.cc/en/Main/, potřebujeme verzi 1.6.2 a vyšší.
Dále budeme muset stáhnout knihovnu pro Azure IoT na https://github.com/…/AzureIoTHub.
Knihovnu rozbalte do složky Arduino Libraries. Na Windows je defaultně na adrese:
C:\Users\[username]\Documents\Arduino\libraries
Nebo použijte volbu
- EN verze: Sketch > Import Library menu
- CZ verze: Projekt > Přidat knihovnu > Přidat .zip knihovnu
Do IDE budeme muset ještě doinstalovat knihovny, a to přes management knihoven volbou:
- EN verze: Sketch > Include Library > Manage Libraries
- CZ verze: Projekt > Přidat knihovnu > Spravovat knihovny
Jedná se o knihovny:
- DHT Sensor Library
- Adafruit DHT Unified https://github.com/…sor/releases


Dále do IDE musíme dostat podporu procesoru ESP 8266 dle návodu na: https://learn.sparkfun.com/…g-up-arduino
Takže do nastavení IDE musíme přidat adresu pro definice desek. To uděláte přidáním níže uvedené adresy do správy desek z menu.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- EN verze: File > Preferences > Additional Boards Manager URLs
- CZ verze: Soubor > Vlastnosti > Správce dalších desek URL

Dále v manažeru desek přidáme podporu desky. Dejte ji tedy vyhledat a nainstalujte.
- EN verze: Tools > Boards > Boards Manager
- CZ verze: Nástroje > Vývojová deska > Manažer desek

Instalace trvá zatraceně dlouho, takže si dejte pauzu a dejte si laskominu dle vlastních preferencí, neštěstí s instalací knihoven bude brzy konec.
Po instalaci pak už jenom ve správci desek vyberte naší desku Sparkfun ESP 8266 Thing

Nyní bychom měli mít vše připravené. Deska je zapojena a jsme schopni do ní nahrát náš první program.
První program pro ESP 8266
Nastavení IDE Arduina máme konečně za sebou a dostáváme se k programování. Pro ty, kteří mají s programováním například pro Arduino zkušenosti, můžete klidně přeskočit na další lekci. K řešení našeho problému nebude tato část potřeba.
Do desky také nahrajeme první kód. Synek si přál vidět, jak bliká modrá LED na desce, tak jsem narychlo napsal prográmek na SOS. Ukážeme si tedy jednoduchou a rychlou verzi. Omlouvám se, funkce jsou pojmenovány nelogicky a asi špatně, nicméně mi kód nebyl dále k užitku a neměl jsem tedy jediný důvod dále ho opravovat anebo rozvíjet. Takže si ho můžete upravit podle sebe a samozřejmě i zjednodušit. Osobně se moc těším na vaše jednodušší řešení.
#define ESP8266_LED 5 void setup() { pinMode(ESP8266_LED, OUTPUT); } void tecka() { for (int i=0; i <= 2; i++) { digitalWrite(ESP8266_LED, HIGH); // LED off delay(500); digitalWrite(ESP8266_LED, LOW); // LED on delay(500); } } void carka() { for (int i=0; i <= 2; i++) { digitalWrite(ESP8266_LED, HIGH); // LED off delay(500); digitalWrite(ESP8266_LED, LOW); // LED on delay(2000); } } void mezera() { digitalWrite(ESP8266_LED, HIGH); // LED off delay(1000); } void loop() { mezera(); tecka(); mezera(); carka(); mezera(); tecka(); }

Kód zde nebudeme probírat, pokud mu někdo nerozumí, odkáži jej na
zdejší lekce C a C++. Výsledkem je, že na boardu
bude blikat modrá ledka .
Budete mít možná problém s nahráním vaší kompilace do boardu. V tomto
případě existuje jednoduché, ale extrémně hloupé řešení.
Vypněte desku vypínačem na desce a po dokončení kompilace, což poznáte tak, že v IDE doběhne bar do konce a desku hbitě zapněte ještě před vyskočením Erroru. S trochou cviku se vám po pár pokusech podaří trefit BootLoader reset. Je to extrémně otravné a musím říct, že mě tato vlastnost od dalšího používání tohoto boardu málem odradila.
Příště se již nebudeme věnovat instalacím a podobným nepříjemnostem a dostaneme se rovnou k připojení desky do MS Azure.