#include "headerFile.h" SensorManager sensorManager; ESP8266WiFiMulti wifi; WebSocketsClient webSocket; #define USE_SERIAL Serial void setup() { Serial.begin(9600); Serial.println("startup"); delay(5000); connectWiFi(); sensorManager.sensorSetup(); websocketSetup(); } void loop() { SensorManager::Rotation rotation = sensorManager.readLoop(); // Convert quaternion to Euler angles in radians float roll = atan2(2.0f * (rotation.w * rotation.i + rotation.j * rotation.k), 1.0f - 2.0f * (rotation.i * rotation.i + rotation.j * rotation.j)); float pitch = asin(2.0f * (rotation.w * rotation.j - rotation.k * rotation.i)); float yaw = atan2(2.0f * (rotation.w * rotation.k + rotation.i * rotation.j), 1.0f - 2.0f * (rotation.j * rotation.j + rotation.k * rotation.k)); // Convert to degrees float rollDegrees = roll * 180.0f / PI; float pitchDegrees = pitch * 180.0f / PI; float yawDegrees = yaw * 180.0f / PI; Serial.print(roll); Serial.print(" "); Serial.print(pitch); Serial.print(" "); Serial.print(yaw); sendData(String(roll)); sendData(String(pitch)); sendData(String(yaw)); Serial.println(); webSocket.loop(); } void connectWiFi(){ WiFi.mode(WIFI_STA); wifi.addAP(ssid, pass); WiFi.begin(); while (WiFi.status() != WL_CONNECTED) { Serial.println("connecting to wifi"); delay(1000); } Serial.println(WiFi.localIP()); } void websocketSetup(){ //ws server address, port and URL webSocket.begin("192.168.178.118", 8001, ""); // try every 500 again if connection has failed webSocket.setReconnectInterval(500); } void sendData(String textString){ webSocket.sendTXT(textString); }