//Gyro Adafruit MPU6050
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
//Filesystem
#include "SPIFFS.h"
//Webserver
#include <WiFi.h>
#include <WebServer.h>
#include "Credentials.h"
#include <Preferences.h>
String ssid = WIFI_SSID;
String password = WIFI_PASSWORD;
WebServer webServer(80);
#include <DNSServer.h>
const byte DNS_PORT = 53;
DNSServer dnsServer;
//Over the Air Update
#include <ArduinoOTA.h>
const char deviceName[] = "Caravan Leveler";
const char devicePassword[] = "SportAndFun";
bool accelInitialized = false;
float calibrationX = -0.0;
float calibrationY = -0.0;
float pitch, roll, temperature, voltage;
long lastMillisClientAvailable = 0;
bool voltage_read = false;
String logBuffer;
bool UploadIsOTA = false;
//Settings
Preferences settings;
bool Serial_Enabled = true;
bool OTA_Enabled = true;
uint8_t levelThreshold = 5;
int invertAxis = 0;
bool useAcessPointMode = false;
float voltThreshold = 0.0;
uint8_t voltagePin = 35;
int resistor1 = 5100;
int resistor2 = 1000;
void logPrintLn(const String &msg);
void logPrint(const String &msg, bool linebreak = false);
void setup() {
SerialBegin();
MPU6050Begin();
SpiffsBegin();
LoadData();
//Overwrite Serial Output, since SPIFFS not working
Serial_Enabled = true;
WiFiBegin();
setupOTA();
InitializeVoltageMeasuring();
}
void loop() {
//WebServer
webServer.handleClient();
//DNS
dnsServer.processNextRequest();
//OTA
OTA_Handle();
//Test for WokWi
delay(500);
GetCurrentVoltage();
getLevel();
}