2. diel - Microsoft AZURE - Príprava IDE a prvé programovanie ESP 8266
V minulom dieli sme si urobili úvod do Azure, IoT a zapojili našu dosku.. V dnešnej lekcii si pripravíme IDE.
Príprava IDE
K programovaniu dosky budeme používať klasické IDE od Arduino. Arduino samotnej bohužiaľ nemožno použiť, pretože čip ATmega 328P toho veľa neupočítá a pamäti má Arduino tiež poskromne, takže nezvládne TSL 1.2 šifrovanie, čo je pre použitie IoT hubu na AZURE nutnosť.
Arduinní IDE v sebe v základe nemá podporu pre našu dosku, takže pre mnohých nebude novinkou, že oproti klasickému Arduino budeme musieť nainštalovať pár knižníc. Popíšeme si teda prípravu IDE a, pretože základnou vlastnosťou programátora je lenivosť, použil som knižnice dostupné na GitHub.
Nemám teraz k dispozícii Linux na desktope, takže programujem celé riešenie pod Windows, ale výsledok nášho snaženia by mal byť nezávislý na platforme. Je teda len na vás, čo použijete. Tu sa budeme trochu líšiť. S ohľadom na linuxáky ako odborníkov, budem spoliehať na to, že si poradí. Kovaným linuxákům sa vopred ospravedlňujem, ale ako malý dôkaz, že Azure nie je priamo závislý na platforme, ktorú človek používa, sú niektoré knižnice od Microsoftu k dispozícii zadarmo ako Open Source. Divná to zmena za tie roky vojny MS vs. Linux.
K programovaniu dosky budeme potrebovať Arduino IDE. Je k stiahnutiu na adrese: https://www.arduino.cc/en/Main/, potrebujeme verziu 1.6.2 a vyšší.
Ďalej budeme musieť stiahnuť knižnicu pre Azure IoT na https://github.com/.../AzureIoTHub.
Knižnicu rozbaľte do zložky Arduino Libraries. Na Windows je defaultne na adrese:
C:\Users\[username]\Documents\Arduino\libraries
Alebo použite voľbu
- EN verzia: Sketch> Import Library menu
- CZ verzia: Projekt> Pridať knižnicu> Pridať .zip knižnicu
Do IDE budeme musieť ešte doinštalovať knižnice, a to cez manažment knižníc voľbou:
- EN verzia: Sketch> Include Library> Manage Libraries
- CZ verzia: Projekt> Pridať knižnicu> Spravovať knižnice
Ide o knižnice:
- DHT Sensor Library
- Adafruit DHT Unified https://github.com/...sor/releases
Ďalej do IDE musíme dostať podporu procesora ESP 8266 podľa návodu na: https://learn.sparkfun.com/...g-up-arduino
Takže do nastavenia IDE musíme pridať adresu pre definície dosiek. To urobíte pridaním nižšie uvedené adresy do správy dosiek z menu.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- EN verzia: File> Preferences> Additional Boards Manager URLs
- CZ verzia: Súbor> Vlastnosti> Správca ďalších dosiek URL
Ďalej v manažéri dosiek pridáme podporu dosky. Dajte ju teda vyhľadať a nainštalujte.
- EN verzia: Tools> Boards> Boards Manager
- CZ verzia: Nástroje> Vývojová doska> Manažér dosiek
Inštalácia trvá sakramentsky dlho, takže si dajte pauzu a dajte si maškrtu podľa vlastných preferencií, nešťastie s inštaláciou knižníc bude čoskoro koniec.
Po inštalácii potom už len v správcovi dosiek vyberte našej dosku Sparkfun ESP 8266 Thing
Teraz by sme mali mať všetko pripravené. Doska je zapojená a sme schopní do nej nahrať náš prvý program.
Prvý program pre ESP 8266
Nastavenie IDE Arduino máme konečne za sebou a dostávame sa k programovaniu. Pre tých, ktorí majú s programovaním napríklad pre Arduino skúsenosti, môžete pokojne preskočiť na ďalšiu lekciu. K riešeniu nášho problému nebude táto časť potreba.
Do dosky tiež nahráme prvý kód. Synček si prial vidieť, ako bliká modrá LED na doske, tak som narýchlo napísal programík na SOS. Ukážeme si teda jednoduchú a rýchlu verziu. Ospravedlňujem sa, funkcie sú pomenované nelogicky a asi zle, však mi kód nebol ďalej k úžitku a nemal som teda jediný dôvod ďalej ho opravovať alebo rozvíjať. Takže si ho môžete upraviť podľa seba a samozrejme aj zjednodušiť. Osobne sa veľmi teším na vaše jednoduchšie riešenie.
#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 tu nebudeme preberať, pokiaľ mu niekto nerozumie, odkáže ho na tunajšej lekcie C a C ++. Výsledkom je, že na boarde bude blikať modrá ledka . Budete mať možno problém s nahraním vašou kompilácie do boardu. V tomto prípade existuje jednoduché, ale extrémne hlúpe riešenie.
Vypnite dosku vypínačom na doske a po dokončení kompilácie, čo spoznáte tak, že v IDE dobehne bar do konca a dosku šikovne zapnite ešte pred vyskočením error. S trochou cviku sa vám po pár pokusoch podarí trafiť bootloader reset. Je to extrémne otravné a musím povedať, že ma táto vlastnosť od ďalšieho používania tohto boardu málom odradila.
Nabudúce sa už nebudeme venovať inštaláciám a podobným nepríjemnostiam a dostaneme sa rovno na pripojenie dosky do MS Azure.