Merge pull request #6 from PlxEV/codex/corrigir/melhorar-módulo-evse
Improve EVSE module
This commit is contained in:
@@ -10,6 +10,7 @@ J1772 EVSE firmware for ESP32 based devices.
|
|||||||
- Responsive web-interface
|
- Responsive web-interface
|
||||||
- OTA update
|
- OTA update
|
||||||
- Integrated energy meter
|
- Integrated energy meter
|
||||||
|
- Energy detection for relay control
|
||||||
- [REST](https://github.com/dzurikmiroslav/esp32-evse/wiki/Rest) API
|
- [REST](https://github.com/dzurikmiroslav/esp32-evse/wiki/Rest) API
|
||||||
- MQTT API
|
- MQTT API
|
||||||
- [Modbus](https://github.com/dzurikmiroslav/esp32-evse/wiki/Modbus) (RS485, TCP)
|
- [Modbus](https://github.com/dzurikmiroslav/esp32-evse/wiki/Modbus) (RS485, TCP)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#include "ac_relay.h"
|
#include "ac_relay.h"
|
||||||
#include "socket_lock.h"
|
#include "socket_lock.h"
|
||||||
#include "proximity.h"
|
#include "proximity.h"
|
||||||
|
#include "meter.h"
|
||||||
|
|
||||||
static const char *TAG = "evse_hardware";
|
static const char *TAG = "evse_hardware";
|
||||||
|
|
||||||
@@ -26,8 +27,14 @@ bool evse_hardware_is_vehicle_connected(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool evse_hardware_is_energy_detected(void) {
|
bool evse_hardware_is_energy_detected(void) {
|
||||||
// TODO: Substituir com medição real de corrente ou consumo
|
if (!meter_is_running()) {
|
||||||
return true;
|
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) {
|
void evse_hardware_relay_on(void) {
|
||||||
@@ -51,5 +58,5 @@ void evse_hardware_unlock(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool evse_hardware_is_locked(void) {
|
bool evse_hardware_is_locked(void) {
|
||||||
return socket_lock_get_status() == SOCKED_LOCK_STATUS_IDLE;
|
return socket_lock_is_locked_state();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,5 +90,10 @@ void socket_lock_set_locked(bool locked);
|
|||||||
*/
|
*/
|
||||||
socket_lock_status_t socket_lock_get_status(void);
|
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_ */
|
#endif /* SOCKED_LOCK_H_ */
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ static bool is_locked(void)
|
|||||||
return gpio_get_level(board_config.socket_lock_detection_gpio) == detection_high;
|
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)
|
static void socket_lock_task_func(void* param)
|
||||||
{
|
{
|
||||||
uint32_t notification;
|
uint32_t notification;
|
||||||
|
|||||||
Reference in New Issue
Block a user