Több ESP8266 modul közti kommunikáció

ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Nahát...
Azt írják hogy ESPAsyncTCP majd akkor támogatja az ssl kapcsolatot, ha megjelenik az ESP arduinoból a 2.4.0
Gondolom plussz a megírás, tesztelés, javítás. Szóval még hátradőlhetek.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: csabeszq »

Mihez kell neked SSL? Annyira fontos titkosítani?

Ha a kerti öntözőrendszer letölti az időjárás előrejelzést és valaki cselesen feltöri a belső WiFi hálózatot, hát tegye. Szerintem egyszerűbb regisztráltatni saját magát a neten és magának letölteni, de mindenkinek kell valami perverzió.

Én SSL-t elvből nem használok, mert a PC-nek is komoly érvágás a titkosítás. Több mint felére esik az átviteli mennyiség egy titkosított csatornán. Az ESP egyébként is gyenguli, ezért eszembe nem jutna titkosítást használni.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Mihez kell neked SSL? Annyira fontos titkosítani?
Hát adatvédelemben nagyon mások az igényeink az már eddig is kiderült, most viszont nem az én perverzióm, hanem a google követeli meg. Csak így lehet hozzáférni az ott tárolt adatokhoz, meg az egész rendszerhez. Amúgy szinte azt sem tudom mi az az SSL, de szerencsére eddig enélkül is tudtam használni. :)
Sebességgel sem volt eddig gondom. Pontosabban van de nem az adatátvitel sebessége kevés, hanem a még a google scriptjeim létrehozzák a küldendő adatcsomagot az ESP felé az a sok idő, több másodperc is lehet. (mondjuk ~10mp az szerintmem már használhatatlan) hát itt a "fennakadás".
Persze jelenleg kikerülöm a problémát és így nem okoz gondot. Ugyan használhatnék egyéb módszereket is az adatárolásra, logolásra, meg config adatok, help, stb, tárolására, de ez nagyon kézre állt egyből. szinte nulla programozással, és tudással, és ehhez képest meg csak ez az egy hátránya van eddig. PLD, nálam a nextion képernyői és azokon található menü is google táblázatban van, ott szerkesztem és onnan töltödik az esp fájlrendszerébe, könnyebb szerkeszteni mint egy txt fájlt, a sok help meg ilyenek mind elfér. Ráadásul ott tárolom az összes használatban lévő ESP adatait az utasításaikkal, IP és port számaikkal, meg minden egy helyen, azt sem kell bogarászni. Ha bekerül egy új ESP vagy egy régi változik az is egyből feltöltődik. Szóval roppant kényelmes és naprakész kis csomag az egész ESP rendszerem benne van. Még a MAC címhez port és IP cím rendelést is onnan akarom megoldani mert a routeren ennél macerásabb beállítani, és alighanem igencsak korlátozott a fix IP kiosztása. Ráadásul a portot be sem tudja állítani az ESP-hez. Ja és a legjobb hogy mióta ebből a táblázatból indítom az ota frissítéseket is, még egyszer sem küldtem rossz IP címre a kódot, mert az is frissítve van az épp aktuálisra. :)
Na de ez lehet csak számomra hoz ekkora kényelmet.
Próbáltam a Microsoft rendszerét is, de az valahogy nem jött össze, pedig azt jobban kedvelem. (csak hogy borzoljam a kedélyeket :mrgreen: )
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: csabeszq »

Értem, hogy a google esetleg nem enged hozzáférést, ezért kell az SSL.
De én magát a WIFI csatornát titkosítanám WPA-val, ha nem kívánnék illetékteleneket. Ha nem muszáj, akkor nem kell SSL.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Szeretném ESP8266 wifi TCP cliens/server módban használni wifin keresztül!
Ahogy én látom.
TCP kapcsolat az nem soros port, sok minden kell hozzá, nem csak egy utasításkészlet.
Én a böngészővel való kommunikálást javasolnám mert ott lehet gyakorolni és, ha pld Google Chrome ban megnyomod a ctrl+shift+i gombot akkor előugrik az elemző ott meg minden látszik a küldött és kapott dadatok+amit még küldeni kell mellette, és ha hibás weboldalt írtál akkor a hiba is ott piroslik, ha szerencséd van. Persze az is eleinte kínai de lassan kitisztul a kép.
Szóval miután kommunikálgatsz a böngésző kliensel utána egyszerűbb az ESP kliens megértése is.

Ebbe az irányba van már esetleg tapasztalatod?
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Ezt a két példát lehetne értelmezni, használni.
https://github.com/esp8266/Arduino/blob ... Server.ino
https://github.com/esp8266/Arduino/blob ... Client.ino

Szépen küldi-fogadja az adatokat.

Mondjuk én nem ezt a szervert használom mert egyszerű mint a satu, egy stringben kapsz meg mindent és neked kell szétválogatni. Bár már rég használtam, lehet fejlődött azóta.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Ajánlott szerverem ez.
https://github.com/esp8266/Arduino/blob ... Server.ino

