we
This commit is contained in:
parent
20f77a0a41
commit
f829fc5156
10
ESPBMS.ino
10
ESPBMS.ino
@ -2,7 +2,7 @@
|
|||||||
#include <ETH.h>
|
#include <ETH.h>
|
||||||
#include "WebSocketManager.h"
|
#include "WebSocketManager.h"
|
||||||
|
|
||||||
WebSocketManager wsManager("wss://api.ecomotus.co.uk", 443, "/socket");
|
WebSocketManager wsManager("ws://chodbox.home.arpa", 8765, "/");
|
||||||
|
|
||||||
static BLEUUID serviceUUID("0000ff00-0000-1000-8000-00805f9b34fb"); //xiaoxiang bms service
|
static BLEUUID serviceUUID("0000ff00-0000-1000-8000-00805f9b34fb"); //xiaoxiang bms service
|
||||||
static BLEUUID charUUID_rx("0000ff01-0000-1000-8000-00805f9b34fb"); //xiaoxiang bms rx id
|
static BLEUUID charUUID_rx("0000ff01-0000-1000-8000-00805f9b34fb"); //xiaoxiang bms rx id
|
||||||
@ -34,7 +34,6 @@ void setup() {
|
|||||||
WiFi.onEvent(WiFiEvent);
|
WiFi.onEvent(WiFiEvent);
|
||||||
ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK_MODE);
|
ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK_MODE);
|
||||||
BLEDevice::init("");
|
BLEDevice::init("");
|
||||||
wsManager.begin();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
@ -53,6 +52,13 @@ void loop() {
|
|||||||
delay(250);
|
delay(250);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wsManager.begin();
|
||||||
|
|
||||||
|
while(!wsManager.isConnected()){
|
||||||
|
Serial.println("Wait for socket...");
|
||||||
|
delay(250);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < foundDevices.getCount(); i++) {
|
for (int i = 0; i < foundDevices.getCount(); i++) {
|
||||||
delay(1000);
|
delay(1000);
|
||||||
Serial.printf("\r\n\r\n===============================\r\n\r\n");
|
Serial.printf("\r\n\r\n===============================\r\n\r\n");
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
#include <WebSocketsClient.h>
|
#include <WebSocketsClient.h>
|
||||||
#include <WiFiClientSecure.h>
|
#include <WiFiClientSecure.h>
|
||||||
#include "ca_cert.h" // Include the CA certificate
|
#include <WiFiClient.h>
|
||||||
|
#include "ca_cert.h"
|
||||||
|
|
||||||
class WebSocketManager {
|
class WebSocketManager {
|
||||||
public:
|
public:
|
||||||
@ -19,24 +20,24 @@ public:
|
|||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void sendText(const char* format, Args... args) {
|
void sendText(const char* format, Args... args) {
|
||||||
if (webSocket.isConnected()) {
|
if (webSocket.isConnected() && isConnected) {
|
||||||
char buffer[512]; // Define a buffer to hold the constructed message
|
char buffer[512]; // Define a buffer to hold the constructed message
|
||||||
snprintf(buffer, sizeof(buffer), format, args...); // Use snprintf to format the string
|
snprintf(buffer, sizeof(buffer), format, args...); // Use snprintf to format the string
|
||||||
webSocket.sendTXT(buffer);
|
webSocket.sendTXT(buffer);
|
||||||
Serial.print("[WebSocket] Sent: ");
|
|
||||||
}else{
|
|
||||||
Serial.printf("[WebSocket] Dropped: ");
|
|
||||||
}
|
}
|
||||||
Serial.println(buffer);
|
}
|
||||||
|
|
||||||
|
static bool isConnected() {
|
||||||
|
return connected;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void webSocketTask(void *param) {
|
static void webSocketTask(void *param) {
|
||||||
WiFiClientSecure client;
|
WiFiClient client;
|
||||||
client.setCACert(ca_cert);
|
//client.setCACert(ca_cert);
|
||||||
webSocket.beginSSL(serverUrl.c_str(), serverPort, serverPath.c_str(), ca_cert);
|
webSocket.beginSSL(serverUrl.c_str(), serverPort, serverPath.c_str(), ca_cert);
|
||||||
webSocket.onEvent(webSocketEvent);
|
webSocket.onEvent(webSocketEvent);
|
||||||
webSocket.setReconnectInterval(5000);
|
webSocket.setReconnectInterval(1000);
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
webSocket.loop();
|
webSocket.loop();
|
||||||
@ -47,43 +48,19 @@ private:
|
|||||||
static void webSocketEvent(WStype_t type, uint8_t * payload, size_t length) {
|
static void webSocketEvent(WStype_t type, uint8_t * payload, size_t length) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case WStype_DISCONNECTED:
|
case WStype_DISCONNECTED:
|
||||||
if (payload) {
|
connected = false;
|
||||||
Serial.print("[WebSocket] Disconnected - Reason: ");
|
Serial.println("[WebSocket] Disconnected");
|
||||||
Serial.println((char*)payload);
|
|
||||||
} else {
|
|
||||||
Serial.println("[WebSocket] Disconnected - No reason provided");
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case WStype_CONNECTED:
|
case WStype_CONNECTED:
|
||||||
|
connected = true;
|
||||||
Serial.println("[WebSocket] Connected");
|
Serial.println("[WebSocket] Connected");
|
||||||
// If your WebSocket server sends a greeting or any message upon connection, you can log it here
|
|
||||||
if (payload && length > 0) {
|
|
||||||
Serial.print("[WebSocket] Server response: ");
|
|
||||||
Serial.println((char*)payload);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case WStype_TEXT:
|
case WStype_TEXT:
|
||||||
Serial.print("[WebSocket] Received text: ");
|
Serial.print("[WebSocket] Received: ");
|
||||||
Serial.println((char*)payload);
|
Serial.println((char*)payload);
|
||||||
break;
|
break;
|
||||||
case WStype_BIN:
|
case WStype_BIN:
|
||||||
Serial.print("[WebSocket] Received binary data, length: ");
|
Serial.println("[WebSocket] Received binary data");
|
||||||
Serial.println(length);
|
|
||||||
// Optionally, you can add a function to dump binary data for deeper inspection
|
|
||||||
break;
|
|
||||||
case WStype_ERROR:
|
|
||||||
Serial.print("[WebSocket] Error: ");
|
|
||||||
if (payload) {
|
|
||||||
Serial.println((char*)payload);
|
|
||||||
} else {
|
|
||||||
Serial.println("No specific error message provided.");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WStype_PING:
|
|
||||||
Serial.println("[WebSocket] Ping received");
|
|
||||||
break;
|
|
||||||
case WStype_PONG:
|
|
||||||
Serial.println("[WebSocket] Pong received");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -92,6 +69,7 @@ private:
|
|||||||
static String serverUrl;
|
static String serverUrl;
|
||||||
static uint16_t serverPort;
|
static uint16_t serverPort;
|
||||||
static String serverPath;
|
static String serverPath;
|
||||||
|
static bool connected;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Define static members
|
// Define static members
|
||||||
@ -99,5 +77,6 @@ WebSocketsClient WebSocketManager::webSocket;
|
|||||||
String WebSocketManager::serverUrl = "";
|
String WebSocketManager::serverUrl = "";
|
||||||
uint16_t WebSocketManager::serverPort = 0;
|
uint16_t WebSocketManager::serverPort = 0;
|
||||||
String WebSocketManager::serverPath = "";
|
String WebSocketManager::serverPath = "";
|
||||||
|
bool WebSocketManager::connected = false;
|
||||||
|
|
||||||
#endif // WEBSOCKETMANAGER_H
|
#endif // WEBSOCKETMANAGER_H
|
||||||
|
Loading…
Reference in New Issue
Block a user