blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDOVAŤ BLOG
PHP, Arduino programátor
deadawp



Ovládanie ESP32 prostredníctvom UDP datagramov
pridal deadawp 30.8. 2019 o 23:42



Dnes by som rád poukázal na možnosť ovládať vývojovú dosku ESP32 zasielaním UDP správ pre jednoduché ovládanie ZAP/VYP. Je to jedna z najjednoduchších metód, ako odosielať dáta, spracovať ich a na základe prijatej informácie vykonať akciu. ESP32 je platformou, ktorá sa vo väčšine prípadov v súvislosti s WiFi konektivitou využíva ako webserver, alebo webclient, ktorý sa pripája na vzdialený server a POST, GET metódou, prípadne s integráciou MQTT protokolu odosiela dáta vzdialenému serveru / hostovi.

Knižnice pre ESP32 písané v C++, tzv. Arduino core (framework) umožňujú využiť aj asynchrónne UDP knižnice pre odosielanie a prijímanie dát. Zaujímavosťou je asynchrónnosť, keďže fungujú na "pozadí" a používateľ nemusí programovať zložité funkcie pre prijatie pripojenia, spracovanie informácie a pod. Aby sme dáta do vývojovej dosky ESP32 dokázali odoslať, potrebujeme jednoduchého UDP klienta. V mojom prípade som využil Windows verziu pomerne známeho klienta Packet Sender.

Je to univerzálny klient (nie)len pre UDP, podporuje aj TCP spojenia, vrátane SSL, je teda možné vykonať požiadavku aj na zabezpečenom porte s využitím certifikátu certifikačnej autority, klientského certifikátu, serverového certifikátu (ak Packet Sender prijíma dáta ako server). Packet Sender vyžaduje navoliť si tzv. mód pre pomalé zariadenia. ESP32 nestihlo spracovať datagram prichádzajúci z Packet Sendera, ak nebola možnosť s pridaním pauzy 500ms zvolená.

Packet Sender má jednoduché rozhranie, ktoré dovoľuje špecifikovať protokol prenosu, umožňuje vložiť cieľovú IP adresu zariadenia (ESP32), prenosový port a v poslednom rade aj odosielanú informáciu (text). UDP negarantuje doručenie správ. Neobsahuje CRC - kontrólny súčin odosielaných dát. Z toho dôvodu sa ESP32 snaží samostatnou UDP správou odpovedať na IP adresu a port odosielateľa, pre potvrdenie prijatia správy.

Avšak aj tu platí, že správa nemusí doputovať do Packet Sendera. V logu je možné vidieť odosielané dáta a zároveň prijaté dáta. Odozva na odoslanú informáciu je pomerne malá, cca 70ms. Počas tejto doby ESP32 stihne spracovať datagram, aplikovať daný stav na výstupný vývod (ovláda diódu, relé) a odoslať spätný datagram na IP adresu a port odosielateľa. V tomto prípade ESP32 z IP adresy 192.168.1.9 a portu 1234 na cieľovú IP adresu Packet Sendera 192.168.1.5 a port 51282.

ESP32 informuje používateľa aj prostredníctvom Sériovej linky (UART-u), pričom vypisuje prijaté pripojenie s bitovou dĺžkou informácie a aj informáciou samotnou, dokáže rozlíšiť aj preposielaciu metódu (Unicast, Multicast, Broadcast), zobrazuje aj IP adresu odosielateľa vrátane portu (neskôr použité pre návratový datagram). V prípade rozpoznania akcie ZAP / VYP vypíše ESP32 na UART aj informáciu o aplikovaní stavu: Zapinam rele, Vypinam rele.

Schéma zapojenia:

Viac zaujímavých projektov a zdrojový kód pre ESP32 k tomuto projektu je možné nájsť na adrese: https://arduino.php5.sk/udp-control-esp32.php
Packet Sender je možné stiahnuť z adresy: https://packetsender.com/



Prístupov 747
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Šum v binárnych obrazoch - MATLAB
[ 5.12.2019] (príspevkov 0)
Escape Room - Webclient - Arduino + Ethe...
[ 27.11.2019] (príspevkov 0)
OPC UA - ESP8266 (Arduino)
[ 22.11.2019] (príspevkov 0)
Kurzy (krypto)mien - Arduino / ESP32 / E...
[ 15.11.2019] (príspevkov 0)
Otáčkomer na platforme Arduino Uno
[ 1.9.2019] (príspevkov 0)
Ovládanie ESP32 prostredníctvom UDP data...
[ 30.8.2019] (príspevkov 0)
Mastermind - Logik - cez Arduino a LCD
[ 22.8.2019] (príspevkov 0)
Bicyklovanie po Google mapách - Arduino ...
[ 23.6.2019] (príspevkov 0)
Nerov (v)zostup v Caldárii
[ 3.6.2019] (príspevkov 0)
Prepočet atmosférického tlaku na hladinu...
[ 17.5.2019] (príspevkov 0)