Itt kliens által küldött GET paraméterek mondjuk
a = 1
b = 2

Kód: Egész kijelölése

192.168.x.x/lap?a=1&b=2
egy tömbben kapod meg
server.args() -> 2
server.argName ( 1 ) -> b
server.arg ( 1 ) -> 2

ez a rész a kódban

Kód: Egész kijelölése

void handleNotFound() {
	digitalWrite ( led, 1 );
	String message = "File Not Found\n\n";
	message += "URI: ";
	message += server.uri();
	message += "\nMethod: ";
	message += ( server.method() == HTTP_GET ) ? "GET" : "POST";
	message += "\nArguments: ";
	message += server.args();
	message += "\n";

	for ( uint8_t i = 0; i < server.args(); i++ ) {
		message += " " + server.argName ( i ) + ": " + server.arg ( i ) + "\n";
	}

	server.send ( 404, "text/plain", message );
	digitalWrite ( led, 0 );
}

Kliensből mindegy mit használsz, akármilyen internetes böngésző jó, vagy az előbbi ESP kliens.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Ezek a módszerek ritka adatküldésre alkalmasak mondjuk relék kapcsolgatására, lassan változó értékek időnkénti küldésére.
Megnyitja a kapcsolatot a szerverrel, küldi az adatot, várja a választ, majd zárja a kapcsolatot.

Amikor valós időben szeretnél adatot küldeni ahhoz folyamatos kapcsolat kell.
WebSocket
https://github.com/Links2004/arduinoWebSockets
Ez nem bontja a kapcsolatot, folyamatos a kommunikáció, viszont elején lassabb a kapcsolatfelvétel.
Egyszerre csak 5 kliensel tudsz csatakozni a ESP websocket szerverhez Routeren keresztül.
Szerver külön külön tud üzenni a klienseknek, nem kell hogy a kliens indítsa a kommunikációt.
Relé kapcsolásra szerintem kár fenntartani a folyamatos kapcsolatot ezért nem ezt használom. Aztán lehet hogy a hálózatnak mindegy, de az is lehet hogy lassítaná esetleg, ezt sajnos még nem tudom. Nálam RGB lámpák színbeállításánál dolgozik.
Ha HTML oldalon keresztül éred el, és az ESP Webszerver szolgáltatja a HTML oldalt akkor az 5 az már sok neki lassan tölt be nagyon. Célszerű az oldalakat nem az ESP-n tárolni.

Hát kb ennyi jutott eszembe hirtelen.
Avatar
dpsslaser
Bitmanipulátor
Hozzászólások: 145
Csatlakozott: 2012. július 21. szombat, 6:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: dpsslaser »

javasoltad ezt ESPAsyncTCP de én még sima port nyitásig sem jutotam el vele még http azaz 80 port bőngészö alat sem!
mi a gond?
Van olyam példa ami müxik?
Természetesen a behelyetesitet sorokban roeter elérések helyesek a tesztelt kodban:
const char* ssid = "**********";
const char* password = "************";

port elérés pingelés Realterm végzem el!

ezt probáltam:

#ifdef ESP8266
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ArduinoOTA.h>
#else
#include <ESP31BWiFi.h>
#endif
#include "ESPAsyncTCP.h"
#include "SyncClient.h"

const char* ssid = "**********";
const char* password = "************";

void setup(){
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
if (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.printf("WiFi Failed!\n");
return;
}
#ifdef ESP8266
ArduinoOTA.begin();
#endif

SyncClient client;
if(!client.connect("www.google.com", 80)){
Serial.println("Connect Failed");
return;
}
client.setTimeout(2);
if(client.printf("GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n") > 0){
while(!client.available())
delay(1);
while(client.connected()){
while(client.connected() && client.available() == 0) delay(1);
while(client.connected() && client.available()){
Serial.write(client.read());
}
}
} else {
client.stop();
Serial.println("Send Failed");
while(client.connected()) delay(0);
}
}
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Kód: Egész kijelölése

kódot a Code gombal tudod betenni szépen azt szeretjük 
Elég csak egy helyre írnod a fórumban.

Na a fórum használatról ennyit.


Itt van két példa mindkét szerverrel.

https://onedrive.live.com/view.aspx?cid ... dc07%2F%29

https://onedrive.live.com/view.aspx?cid ... c72a%2F%29
Avatar
dpsslaser
Bitmanipulátor
Hozzászólások: 145
Csatlakozott: 2012. július 21. szombat, 6:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: dpsslaser »

kiprobáltam amit linkelté wdt ugy látszik ujra inditja az esp82 amikor feljelenkezek a kiosztot ipre!


klienst�l �rkez� �zenet ----> GET / HTTP/1.1


Exception (3):
epc1=0x4000dfa4 epc2=0x00000000 epc3=0x00000000 excvaddr=0x40230298 depc=0x00000000

ctx: cont
sp: 3ffef410 end: 3ffef6f0 offset: 01a0

