diff --git a/config_relay.cmake b/config_relay.cmake index a7292cf..466ae69 100644 --- a/config_relay.cmake +++ b/config_relay.cmake @@ -9,7 +9,7 @@ add_definitions( -DILI9341_DRIVER=1 -DTFT_MOSI=13 -DTFT_SCLK=15 - -DTFT_CS=14 + -DTFT_CS=5 -DTFT_DC=12 -DTFT_RST=2 -DSPI_FREQUENCY=40000000 @@ -45,24 +45,6 @@ set(BOBBYCAR_BUILDFLAGS -DFEATURE_WEBSERVER #-DFEATURE_OTA -DOTA_USERNAME="relay" - -DFEATURE_DPAD_5WIRESW_2OUT - -DPINS_DPAD_5WIRESW_OUT1=18 - -DPINS_DPAD_5WIRESW_OUT2=19 - -DPINS_DPAD_5WIRESW_IN1=4 - -DPINS_DPAD_5WIRESW_IN2=5 - -DPINS_DPAD_5WIRESW_IN3=27 - -DDPAD_5WIRESW_UP=4 - -DDPAD_5WIRESW_DOWN=7 - -DDPAD_5WIRESW_CONFIRM=1 - -DDPAD_5WIRESW_BACK=10 - -DDPAD_5WIRESW_PROFILE0=11 - -DDPAD_5WIRESW_PROFILE1=8 - -DDPAD_5WIRESW_PROFILE2=5 - -DDPAD_5WIRESW_PROFILE3=2 - -DDPAD_5WIRESW_BLINK_LEFT=9 - -DDPAD_5WIRESW_BLINK_RIGHT=0 - -DDPAD_5WIRESW_QUICKACTION_DOWN=3 - -DDPAD_5WIRESW_QUICKACTION_UP=6 # -DDPAD_5WIRESW_DEBUG -DDEFAULT_GASMIN=842 -DDEFAULT_GASMAX=2480 diff --git a/main/espnowfunctions.cpp b/main/espnowfunctions.cpp index c8310c2..e499d27 100644 --- a/main/espnowfunctions.cpp +++ b/main/espnowfunctions.cpp @@ -14,7 +14,8 @@ #include "globals.h" #include "utils.h" #include "time_bobbycar.h" -#define PIN_RELAY 17 +#define PIN_RELAY_HUPE 14 +#define PIN_RELAY_COMPRESSOR 27 using namespace std::chrono_literals; @@ -23,7 +24,7 @@ namespace { constexpr const char * const TAG = "BOBBY_ESP_NOW"; } // namespace -std::optional ledtimer; +std::optional relayHupeTimer; std::optional last_send_ms; uint16_t lastYear; // Used for esp-now timesync @@ -32,6 +33,9 @@ std::deque message_queue{}; std::vector peers{}; uint8_t initialized{0}; +bool compressor_is_an{false}; +bool hupe_state{false}; + bool receiveTimeStamp{true}; bool receiveTsFromOtherBobbycars{true}; @@ -133,15 +137,24 @@ extern "C" void onReceive(const uint8_t *mac_addr, const uint8_t *data, int len) return; } - if (msg_type == "BOBBYOPEN" && msg_value == stringSettings.esp_now_door_id) + if (msg_type == "BOBBYHUPE_AN") { //Serial.println("Bob is opening the door"); - digitalWrite(PIN_RELAY, HIGH); - ledtimer = espchrono::millis_clock::now(); + hupe_state = true; + relayHupeTimer = espchrono::millis_clock::now(); } - else if(msg_type == "BOBBYOPEN" && msg_value == stringSettings.esp_now_ifttt_door_id) + else if (msg_type == "BOBBYHUPE_AUS") { - + hupe_state = false; + relayHupeTimer = std::nullopt; + } + else if (msg_type == "COMPRESSOR_AN") + { + compressor_is_an = true; + } + else if (msg_type == "COMPRESSOR_AUS") + { + compressor_is_an = false; } /*const std::string_view data_str{(const char *)data, size_t(data_len)}; @@ -166,8 +179,10 @@ extern "C" void onReceive(const uint8_t *mac_addr, const uint8_t *data, int len) void initESPNow() { - pinMode(PIN_RELAY, OUTPUT); - digitalWrite(PIN_RELAY, LOW); + pinMode(PIN_RELAY_COMPRESSOR, OUTPUT); + pinMode(PIN_RELAY_HUPE, OUTPUT); + digitalWrite(PIN_RELAY_COMPRESSOR, HIGH); + digitalWrite(PIN_RELAY_HUPE, HIGH); ESP_LOGI(TAG, "Initializing esp-now..."); @@ -236,8 +251,17 @@ void initESPNow() void handle() { - if (!ledtimer || espchrono::ago(*ledtimer) > 3s) { - digitalWrite(PIN_RELAY, LOW); + digitalWrite(PIN_RELAY_COMPRESSOR, !compressor_is_an); + digitalWrite(PIN_RELAY_HUPE, !hupe_state); + ESP_LOGI(TAG, "Compressor: %d, Hupe: %d", compressor_is_an, hupe_state); + if (relayHupeTimer && espchrono::ago(*relayHupeTimer) > 3s) + { + hupe_state = false; + relayHupeTimer = std::nullopt; + } + else if (relayHupeTimer && espchrono::ago(*relayHupeTimer) <= 3s) + { + hupe_state = true; } if (!last_send_ms || espchrono::ago(*last_send_ms) > 1s) {