From c7c3ebe1c22663c6738db02a589d23d21b346821 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Sun, 12 May 2024 18:42:40 +0200 Subject: [PATCH] wifi and websocket connection added --- .../Movement-sensor-code.ino | 48 ++++++++++++++----- .../Movement-sensor-code/SensorManager.cpp | 12 ++--- .../arduino/Movement-sensor-code/headerFIle.h | 6 ++- 3 files changed, 44 insertions(+), 22 deletions(-) diff --git a/code/arduino/Movement-sensor-code/Movement-sensor-code.ino b/code/arduino/Movement-sensor-code/Movement-sensor-code.ino index 04cccb2..339353c 100644 --- a/code/arduino/Movement-sensor-code/Movement-sensor-code.ino +++ b/code/arduino/Movement-sensor-code/Movement-sensor-code.ino @@ -2,23 +2,16 @@ SensorManager sensorManager; ESP8266WiFiMulti wifi; +WebSocketsClient webSocket; +#define USE_SERIAL Serial void setup() { Serial.begin(9600); Serial.println("startup"); - delay(5000); - - //Wifi - WiFi.mode(WIFI_STA); - wifi.addAP(ssid, pass); - while (WiFi.status() != WL_CONNECTED) { - Serial.println("connecting to wifi"); - delay(1000); - } - Serial.println(WiFi.localIP()); - - Wire.setClockStretchLimit(150000L); // Default stretch limit 150mS + delay(5000); + connectWiFi(); sensorManager.sensorSetup(); + websocketSetup(); } void loop() { @@ -39,6 +32,35 @@ void loop() { Serial.print(pitch); Serial.print(" "); Serial.print(yaw); + sendData(String(roll)); + sendData(String(pitch)); + sendData(String(yaw)); Serial.println(); -} \ No newline at end of file + 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); +} diff --git a/code/arduino/Movement-sensor-code/SensorManager.cpp b/code/arduino/Movement-sensor-code/SensorManager.cpp index a43c923..4ca3d62 100644 --- a/code/arduino/Movement-sensor-code/SensorManager.cpp +++ b/code/arduino/Movement-sensor-code/SensorManager.cpp @@ -4,21 +4,19 @@ SensorManager::SensorManager() {} void SensorManager::sensorSetup() { - Serial.println(); - Serial.println("BNO080 Read Example"); - - delay(1000); // Wait for BNO to boot - + Wire.setClockStretchLimit(150000L); // Default stretch limit 150mS Wire.begin(); - + //wait for the sensor to start before continue if (myIMU.begin() == false) { delay(1000); Serial.println("."); } + //start sensorfunction and start autocalibration + //once calibration is enabled it attempts to every 5 min Wire.setClock(400000); //Increase I2C data rate to 400kHz myIMU.calibrateAll(); //Turn on cal for Accel, Gyro, and Mag - myIMU.enableGyroIntegratedRotationVector(100); + myIMU.enableGyroIntegratedRotationVector(100); //send data every 100ms myIMU.enableMagnetometer(100); //Send data update every 100ms myIMU.saveCalibration(); //Saves the current dynamic calibration data (DCD) to memory myIMU.requestCalibrationStatus(); //Sends command to get the latest calibration status diff --git a/code/arduino/Movement-sensor-code/headerFIle.h b/code/arduino/Movement-sensor-code/headerFIle.h index a03e393..cd3f6ae 100644 --- a/code/arduino/Movement-sensor-code/headerFIle.h +++ b/code/arduino/Movement-sensor-code/headerFIle.h @@ -1,3 +1,5 @@ +#include + #include #include #include @@ -11,8 +13,8 @@ #include #include -#define ssid "LAPTOP3028043" -#define pass "619#5gJ5" +#define ssid "ObsidianAmstelveen" +#define pass "drijversstraatmaastricht" //custom classes #include "SensorManager.h" \ No newline at end of file