>>>stack>>>
3ffef5b0: 3fff03bc 3fff0aa8 00000006 00000000
3ffef5c0: 402233e2 3fff0aa4 00000000 402233b8
3ffef5d0: 00000000 000002ab 00000000 4022fff0
3ffef5e0: 000002ab 00000000 00000000 3fff0b5c
3ffef5f0: 000002ab 00000309 00000000 3ffee6d0
3ffef600: 402010ae 00001388 00001388 3ffe854c
3ffef610: 00000000 000002ab 3fff07ac 40202a72
3ffef620: 00000000 3ffee570 3ffef670 40202ab4
3ffef630: 3ffe880c 000000c3 000000c3 40203175
3ffef640: 4022fff0 3ffee570 3ffef670 402031a0
3ffef650: 3ffe854c 3ffee570 3ffef670 402031e5
3ffef660: 3ffe880c 3ffee570 3ffee690 4020208b
3ffef670: 3ffe8640 00000000 000003e8 402031a0
3ffef680: 00000000 3fff07ac 00000000 00000000
3ffef690: 00000000 3ffee5a0 3ffee690 40201e04
3ffef6a0: 3ffe8808 0d01a8c0 3ffe8808 00000000
3ffef6b0: ffffffff 0d01a8c0 3ffe8808 00ffffff
3ffef6c0: 00000000 00000000 00000001 3ffee6bc
3ffef6d0: 3fffdad0 00000000 3ffee6b4 402037c0
3ffef6e0: feefeffe feefeffe 3ffee6d0 40100718
<<<stack<<<

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
…Cá.......

WiFi connected
WiFi.localIP() -> 192.168.1.13
Server started
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: SanyiSay »

Nézzük a jó oldalát, a kapcsolat már megvan. :)
https://onedrive.live.com/view.aspx?cid ... e51c%2F%29

Ez egy régi szerver progim és véletlenül a rosszat linkeltem be.
Javítottam, teszteltem. Legalább is nálam fut NodeMcu lapon.
Az sem mindegy hogy min futtatod, tápfesz, zavarszűrő, QIO, DIO, meg effélék beállítása a modulhoz képest.

Még olyan probléma is lehet hogy nem 2.3 stabil verziót futtatod, bár mostanában nincs akkora katyvasz a verziókkal.

Mindkét szervert tesztelted?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: Robert »

dpsslaser írta:....Mindenféle szöveg ...
dpsslaser - ez a második figyelmeztetés!

Az email címe hibásan van megadva, nem létezik.
A rendszer néhány hozzászólás után inaktiválja.

A CrossPost szintén büntit jelent. Kérem tartózkodni tőle.

Privát üzenetet sem olvas!

Robert(admin)
http://www.tavir.hu - a gazda :)
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: kapu48 »

Robert által irt kifogásokhoz még hozzá fűzném.

Felesleges ugyanazon kérdéseket még 100 fórumon feltenni!
Hiába használsz különböző nick neveket, ha a kérdéseidet 1/1-ben be pasztázod 100 helyre!
Csak felbőszíted a rendszer gazdákat, meg a tagokat!

Más! Ha kapsz valami tanácsot, akkor utána kellene olvasnod a témának!
Nem szemtelenül vissza írni, hogy ez még nem működik!
És addig bombázni a fórumokat, amíg meg nem oldják a problémádat helyetted!
Az is visszataszító hosszabb távon!
Avatar
dpsslaser
Bitmanipulátor
Hozzászólások: 145
Csatlakozott: 2012. július 21. szombat, 6:00

Re: Több ESP8266 modul közti kommunikáció

Hozzászólás Szerző: dpsslaser »

SanyiSay írta:Nézzük a jó oldalát, a kapcsolat már megvan. :)
https://onedrive.live.com/view.aspx?cid ... e51c%2F%29

Ez egy régi szerver progim és véletlenül a rosszat linkeltem be.
Javítottam, teszteltem. Legalább is nálam fut NodeMcu lapon.
Az sem mindegy hogy min futtatod, tápfesz, zavarszűrő, QIO, DIO, meg effélék beállítása a modulhoz képest.

Még olyan probléma is lehet hogy nem 2.3 stabil verziót futtatod, bár mostanában nincs akkora katyvasz a verziókkal.

Mindkét szervert tesztelted?
Az egyik ok müködik tesztelve!

Ez esp filmware 2.3 stabil ezt honan tudom letörteni ami megbizható?

Mert vanak más problémák is néha enél a projektnél esp D0 pin MAX485 DE/RE van akor a wdt mindig ujra inul lehuzba vissza dugva elindul a szoftver az esp és ok minden!

Kérdésem még mindig ugyanaz

soros port adat ki irás:
Serial.println("");

csak Tcp portra adat ki irás ?
client.println("");

köszönöm!
A hozzászólást 2 alkalommal szerkesztették, utoljára dpsslaser 2016. december 11. vasárnap, 20:05-kor.
Válasz küldése