[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 07.08.22
Príspevky: 441
Témy: 194 | 194
Bydlisko: Poprad-okolie

Dnes chcem predstaviť projekt senzorickej siete, ktorá je navrhnutá pre interné použitie v LAN sieti. Komunikujúce mikrokontroléry sú postavené na mixe platforiem ESP8266 (NodeMCU), ESP32 (Devkit), Arduino + Ethernet W5100, Arduino + Ethernet W5500. Každá z platforiem obsahuje knižnicu, ktorá umožňuje realizovať HTTP prenos či na úrovni klienta, alebo webservera.
Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266
V senzorickej sieti jedna z platforiem funguje ako centrálny uzol - webserver, ktorý prijíma dáta po HTTP protokole POST metódou. Webserver na platforme ESP8266 vyžaduje samostatnú knižnicu. Pre ESP32 je webserver implementovaný priamo v hlavičkovom súbore WiFi.h, ktorý obsluhuje aj WiFi HTTP spojenie a pripojenie na existujúcu WiFi sieť.
Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266
Webserver pre ESP8266 a ESP32 obsahuje jednoduchú možnosť preberať jednotlivé argumenty z POST dát. Arduino s Ethernet shieldom nemá tak pokročilú knižnicu, vyžaduje sa preto rozparsovanie jednotlivých dát napríklad funkciou jazyka C strtok() s terminátorom & - ktorý oddeľuje jednotlivé argumenty prijaté v Payloade.
Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266
Takto je možné získať jednotlivé argumenty, ktoré webserver načítal pri požiadavke klienta. Spracovanie je teda pri využití Arduina s Ethernetom dlhšie ako pri ESP vývojových doskách. Nakoľko pripojenie klient trvá iba pár ms, je možné prevádzkovať aj väčší počet senzorických uzlov komunikujúcich s webserverom. Štandardne každý uzol odosiela dáta po pár sekundách, či minúte. Vďaka architektúre klient-server je možné odosielať aj viacero dát v jednej požiadavke, pričom sú dáta oddelené oddelovačom &.
Payload klienta, môže vyzerať napríklad: teplota=21.33&vlhkost=50.91&tlak=1013.91.

Bloková schéma:
Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266
Štandardne sú dáta v takejto jednoduchej senzorickej sieti uchované v RAM pamäti webservera a pri každej požiadavke sa prepisujú. Teda ak klient vypadne, webserver stále drží poslednú načítanú hodnotu. Webserver distribuuje dáta od senzorov aj na webovú stránku, ktorá je prístupná používateľovi. Výpis je realizovaný do jednoduchej HTML tabuľky. V prípade, že v LAN sieti existuje prístup na internet, je možné importovať aj grid systémy ako Bootstrap, či iné grafické knižnice, ktoré sa korektne načítajú. Dáta je možné ukladať aj na SD kartu, či v prípade ESP dosiek aj do internej SPIFFS pamäte, rovnako tak i do emulovanej EEPROM-ky.

V pokročilej implementácii môžu byť dáta distribuované aj pre klientov, ktorí môžu na základe hodnôt z webservera riadiť ovládanie relé, výkonových prvkov, chladenia, kúrenia, pričom sú dáta odosielané z iného - nezávislého uzla. Pri platformách ESP8266 a ESP32 je možné využiť mDNS - multicast DNS, kedy je možné v LAN sieti prevádzkovať aj DNS záznam pre webserver s doménovým menom tvaru: moje_domenove_meno.local.
Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266

Vďaka tomu je možné pripojiť sa na doménové meno, aj keď nevieme presnú IP adresu, ktorá sa na základe DHCP môže každých pár hodín zmeniť. Taktiež LAN sieť musí podporovať mDNS, rovnako tak mDNS nie je defaultne zapnuté vo Windowse. Pri platformách ESP8266 a ESP32 je možné ďalej využiť aj AP mód, kedy webserver funguje aj ako prístupový bod, vysiela vlastnú SSID sieť s WPA/WPA - PSK šifrovaním, alebo bez hesla. Tento režim sa funkčne nastavuje cez WiFi.softAP(ssid, pass); funkciu.

Tu je nutné zdôrazniť, že je možné využiť maximálne 5 klientov, ktorí sú na sieti pripojení. Pri väčšom počte klientov je server nestabilný, najmä v prípade ESP8266, ktorý má iba jednojadrový procesor, ktorý sa stará o WiFi časť (prístupový bod), webserver, komunikáciu a Arduino softvérové jadro, ktoré musí obsluhovať. Existuje teda viacero možností, ako je možné prevádzkovať a na akom koncepte postaviť jednoduchú komunikačnú sieť v LAN sieti.
Populárne senzory, ktoré môžete použiť ako zdroje dát:
    DS18B20 - teplotný senzor na OneWire zbernici
    DHT22 - digitálny senzor teploty a vlhkosti vzduchu
    BME280 - I2C senzor teploty, vlhkosti, tlaku vzduchu
    BMP280 - I2C senzor teploty, tlaku vzduchu
    SHT21 - I2C senzor teploty, vlhkosti
    HC-SR04 - ultrazvukový senzor vzdialenosti 2-450cm
    HC-SR501 - PIR infračervený senzor pohybu
Jednoduchú implementáciu pre webserver môžete vyskúšať aj z mojej stránky z projektu WiFi teplomera na platforme ESP8266: https://arduino.php5.sk/wifi-teplomer.php

Zdrojové kódy pre webserver:
ESP8266 - https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WebServer/examples/HelloServer/HelloServer.ino
ESP32 - https://github.com/espressif/arduino-esp32/blob/master/libraries/WebServer/examples/HelloServer/HelloServer.ino
Arduino + Ethernet W5100 - https://github.com/arduino-libraries/Ethernet/blob/master/examples/WebServer/WebServer.ino
Arduino + Ethernet W5500 - https://github.com/adafruit/Ethernet2/blob/master/examples/WebServer/WebServer.ino

Zdrojové kódy pre HTTP klientov:
ESP8266 - https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiClient/WiFiClient.ino
ESP32 - https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiClient/WiFiClient.ino
Arduino + Ethernet W5100 - https://github.com/arduino-libraries/Ethernet/blob/master/examples/WebClient/WebClient.ino
Arduino + Ethernet W5500 - https://github.com/adafruit/Ethernet2/blob/master/examples/WebClient/WebClient.ino


 [ Príspevok: 1 ] 


Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32

v Články

0

336

05.11.2020 13:02

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer - Arduino, ESP32, ESP8266 + ultrazvuk

v Články

0

565

22.09.2019 0:01

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Kurzy (krypto)mien - Arduino / ESP32 / ESP8266

v Články

0

340

15.11.2019 1:03

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

557

16.01.2020 23:59

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

OTA (Over The Air) - ESP32 - Arduino IDE

v Články

2

301

11.08.2020 7:37

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

952

16.09.2017 9:16

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

Izbový termostat - Arduino + Ethernet

v Články

0

512

10.07.2020 12:26

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino + Ethernet - Webserver - formuláre - EEPROM

v Články

0

377

05.04.2020 23:58

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Escape Room - Webclient - Arduino + Ethernet

v Články

0

384

27.11.2019 22:35

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Monitor teplôt, vlhkostí - Arduino Mega + Ethernet W5100

v Články

0

309

21.02.2020 22:42

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Sieť v sieti

v Siete

2

339

04.01.2012 9:55

Jethro922

V tomto fóre nie sú ďalšie neprečítané témy.

LAN po el. sieti

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Ostatné

42

1352

17.01.2014 11:39

tarezni

V tomto fóre nie sú ďalšie neprečítané témy.

nastavenie firewallu v LAN sieti

v Bezpečnosť a firewally

2

1485

22.03.2009 18:35

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Web stránka v domácej sieti LAN

v Webhosting a servery

15

944

09.11.2014 1:13

tomy1992

V tomto fóre nie sú ďalšie neprečítané témy.

lan siet

v Sieťové a internetové programy

1

572

14.05.2008 14:36

zolino11

V tomto fóre nie sú ďalšie neprečítané témy.

Lan sieť

v Bezpečnosť a firewally

5

410

03.02.2014 20:01

alan



© 2005 - 2022 PCforum, edited by JanoF