-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbattery.cpp
More file actions
40 lines (34 loc) · 1.09 KB
/
battery.cpp
File metadata and controls
40 lines (34 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "esp32-hal-gpio.h"
#include "battery.h"
#include "Arduino.h"
#include "actions.h"
#include <WiFi.h>
#include "socket.h"
extern bool low_battery;
extern rgb_led_t rgb_led;
extern WiFiClient client;
int get_battery_level(){
int analog_value = analogRead(BATTERY_LEVEL_PIN);
int battery_level = (analog_value - CONVERT_ANALOG(ESP_MIN_VOLTAGE)) / (CONVERT_ANALOG(ESP_BASE_VOLTAGE) - CONVERT_ANALOG(ESP_MIN_VOLTAGE)) * 100;
return ROUND_UP(battery_level);
}
bool is_low_battery(int battery_level){
return battery_level < BATTERY_LEVEL_THRESHOLD;
}
void set_battery_level(){
int battery_level = get_battery_level();
low_battery = is_low_battery(battery_level);
if (low_battery){
rgb_led.red.value = 255;
rgb_led.blue.value = 0;
rgb_led.green.value = 0;
}else{
rgb_led.red.value = RED_VALUE;
rgb_led.blue.value = BLUE_VALUE;
rgb_led.green.value = GREEN_VALUE;
}
char *set_battery_message = construct_set_battery_message(battery_level);
// send the set_battery message
Serial.println("Sending set_battery message...");
client.write(set_battery_message);
}