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



OPC UA - ESP8266 (Arduino)
pridal deadawp 22.11. 2019 o 17:29



Architektúra OPC UA (Unified Architecture) existuje už od roku 2008. Má využitie predovšetkým ako softvérový komunikačný prostriedok - protokol pre M2M (Machine-to-mechine) komunikáciu. Slúži na vymieňanie stavov systému, hodnôt zo senzorov a pod. Funguje na princípe klienta a OPC UA servera, ktorý informácie prijíma, avšak môže ich aj sám distribuovať.

Existuje tu pattern známy napríklad z MQTT protokolu v podobe Publish, Subscribe. OPC UA je šírený pod free licenciu GPL 2.0, pričom plne podporuje cross-platform. OPC UA je seriv Protokol sa radí do TCP balíka protokolov. V praxi podporuje binárny opc.tcp://Server protokol a webový protokol http://Server. V tomto článku sa budeme zaoberať webovým protokolom HTTP a správami, ktoré je možné zasielať pre architektúru OPC UA.

Ako už bolo spomenuté vyššie, architektúra OPC UA definuje aj formát správ, aké sa na HTTP protokole používajú. Minimálna konfigurácia na prevádzku tohto protokolu spočíva s využitím jedného klienta a jedného webservera, pre ľahšie zosieťovanie v jednej LAN sieti. V prvom príklade so zdrojovým kódom si ukážeme implementáciu webservera na platforme ESP8266, pričom môžeme ovládať jednotlivé GPIO piny tohto mikrokontroléra v prevedení NodeMCU (ESP8266-12E) prostredníctvom prehliadača počitača s vhodne formátovaným HTTP dopytom na stránku (IP adresu) ESP8266.

Teda používateľ systému bude v úlohe klienta. Príklad z knižnice OPC od SoftwareTools4Makers pre NodeMCU obsahuje príklad, ktorý dovoľuje ovládať GPIO piny D0 až D10 prostredníctvom jednoduchého HTTP dopytu v tvare: http://IP_ADRESA_ESP8266/CISLO_GPIO=1_0.  Napríklad pre IP adresu 192.168.1.2 a pre zapnutie D5 použijeme dopyt: http://192.168.1.2/D5=1. V prípade, že nechceme statickú/dynamickú IP pre smerovanie dopytom, môžeme použiť aj mDNS službu s používateľom definovaným doménovým menom v tvare: http://espname.local. (doména .local sa vyžaduje pri zvolenom doménovom mene pre jej správny resolve).
Výstup v UART monitore pre ESP8266 (ovládanie D2):

Zdrojový kód pre mikrokontróler je možné nájsť na adrese: https://github.com/martinius96/OPC-UA/blob/master/esp8266_opc_ua.ino. V programe je nutné zmeniť prístupové údaje k WiFi sieti vo funkcii myNodeMcu.setup(). Po nahratí programu je možné spúšťať HTTP dopyty na IP adresu ESP8266 v prehliadači. ESP8266 neposkytuje žiaden výstup pre používateľa v prehliadači (v inej implementácii môže obsahovať dáta, ktoré chce predať klientovi, záleží už na konkrétnom príklade použitia). Zmena sa prejaví iba na danom digitálnom vývode. Vývod D2 je pripojený k build-in LED dióde, ktorú je možné ovládať ihneď bez nutnosti pripájania externej. Dióda je tzv. Active LOW, teda signál 0 (LOW) ju spína a signál 1 (HIGH) rozpína. Príkazom http://ESP8266_IP_ADRESA/D2=0 je možné zapnúť LED diódu čipu ESP8266-12E. 

Zdrojový kód bol odtestovaný na verzii Arduino core 2.5.2 pre ESP8266. Viac zaujímavých projektov zaujímajúcich sa o Arduino, ESP8266, ESP32 je možné nájsť na mojom webe: https://arduino.php5.sk/. Príklady pre ďalšie dosky (Arduino + Ethernet, ESP32) budú pridané neskôr, vrátane aj klientským implementácii s prenášaním špecifických údajov (senzory, dáta). Ukážeme si aj rôzne custom implementácie s cross komunikáciou. Architektúru OPC UA je možné implementovať aj do iných systémov s REST API, SCADA, pripojenie k externým systémom PLCa pod.



Prístupov 196
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 8-bitových 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)