Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Uživatelský avatar
morlor
Příspěvky: 45
Registrován: 07 lis 2013, 14:30
Kontaktovat uživatele:

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od morlor »

Ahoj,
MOXA je veliké. Testoval jsem modul HC-12, ale byl problém vzdálenost a kmitočet aby to nevadilo ČTÚ. Chci vyrobit něco levného a proto mě napadlo ESP8266.
Zatím dík za nápady.
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1519
Registrován: 16 úno 2013, 14:26

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od Dex »

Tak ještě koukni na ESP32, to má mnohem lepší Wi-Fi část a malé je to taky.

Pro inspiraci https://m5stack.com/collections/m5-atom ... -rs232-kit

A bacha na revizáka na ten výtah - oni jsou děsně přísný a strašně rádi vytrhávají kabely, které nejsou jejich :)
"all your robots are belong to us"
robodoupe.cz
Uživatelský avatar
morlor
Příspěvky: 45
Registrován: 07 lis 2013, 14:30
Kontaktovat uživatele:

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od morlor »

MOXA je veliké a drahé. Už jsem zkoušel modul HC-12, ale nemá potřebný dosah na vzdálenost + omezení ze strany ČTÚ. Proto se snažím použít ESP8266. Potřebuji poslat dotaz na výtah a ten odpoví opravdu nic profi. Levné bezdrátové spojení.
Díky za pomoc a nápady.
Uživatelský avatar
morlor
Příspěvky: 45
Registrován: 07 lis 2013, 14:30
Kontaktovat uživatele:

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od morlor »

A co přes AT příkazy to by šlo spojit dva moduly ESP8266?
AT+RESTORE
AT
AT+CWMODE=1
AT+CWJAP="qwert","1234"
AT+CIFSR
AT+CIPMUX=1
AT+CIPSERVER=1,23
AT+CIPSEND=0,6
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1519
Registrován: 16 úno 2013, 14:26

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od Dex »

Na ESP8266 bych se v tomto případě vykašlal a zkusil ESP32 kde je lépe vyřešené rádio a často i anténa (třeba v tom Atomu od M5Stack).

A tady https://github.com/AlphaLima/ESP32-Serial-Bridge zdroják pro ESP32 co po letmém prohlédnutí vypadá, že by mohl fungovat (holt se použije jen jeden sériák).

AT příkazy jsem na ESPčku snad nikdy nepoužil, takže tam neporadím.
"all your robots are belong to us"
robodoupe.cz
Uživatelský avatar
morlor
Příspěvky: 45
Registrován: 07 lis 2013, 14:30
Kontaktovat uživatele:

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od morlor »

Ahoj, moc se omlouvám jak jsem napsal dotaz mě to vůbec nedošlo.
Potřebuji odeslat do výtahu např. E+INFO a výtah na to odpoví E=4 (v jakém patře je výtah – je ve čtvrtém patře)
Už asi tuším jak to udělám. Moc díky za pomoc.
Uživatelský avatar
morlor
Příspěvky: 45
Registrován: 07 lis 2013, 14:30
Kontaktovat uživatele:

Re: Pomocí ESP8266 WIFI spojit dvě PC (TX,RX,GND)

Příspěvek od morlor »

Ahoj pokud se to bude někomu hodit dávám zdroják.
První client je na ip(192,168,9,200);
Druhý client je na ip(192,168,9,20);

po stisknutí tlačítka pošle na druhé ESP čas millis na Serial.println dokud není " \n"

Kód: Vybrat vše




//com 5 ggggg

#include <ESP8266WiFi.h>

IPAddress ip(192,168,9,200); 
IPAddress gateway(192,168,9,1);
IPAddress subnet(255,255,255,0);

const char* ssid     = "BUFET";
const char* password = "12345";
const char* serverx = "192.168.9.20";

WiFiServer server(23);
String header;

WiFiClient client;

void setup() {
Serial.begin(9600);
pinMode(D2, INPUT);

delay(10);
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}

server.begin();
}

void data_ven(){
if (client.connect(serverx,23)) {
//String dataSend = "5QWERT " + String(millis()/1000 ) + " \n";

String dataSend = "5 ANALOG " + String(analogRead(0)) + " \n";



client.println(dataSend); 
//Serial.println("poslal!");
delay(1500);
}} 


  
void loop() {

if(digitalRead(D2) == 0)
{data_ven();}
else
{int b=0;}  

WiFiClient client = server.available();  

if (client) {  
//Serial.write("prijato - ");
header = "";           
while (client.connected()) {           
if (client.available()) {            
char c = client.read(); 
//if (String (c) != "x") 

if ( c != '\n') 


{    header = header + c; }
else      
{client.stop();
Serial.println(header);
}}
}}

}

Odpovědět