Links2004 / arduinoWebSockets

arduinoWebSockets
GNU Lesser General Public License v2.1
1.88k stars 556 forks source link

WebSocketServer + NETWORK_ENC28J60 #358

Open Loucotolo opened 6 years ago

Loucotolo commented 6 years ago

Hi, I'm trying to use the websocketServer example with a esp8266 and an enc28j60, but I'm not able to connect to it, the code I have and the following:

/*
WebSocketServer.ino
*/
#define WEBSOCKETS_NETWORK_TYPE NETWORK_ENC28J60

#include <Arduino.h>

#include <WebSocketsServer.h>
#include <Hash.h>
#include <UIPEthernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0x5E, 0xA9, 0xBE, 0xE7, 0xFE, 0xED };

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 1, 177);

WebSocketsServer webSocket = WebSocketsServer(81);

#define USE_SERIAL Serial1

void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) {

switch (type) {
case WStype_DISCONNECTED:
USE_SERIAL.printf("[%u] Disconnected!\n", num);
break;
case WStype_CONNECTED:
{
// IPAddress ip = webSocket.remoteIP(num);
// USE_SERIAL.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);

    // send message to client
    webSocket.sendTXT(num, "Connected");
  }
  break;
case WStype_TEXT:
  USE_SERIAL.printf("[%u] get Text: %s\n", num, payload);

  // send message to client
  // webSocket.sendTXT(num, "message here");

  // send data to all connected clients
  // webSocket.broadcastTXT("message here");
  break;
case WStype_BIN:
  USE_SERIAL.printf("[%u] get binary length: %u\n", num, length);
  hexdump(payload, length);

  // send message to client
  // webSocket.sendBIN(num, payload, length);
  break;
}

}

void setup() {
// USE_SERIAL.begin(921600);
USE_SERIAL.begin(115200);

//Serial.setDebugOutput(true);
USE_SERIAL.setDebugOutput(true);

USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();

for (uint8_t t = 4; t > 0; t--) {
USE_SERIAL.printf("[SETUP] BOOT WAIT %d...\n", t);
USE_SERIAL.flush();
delay(1000);
}

if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
} else {
Serial.print("localIP: ");
Serial.println(Ethernet.localIP());
Serial.print("subnetMask: ");
Serial.println(Ethernet.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(Ethernet.gatewayIP());
Serial.print("dnsServerIP: ");
Serial.println(Ethernet.dnsServerIP());

}

webSocket.begin();
webSocket.onEvent(webSocketEvent);
}

void loop() {
webSocket.loop();
}

OUTPUT COMPORT:

[SETUP] BOOT WAIT 4...
[SETUP] BOOT WAIT 3...
[SETUP] BOOT WAIT 2...
[SETUP] BOOT WAIT 1...

localIP: 192.168.0.185
subnetMask: 255.255.255.0
gatewayIP: 192.168.0.1
dnsServerIP: 62.28.116.41

And I'm trying to call me at:
192.168.0.185:81
Links2004 commented 6 years ago

please enable the debug output via the IDE menu, this will help to see more detail.

do you get a ping / TCP sync ack from the IP Adresse?

Loucotolo commented 6 years ago

capturar

I hope it helps