#include <SPI.h>
#include <WiFi.h>
#include "ArduinoHttpClient.h"
#include "gps_module.h"
#include "battery_module.h"
// Connect WiFi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// WebSocket path
char serverAddress[] = "archocell.obaa.cloud";
int port = 8181;
// char endpoint[] = "/vehicle/atv-00003";
char endpoint[] = "/vehicle/sctr-00001";
// initialize the webSocket client
WiFiClient wifi;
// WsClient;
WebSocketClient client = WebSocketClient(wifi, serverAddress, port);
void setup() {
Serial.begin(115200);
Serial2.begin(9600); // Serial2 is connected to the custom chip
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Connect to GPS WS server
client.begin(endpoint);
Serial.println();
Serial.println("Ready to receive data from GPS!");
Serial.println();
initialBatterySetup();
}
void loop() {
while (Serial2.available()) {
char serialData = Serial2.read();
// Serial.print(serialData);
if (gps.decode(serialData)) {
// Decode GPS data from serial and send to cloud
decodeGPS(client);
// Converts Geographic Coordinates to Cartesian Plane
convertCoordinatesToCartesian(latitude, longitude);
}
}
delay(3000);
BMS_tasks_run();
updateFramebuffer(client);
updateMatrix();
}