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
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 »

kapu48 írta: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!
Nem tudom hogy valahogy nem fér az én tudásomhoz a komunikáciom biztos mire is van egy forum kérdezni és beszélgetni?
Mért kel a másikat kinézni lenézni mert csak hogy kérdez és még ezt több helyen is?
Mért számit honan jötél?
Ezt tudom levoni a pocskondiázásokbol!
Mire jó ez az egész?

Nem szoktam várni a sültgalambot itt már csak végsö esetben szoktam felteni kérdést amikor elakadok véglegesen!
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 »

Nem pocskondiáztam!
Azzal, hogy megjegyeztem, hogy az egész projectedet úgy készíted, hogy minden megoldást másoktól kunyerálsz ki! És közben csak kész válaszokat fogadsz el! Nem vagy képes elgondolkozni kicsit sem a feladat megoldásán!

Itt nem ez a megszokott, elfogadott stílus!
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 »

Szóval:

Akkor fut nálad ez a szerver
https://onedrive.live.com/view.aspx?cid ... c72a%2F%29

Kliensnek teljesen megfelel ez
https://github.com/esp8266/Arduino/blob ... Client.ino

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

const char* host = "data.sparkfun.com";
const char* streamId   = "....................";
const char* privateKey = "....................";
itt a host helyére kell írnod a szerver IP címét
két másik pedig a két paraméter

Ezzel el is küldted az adatot a szervernek.
Mivel "/input/streamId" oldal van megadva

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

// We now create a URI for the request
  String url = "/input/";
  url += streamId;
  url += "?private_key=";
  url += privateKey;
  url += "&value=";
  url += value;
így a szerver részen a hibás oldalrész veszi át és értelmezi mivel ott nincs ilyen oldal.

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

	server.onNotFound(handleNotFound);
és küldi feldolgozásra

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

void handleNotFound() {
	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", "Szerver válasza");
	Serial.println(message);
}
A te kódodban még nem szerepel az eljárás végén a Serial.println(message); így nem látod hogy mit kapott a szerver, de fölötte egy sorral az van hogy visszaküldi a kliensnek az egész fogadott adathalmazt 404 es hibával együtt.

Persze jogos a kérdés miért hagytam ki a printet. :P hát balgaságból.

Aztán ha ez megvan akkor adhatsz meg saját oldalt

Kliensből meghívjuk mondjuk a teszt oldalt két paraméterrel

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

  // We now create a URI for the request
  String url = "/teszt?";
  url += "abcd=";
  url += streamId;
  url += "&private_key=";
  url += privateKey;

Szerverbe pedig beszurjuk a fogadó részt

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

	server.on("/teszt", []() {
		Serial.println("teszt oldal lett hivva");
	});
Ide betesszük az adatfeldogozó részt aztán.



TCP GET küldés forma. 192.168.2.1/oldal?paraméter1=1&paraméter2=2 és így tovább

Ami aztán így néz ki. Nem csak az adatot küldjük hanem a fejlécet is amiben mindenféle hasznos infó van a szervernek, és a kliensnek.

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

client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");
pld kapcsolat bontása vagy tartása, itt állítjuk be hogy ékezetes betűk is átmenjenek.
https://en.wikipedia.org/wiki/List_of_H ... der_fields

itt vannak a lehetőségek. bár erre még nem lesz szükség egyenlőre.
A hozzászólást 1 alkalommal szerkesztették, utoljára SanyiSay 2016. december 11. vasárnap, 20:46-kor.
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 »

kapu48 írta:Nem pocskondiáztam!
Azzal, hogy megjegyeztem, hogy az egész projectedet úgy készíted, hogy minden megoldást másoktól kunyerálsz ki! És közben csak kész válaszokat fogadsz el! Nem vagy képes elgondolkozni kicsit sem a feladat megoldásán!

Itt nem ez a megszokott, elfogadott stílus!
Én ezt igy látom ahogy fordulnal elenem ezek alapján amiket leirtam....
Nem tudom it mi a szokás mert elég ritkán járok ide ténylegesen ha meg meg szorulok segitségel...
De nem vagyok tanár meg programozó meg matematikus sem hogy igy léssam ezeket a feltételeket ami it folyik egyszerü ember vagyok akit érdekel ez a téma és csinálom saját tudásom szerint ahogy tudom...
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:Szóval:

