arduinoWebSockets
arduinoWebSockets copied to clipboard
Serial Monitor Garbage datas
I am currently testing WebsockClientSocketIO from the latest library on my ESP8266. I only change the AP and Host on your example but whenever I try to check the Serial Monitor I get garbage data while using Baud Rate of 115200. Please Help
/* WebSocketClientSocketIO.ino
Created on: 06.06.2016
*/
#include <Arduino.h>
#include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h>
#include <ArduinoJson.h>
#include <WebSocketsClient.h> #include <SocketIOclient.h>
#include <Hash.h>
ESP8266WiFiMulti WiFiMulti; SocketIOclient socketIO;
#define USE_SERIAL Serial1
void socketIOEvent(socketIOmessageType_t type, uint8_t * payload, size_t length) { switch (type) { case sIOtype_DISCONNECT: USE_SERIAL.printf("[IOc] Disconnected!\n"); break; case sIOtype_CONNECT: USE_SERIAL.printf("[IOc] Connected to url: %s\n", payload);
// join default namespace (no auto join in Socket.IO V3)
socketIO.send(sIOtype_CONNECT, "/");
break;
case sIOtype_EVENT:
USE_SERIAL.printf("[IOc] get event: %s\n", payload);
break;
case sIOtype_ACK:
USE_SERIAL.printf("[IOc] get ack: %u\n", length);
hexdump(payload, length);
break;
case sIOtype_ERROR:
USE_SERIAL.printf("[IOc] get error: %u\n", length);
hexdump(payload, length);
break;
case sIOtype_BINARY_EVENT:
USE_SERIAL.printf("[IOc] get binary: %u\n", length);
hexdump(payload, length);
break;
case sIOtype_BINARY_ACK:
USE_SERIAL.printf("[IOc] get binary ack: %u\n", length);
hexdump(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); }
// disable AP if (WiFi.getMode() & WIFI_AP) { WiFi.softAPdisconnect(true); }
WiFiMulti.addAP("***********", "**********************");
//WiFi.disconnect(); while (WiFiMulti.run() != WL_CONNECTED) { delay(100); }
String ip = WiFi.localIP().toString(); USE_SERIAL.printf("[SETUP] WiFi Connected %s\n", ip.c_str());
// server address, port and URL socketIO.beginSSL("socket.*******.ph", 8000, "/socket.io/?EIO=4");
// event handler socketIO.onEvent(socketIOEvent); }
unsigned long messageTimestamp = 0; void loop() { socketIO.loop();
uint64_t now = millis();
if (now - messageTimestamp > 2000) { messageTimestamp = now;
// creat JSON message for Socket.IO (event)
DynamicJsonDocument doc(1024);
JsonArray array = doc.to<JsonArray>();
// add evnet name
// Hint: socket.on('event_name', ....
array.add("event_name");
// add payload (parameters) for the event
JsonObject param1 = array.createNestedObject();
param1["now"] = (uint32_t) now;
// JSON to String (serializion)
String output;
serializeJson(doc, output);
// Send event
socketIO.sendEVENT(output);
// Print JSON for debugging
USE_SERIAL.println(output);
} }