Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

5. diel - Webový server na module ESP-32 druhýkrát - Sprevádzkovanie serveru

V minulej lekcii, Webový server na module ESP-32 , sme začali pracovať na webovom serveri, ktorý poskytuje modul ESP-32.

V dnešnom tutoriále Internetu vecí s ESP-32 dokončíme náš webový server. Máme už pripravené zapojenie, vysvetlili sme si, ako server funguje a nezostáva než sa pustiť do toho hlavného - do slučky loop(), ktorá bude vykresľovať HTML stránku servera a reagovať na povely používateľa.

Slučka loop()

Najrozsiahlejšia a nezložitejšia časť celého programu bude funkcia loop(), v ktorej sa bude odohrávať všetko podstatné. Poďme si ju teda postupne popísať:

V tejto časti kódu sme si vytvorili premennú pre klienta a podmienku, ktorej telo sa vykoná iba ak bude existovať akýkoľvek pripojený klient, ušetrí to totiž energiu a výpočtový výkon modulu. Teraz si poďme ukázať cyklus, ktorý sa stará o čítanie URL adresy a podľa jej obsahu rozsvecuje resp. zhasína LED diódy. Tento cyklus vložíme do vyznačeného miesta v predchádzajúcej časti kódu:

V cykle sa najskôr zistíme, či sme z URL adresy dostali čitateľné byty. Pokiaľ áno, do reťazca si uložíme celý riadok URL adresy, vďaka ktorému zistíme, ktorú LED diódu chceme rozsvecovať resp. zhasínať. Tento cyklus má teda v našom programe nenahraditeľnú úlohu a zaisťuje nám správny chod programu. Zaň doplníme pár riadkov kódu pre prípad, že nebude nastavený žiadny aktívny klient:

Funkcia zpracujPozadavek()

Náš cyklus však potrebuje na svoju prácu funkciu zpracujPozadavek(), poďme si ju teraz vytvoriť: Funkcia zpracujPozadavek() vždy porovnáva obsah URL obsah a podľa neho určuje, čo sa má na mikrokontroléri vykonať. My v tomto prípade budeme iba meniť stav LED diód na doske, uchováme si ho do premennej a informáciu o zmene vypíšeme na sériový monitor.

Funkcia zobrazHTML()

Nakoniec vytvoríme funkciu zobrazHTML(). Funkcia bude obsahovať celú štruktúru HTML stránky. Poďme teda na vec:

Stránka obsahuje dve tlačidlá, vďaka ktorým budeme ovládať LED diódy a tiež obsahuje informáciu o stave diódy. Pridáme si aj základné CSS štýly, nech stránka nie je tak smutne čiernobiela. Tlačidlá sa dynamicky menia v závislosti na aktuálnej hodnote na LED dióde (zapnuté/vypnuté) a podľa toho menia farbu.

Dáta do URL adresy posielame cez odkaz pri jednotlivých tlačidlách, je teda na nás, akú adresu odkazu si vymyslíme, musíme si však dať pozor na správne vyhodnotenie podmienky na začiatku cyklu.

Vyskúšanie serveru

Celý program máme hotový a nezostáva nič iné, len ho vyskúšať. Teraz, keď projekt skompilujeme a nahráme, je dôležité zistiť si v sériovom monitore IP adresu servera:

Internet vecí s ESP32

Túto IP adresu vložíme do prehliadača na zariadení a zobrazí sa nám táto stránka:

Internet vecí s ESP32

Vždy po kliknutí na príslušné tlačidlo sa zmení farba pozadia tlačidla a zmení sa hodnota na LED diódach. Vzhľad stránky bude vyzerať takto:

Internet vecí s ESP32

Dnes sme teda zvládli trochu rozsiahlejší projekt, v ktorom sme si vyskúšali webový server na module ESP-32. Z tohto tutoriálu je to už všetko. Zdrojové kódy vrátane zapojenia sú k dispozícii na stiahnutie nižšie.

V nasledujúcej lekcii, SPI Flash File System pre webový server na ESP-32 , sa zoznámime s SPI Flash File System pre webový server na module ESP32 a predvedieme si ho na príklade


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 47x (2.4 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C++

 

Predchádzajúci článok
Webový server na module ESP-32
Všetky články v sekcii
Internet vecí s ESP32
Preskočiť článok
(neodporúčame)
SPI Flash File System pre webový server na ESP-32
Článok pre vás napísal Adam Hudeczek
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje zejména programování mikrokontrolerů a tvorbou a provozem webových stránek a webových aplikací.
Aktivity