diff --git a/.vscode/settings.json b/.vscode/settings.json index 5bc1f09..5cea37b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,6 +19,7 @@ "valarray": "cpp", "associative_base": "cpp", "iterator": "cpp", - "serstream": "cpp" + "serstream": "cpp", + "__locale": "cpp" } } diff --git a/_code/measure-battery-level/Secret.sample.h b/_code/measure-battery-level/Secret.sample.h deleted file mode 100644 index b2674c9..0000000 --- a/_code/measure-battery-level/Secret.sample.h +++ /dev/null @@ -1,2 +0,0 @@ -char ssid[] = "secret"; -char pass[] = "secret"; diff --git a/_code/measure-battery-level/measure-battery-level.ino b/_code/measure-battery-level/measure-battery-level.ino index c432077..d90862a 100644 --- a/_code/measure-battery-level/measure-battery-level.ino +++ b/_code/measure-battery-level/measure-battery-level.ino @@ -4,10 +4,11 @@ #include #include +#define LED 3 #define BATTERY_ENABLE_PIN 6 // FIX: Change pin from GPIO5 (ADC2) to GPIO0 (ADC1) // Github Issue: https://github.com/hutscape/capsicum/issues/5 -#define BATTERY_MEASURE_PIN 5 +#define BATTERY_MEASURE_PIN 0 const char *ssid = "batt"; const char *password = "12345678"; @@ -19,6 +20,9 @@ void setup() { Serial.println(); Serial.println("Configuring access point..."); + pinMode(LED, OUTPUT); + pinMode(BATTERY_ENABLE_PIN, HIGH); + if (!WiFi.softAP(ssid, password)) { log_e("Soft AP creation failed."); while (1) {} @@ -29,6 +33,8 @@ void setup() { server.begin(); Serial.println("Server started"); + Serial.print("Battery Analog level: "); + Serial.println(measureBatteryVoltage()); } void loop() { @@ -39,30 +45,39 @@ void loop() { String currentLine = ""; while (client.connected()) { if (client.available()) { + digitalWrite(LED, HIGH); + client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println(); - client.print("hello world"); + + client.print("Battery Analog Level: "); + client.println(measureBatteryVoltage()); + client.println(); break; } } client.stop(); Serial.println("Client Disconnected."); + digitalWrite(LED, LOW); } } float measureBatteryVoltage() { - pinMode(BATTERY_ENABLE_PIN, OUTPUT); - digitalWrite(BATTERY_ENABLE_PIN, HIGH); - - delay(100); + pinMode(BATTERY_ENABLE_PIN, LOW); + delay(1000); - int rawValue = analogRead(BATTERY_MEASURE_PIN); + int sum = 0; + for (int i = 0; i < 100; i++) { + sum = sum + analogRead(BATTERY_MEASURE_PIN); + } + float mean = sum/100.0; + float adcValue = mean * (1.1 / 4096.0); + float batteryVoltage = adcValue * 11.0; // TODO: Fix schematic to use 10k instead of 100k - float voltage = rawValue * (3.3 / 4095); - digitalWrite(BATTERY_ENABLE_PIN, LOW); + digitalWrite(BATTERY_ENABLE_PIN, HIGH); - return voltage; + return batteryVoltage; }