Akkor fut nálad ez a szerver
https://onedrive.live.com/view.aspx?cid ... c72a%2F%29

Kliensnek teljesen megfelel ez
https://github.com/esp8266/Arduino/blob ... Client.ino

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

const char* host = "data.sparkfun.com";
const char* streamId   = "....................";
const char* privateKey = "....................";
itt a host helyére kell írnod a szerver IP címét
két másik pedig a két paraméter

Ezzel el is küldted az adatot a szervernek.
Mivel "/input/streamId" oldal van megadva

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

// We now create a URI for the request
  String url = "/input/";
  url += streamId;
  url += "?private_key=";
  url += privateKey;
  url += "&value=";
  url += value;
így a szerver részen a hibás oldalrész veszi át és értelmezi mivel ott nincs ilyen oldal.

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

	server.onNotFound(handleNotFound);
és küldi feldolgozásra

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

void handleNotFound() {
	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", "Szerver válasza");
	Serial.println(message);
}
A te kódodban még nem szerepel az eljárás végén a Serial.println(message); így nem látod hogy mit kapott a szerver, de fölötte egy sorral az van hogy visszaküldi a kliensnek az egész fogadott adathalmazt 404 es hibával együtt.

Persze jogos a kérdés miért hagytam ki a printet. :P hát balgaságból.

Aztán ha ez megvan akkor adhatsz meg saját oldalt

Kliensből meghívjuk mondjuk a teszt oldalt két paraméterrel

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

  // We now create a URI for the request
  String url = "/teszt?";
  url += "abcd=";
  url += streamId;
  url += "&private_key=";
  url += privateKey;

Szerverbe pedig beszurjuk a fogadó részt

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

	server.on("/teszt", []() {
		Serial.println("teszt oldal lett hivva");
	});
Ide betesszük az adatfeldogozó részt aztán.



TCP GET küldés forma. 192.168.2.1/oldal?paraméter1=1&paraméter2=2 és így tovább

Ami aztán így néz ki. Nem csak az adatot küldjük hanem a fejlécet is amiben mindenféle hasznos infó van a szervernek, és a kliensnek.

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

client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");
pld kapcsolat bontása vagy tartása, itt állítjuk be hogy ékezetes betűk is átmenjenek.
https://en.wikipedia.org/wiki/List_of_H ... der_fields

itt vannak a lehetőségek. bár erre még nem lesz szükség egyenlőre.

köszönöm ezeket ki probálgatom...
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 »

Szokni kell az egészet, de lassan kitisztul ahogy az lenni szokott. :)
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 »

Adminként kicsit közbeszólva:

A fórum jellemzően műszaki, és ezért elvárható (lsd fórumszabályzat: viewtopic.php?f=23&t=828 )
"A Fórum az egy beszélgetős hely. NEM műszaki szakszolgálat. Aki itt van, az is tanulta a hobbit/szakmát évek alatt. Nem minden részt látunk át, mindenkinek van 1-2-5-10 terület amit jobban ismer.

A Smile és egyéb ikonokat használd nyugodtan. Lehet, hogy egy-egy vicces megjegyzés bántó lehet. Élőszóban ott a hangsúly. Itt csak a smile gombok.

Soha ne kérj úgy segítséget, hogy : ez a feladat és valaki oldja meg. Ha nem írsz javaslatot, nem írod le, hogy utánanéztél és az a megoldás tetszik, mert... ez nem, mert és különben is a kódban itt és itt nem jutok előre és ebben kéne segítség...
Nos, ha ezek hiányoznak, akkor NEM TETTÉL SEMMIT a cél érdekében. A sültgalambok itt nem fognak repkedni. Tenni is kell érte! "

Ugyanazt a kérdést azonos fórumsite-n nem teszünk fel. Morcos lesz az admin :).
Ugyanez igaz hogy több szakmai oldalon sem _azonos_ hozzászólással kérdezünk. Általában azonos a szakmai/emberi háttér és morcos mindenki, ha ugyanazt több helyen is olvassa - ugyanattól a kérdezőtől.

A hozzászólást szerkesztjük: elütés, betűkihagyás, írásjelek kis-nagybetűk hanyagolása igénytelenségre vall. Mobiltelefonon használva is! Nem irodalmi helyesírást várunk el. De legalább ne azzal teljen 5-10 perc, hogy kibogozzuk a _kérdést_.
http://www.tavir.hu - a gazda :)
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 »

