Improve EVSE hardware module

This commit is contained in:
2025-06-08 10:43:42 +01:00
parent 25744de46c
commit d5827eb0e3
4 changed files with 24 additions and 6 deletions

View File

@@ -10,6 +10,7 @@ J1772 EVSE firmware for ESP32 based devices.
- Responsive web-interface
- OTA update
- Integrated energy meter
- Energy detection for relay control
- [REST](https://github.com/dzurikmiroslav/esp32-evse/wiki/Rest) API
- MQTT API
- [Modbus](https://github.com/dzurikmiroslav/esp32-evse/wiki/Modbus) (RS485, TCP)

View File

@@ -3,6 +3,7 @@
#include "ac_relay.h"
#include "socket_lock.h"
#include "proximity.h"
#include "meter.h"
static const char *TAG = "evse_hardware";
@@ -26,8 +27,14 @@ bool evse_hardware_is_vehicle_connected(void) {
}
bool evse_hardware_is_energy_detected(void) {
// TODO: Substituir com medição real de corrente ou consumo
return true;
if (!meter_is_running()) {
return false;
}
MeterData data = meter_getData();
const float THRESHOLD = 0.1f; // Corrente mínima para considerar consumo
return (data.irmsA > THRESHOLD) || (data.irmsB > THRESHOLD) ||
(data.irmsC > THRESHOLD);
}
void evse_hardware_relay_on(void) {
@@ -51,5 +58,5 @@ void evse_hardware_unlock(void) {
}
bool evse_hardware_is_locked(void) {
return socket_lock_get_status() == SOCKED_LOCK_STATUS_IDLE;
return socket_lock_is_locked_state();
}

View File

@@ -90,5 +90,10 @@ void socket_lock_set_locked(bool locked);
*/
socket_lock_status_t socket_lock_get_status(void);
/**
* @brief Read the current physical lock state using the detection pin.
*/
bool socket_lock_is_locked_state(void);
#endif /* SOCKED_LOCK_H_ */

View File

@@ -51,6 +51,11 @@ static bool is_locked(void)
return gpio_get_level(board_config.socket_lock_detection_gpio) == detection_high;
}
bool socket_lock_is_locked_state(void)
{
return is_locked();
}
static void socket_lock_task_func(void* param)
{
uint32_t notification;