Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz kesztió #14531 üzenetére

    Néhány megjegyzés:
    "billeg az utolsó tizedes jegy"
    Billeg ott néhány tized mindenképp. Most, az asztalon lehet,
    hogy tartja tized fok pontossággal az értéket, de a falon biztosan nem fogja. Egy helyiségben mindig van hőveszteség. Ha nem volna, nem kellene fűteni. Így mindenképpen vannak hidegebb felületek: fal, ajtó, ablak, mennyezet, padló, stb. Biztosan van légáramlás is, ami bizony bekavar. Ha elmész a szenzor előtt lesz akkora légáramlás,
    hogy pár tizedet biztosan mozdul. Vagy elmegy alatta a kutya, vagy a macska.

    Az ESP32 WiFi jele nem éppen erős. Ha routerrel tartja a kapcsolatot, az kiegyenlíti, de egymás között már gyengébb. Hogy is működnek ezek? Hogy megy egy adatcsomag átvitele?
    Az adó összekészít egy csomagot, és beleírja a cél címét, ami a MAC cím. Egy borítékba berakja a csomagot, és ráírja a címet.
    Aztán ezt a csomagot belekiabálja az éterbe (vagy a madzagra) azzal a logikával, hogy "itt egy levél, kapdossátok el, és akinek a címe van benne az használja, a többi dobja el!" És így tesznek. Ez az alap, minden forgalom alapszintje ez. Erre az ESP-n az ESP-NOW van. Nem kell semmi általános szabályt követni, mert egyedi. Ennél lentebb nem lehet menni, a dolgok lényege miatt. Ilyenkor nem kell se WiFi AP, se semmi. A fogadó ESP-nek persze fogadó állapotban kell lenni.

    Magasabb szint, ha IP szinten kommunikálsz. Ebben az esetben mindenképpen a WiFi AP-hoz kell küldeni a csomagot, mert ő tudja, hogy ki van bejelentkezve, azaz ki jogosult, és a bejelentkezetteknek mi az IP címük, és ahhoz milyen MAC cím tartozik, mert az alap továbbra is az, hogy a csomagot MAC cím alapján küldözgetik, de már bele van csomagolva az IP cím is. Ezért neked is bejelentkezve kell lenni az adott hálózatra, közvetlenül nem tudsz állomásra küldeni csomagot.
    (A madzagosnál némileg másként megy, mert a "mask" alapján eldöntöd, hogy azon a madzagon lóg-e, amin te is. Ha igen, akkor bekiabálsz a madzagra, hogy helló fiúk, akinek ez az IP címe,
    az küldje el nekem a MAC címét, hogy tudjak neki levelet küldeni. Mert ott is MAC cím alapján történik a forgalom. Ha nem egyazon madzagon vagytok a címzettel, akkor küldöd a gateway-nek, aki tudja, hogy melyik kapu a kijárat a világ felé, és arra küldi tovább, sorsára bízva.)
    Az IP szinten két módon kommunikálhatsz:
    UDP: hasonló az alap szinthez. Beleírod a csomagba az IP-t, és szintén bekiabálod az éterbe, de a router/AP MAC címével.
    Ő erre lecsap, kikeresi a címzett IP-hez tartozó MAC-et, és annak elküldi. Vagy saját maga feldolgozza, ha neki szól. Összesen ennyi a forgalom, nincs se visszajelzés, se semmi. Soha nem tudod meg, hogy megérkezett-e hibátlanul a csomag.

    TCP: ez a protokoll már tartalmaz visszajelzést is. Ha pl. hibásan érkezett, mert közben más is kornyikált, akkor újraküldést kér, ha meg minden rendben, akkor ezt jelzi vissza. Ez egy picivel több adatforgalom, de biztonságosabb.
    Tehát, ha nem ESP-NOW-t akarsz használni, akkor mindenképpen bejelentkezve kell lenni egy WiFi AP-re. Ez nem akkora gond, mert ez a bejelentkezés élve marad egy ideig akkor is, ha nincs forgalom.
    Viszont, ha egy másik ESP AP-nak küldesz adatot, akkor bizony fel kell építeni a kapcsolatot. Ez nekem is okozott problémát: netre kapcsolódik egy ESP, WiFi routeren keresztül, ami küldi folyamatosan az adatokat, és valahol máshol szintén WiFi routerhez kapcsolódik a cél állomás ESP AP. Úgy tűnik, hogy talán sikerült lerövidítenem az időt, de ez a projekt egyelőre félre lett téve, majd folytatom. Ha mégse sikerül, akkor átállok UDP-re.
    Volt régebben egy másik projekt, ahol egy központi ESP-nek küldözgettek a viágból adatokat, és ő minden bejelentkezettnek tovább küldte. Ott - úgy tűnt - nem volt hosszú késleltetés.

    Hát, ezek alapján kell eldöntened, hogy mit akarsz.
    ESP-NOW-nál gond a távolság.
    UDP-nél, TCP-nél valamivel nagyobb forgalom, több idő, több meleg. UDP-nél egy kicsit kevesebb, mint TCP-nél.

Új hozzászólás Aktív témák