2
0
Fork 0
This commit is contained in:
Siwat Sirichai 2024-06-21 20:56:14 +07:00
commit f0aa1b8d8e
2 changed files with 61 additions and 1 deletions

View File

@ -10,8 +10,25 @@
#define BUTTON_SHORT_PRESS_TIME_MS 75
#define BUTTON_LONG_PRESS_TIME_MS 600
#define FAN1_BUTTON_PIN 4
#define FAN2_BUTTON_PIN 5
#define FAN3_BUTTON_PIN 6
#define FAN4_BUTTON_PIN 7
#define FAN5_BUTTON_PIN 8
#define PUMP_BUTTON_PIN 9
#define STADIUM_RIGHT_BUTTON_PIN 10
#define STADIUM_LEFT_BUTTON_PIN 11
#define RIGHT_LIGHT_RELAY_PIN 0
#define LEFT_LIGHT_RELAY_PIN 1
#define FAN1_RELAY_PIN 2
#define FAN2_RELAY_PIN 3
#define FAN3_RELAY_PIN 4
#define FAN4_RELAY_PIN 5
#define FAN5_RELAY_PIN 6
#define PUMP_RELAY_PIN 7
#define STADIUM_RIGHT_LIGHT_RELAY_PIN 8
#define STADIUM_LEFT_LIGHT_RELAY_PIN 9
/***********************************************
* Display Configuration *

View File

@ -140,6 +140,21 @@ void loop()
rightOnButton.loop();
rightOffButton.loop();
espmega.loop();
// If pump is on and all fans are off, turn off pump
// Because pump pumps water to the radiator in front of the fans
// Without the fans, no cooling effect will be achieved
if (espmega.outputs.getState(PUMP_RELAY_PIN) == HIGH)
{
if (espmega.outputs.getState(FAN1_RELAY_PIN) == LOW &&
espmega.outputs.getState(FAN2_RELAY_PIN) == LOW &&
espmega.outputs.getState(FAN3_RELAY_PIN) == LOW &&
espmega.outputs.getState(FAN4_RELAY_PIN) == LOW &&
espmega.outputs.getState(FAN5_RELAY_PIN) == LOW)
{
espmega.outputs.digitalWrite(PUMP_RELAY_PIN, LOW);
}
}
}
void send_stop_bytes(HardwareSerial &uart)
@ -151,7 +166,35 @@ void send_stop_bytes(HardwareSerial &uart)
void handle_input_change(uint8_t pin, bool state)
{
// Do nothing
switch (pin)
{
case FAN1_BUTTON_PIN:
espmega.outputs.digitalWrite(FAN1_RELAY_PIN, !espmega.outputs.getState(FAN1_RELAY_PIN));
break;
case FAN2_BUTTON_PIN:
espmega.outputs.digitalWrite(FAN2_RELAY_PIN, !espmega.outputs.getState(FAN2_RELAY_PIN));
break;
case FAN3_BUTTON_PIN:
espmega.outputs.digitalWrite(FAN3_RELAY_PIN, !espmega.outputs.getState(FAN3_RELAY_PIN));
break;
case FAN4_BUTTON_PIN:
espmega.outputs.digitalWrite(FAN4_RELAY_PIN, !espmega.outputs.getState(FAN4_RELAY_PIN));
break;
case FAN5_BUTTON_PIN:
espmega.outputs.digitalWrite(FAN5_RELAY_PIN, !espmega.outputs.getState(FAN5_RELAY_PIN));
break;
case PUMP_BUTTON_PIN:
espmega.outputs.digitalWrite(PUMP_RELAY_PIN, !espmega.outputs.getState(FAN5_RELAY_PIN));
break;
case STADIUM_RIGHT_BUTTON_PIN:
espmega.outputs.digitalWrite(STADIUM_RIGHT_LIGHT_RELAY_PIN, !espmega.outputs.getState(STADIUM_RIGHT_LIGHT_RELAY_PIN));
break;
case STADIUM_LEFT_BUTTON_PIN:
espmega.outputs.digitalWrite(STADIUM_LEFT_LIGHT_RELAY_PIN, !espmega.outputs.getState(STADIUM_LEFT_LIGHT_RELAY_PIN));
break;
default:
break;
}
}
void handle_mqtt_message(char *topic, char *payload)