De hogy javaslat is legyen: Érdemes a etherreal/wireshark analizáló programot használni. Ezzel a WiFi adatfolyamot lehet monitorozni, elemezni. Lehet _látni_ mi megy a TCP/IP csomagokban.
A programozásban meg sok-sok debug legyen - legalább látom mit csinál :) )
http://www.tavir.hu - a gazda :)
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 »

etherreal/wireshark:
Szerintem az efféle a programok a létezését nem ismeri el Csabeszq fórumtársunk mikor a WPA és SSL feleslegességét említi. :D
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 »

Nekem semmi bajom a kriptográfiával (5 évig abban dolgoztam WTLS-sel mobiltelefonoknál), csak kérdéseket teszek fel.

- miért titkosítasz hőmérsékleti adatokat mikrovezérlővel, amikor odanyomja a csávó a hőmérőt és megmérheti maga is?
- mit tud neked ártani, ha lehallgatják és látják hú, a kert végében 5.7 fok volt, mindjárt megyek és megosztom a privát infót az újságokkal...
- ha a wifi-d WPA PSK-val titkosítva van, akkor minek titkosítasz mégegyszer SSL-lel? Melegíteni is akarsz CPU-val hidegebb napokra?
- engem nem zavar, ha a kert végi hőmérsékleti adatokhoz 4096 bites RSA handshake-et használsz, AES-sel, meg WPA PSK-t, lehetőleg a kulcsot is időben gyakran kell rotálni. Az RSA tanusítványokat ki ne hagyd, mert fenét sem ér az egész, mert lehallgathatják a rendszert és megtudják, hogy felugrott nálatok a hőmérséklet 14.5 fokra is...
- nem zavar, csak nézek, mit Rozi a moziban

A kriptográfia nem attól lesz erős, hogy egy csomó marhaságot belelapátolsz. Addig tart a kriptográfia, ameddig a leggyengébb láncszeme.

Ha már egyszer bejutottam a WIFI hálózatodra, WPA PSK-val, kb. 10 perc feltörni az SSL-es kommunikációdat.
Hogyan?
- gondolom nem használsz tanusítványokat
- ebben az esetben man-in-the-middle-lel feltöröm
- ez úgy működik, hogy valami ólommal árnyékolom az ESP-s hőmérődet és a szerver és a hőmérő közé berakok egy másik szervert (középre in-the middle), innentől az SSL csatornád tanusítványok nélkül titkosítatlannak számít

Ha a WIFI hálózatod titkosítva van és én azt feltöröm, onnantól amennyiben nem használsz kliens és szerver tanusítványokat SSL alatt egyszerre, akkor simán elolvasom bármiféle adatot küldenek a hőmérőid egymásnak. Innentől kezdve az SSL titkosításod CPU melegítőként funkcionál.

Berakhatsz egy csomó szót, SSL, TLS, AES, RSA, Diffie Helman, WPA-PSK,... ha a mögöttes tartalmat nem érted, akkor egy középiskolás gyermek röhögve töri fel a kommunikációdat.
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 »

Abban egyet értünk hogy csak úgy lehet elkerülni mindenféle betörést ahogy a viccben is mondják, szólni kell a haveroknak hogy oda ne törjenek be. :)
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 »

Az információt értékénél fogva kell kezelni.

Hőméréshez a WPA PSK elég.

Az ESP8266-ban nincs hardveres kriptográfia. Az ESP32-ben van csak.
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 »

Ércelődésem csak azért volt mert úgy rémlik régebben a WPA-t is soknak tartottad esp mellé.
Na de töltsük fel további hasznosnak tűnő infóval a topikot.
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 »

Újra a látókörömbe került ez a megoldás kommunikálásra.
https://github.com/marcoschwartz/aREST

Ez a tipikus nem érdekel mi történik a háttérben csak kapjam meg az adatot megoldást kínálja nekünk.
Szerintem hasznos dolog lesz ezt ajánlani, ha nem akar sokat magyarázni az ember, a kérdező pedig esetleg nem szeret olvasni. :P
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 »

Megtaláltam az ideális klienset is hozzá.
https://github.com/CanTireInnovations/e ... est-client

Persze nagy tesztelés még nem volt, de a minták önmagukban működnek.
Válasz küldése