2
0
Fork 0

Update main.cpp

This commit is contained in:
Siwat Sirichai 2024-06-28 18:35:29 +07:00
parent 7edd4f6b48
commit bcc64b4a28
1 changed files with 27 additions and 16 deletions

View File

@ -28,11 +28,18 @@ void setup()
// Initialize the ESPMegaPRO
ESP_LOGV("CUD IoT OS", "Initializing ESPMegaPRO");
espmega.begin();
// Initialize Inputs
espmega.inputs.preloadInputBuffer();
espmega.inputs.setDebounceTime(RIGHT_STADIUM_LIGHT_SWITCH_PIN, SWITCH_DEBOUNCE_TIME_MS);
espmega.inputs.setDebounceTime(LEFT_STADIUM_LIGHT_SWITCH_PIN, SWITCH_DEBOUNCE_TIME_MS);
espmega.inputs.setDebounceTime(GIRLS_TOILET_LIGHT_SWITCH_PIN, SWITCH_DEBOUNCE_TIME_MS);
espmega.inputs.setDebounceTime(BOYS_TOILET_LIGHT_SWITCH_PIN, SWITCH_DEBOUNCE_TIME_MS);
// Initialize Outputs
for (uint8_t i = 0; i < 16; i++)
{
// Digital Pin Mode
espmega.outputs.setValue(i, 4095);
}
// Initialize IoT Modules
ESP_LOGV("CUD IoT OS", "Initializing IoT Modules");
espmega.setTimezone("ICT-7");
@ -76,6 +83,8 @@ void smartvar_init() {
// Initialize Smart Variables
ESP_LOGV("CUD IoT OS", "Initializing Smart Variables");
toiletLightsLock.begin(5);
toiletLightsLock.bindFRAM(&espmega.fram, 10000);
toiletLightsLock.setValueAutoSave(true);
// Construct the topic
char* toilet_lock_topic = (char*)malloc(strlen(TOPIC_TOILET_LIGHT_LOCK) + strlen(espmega.iot->getMqttConfig()->base_topic) + 5);
sprintf(toilet_lock_topic, "%s%s", espmega.iot->getMqttConfig()->base_topic, TOPIC_TOILET_LIGHT_LOCK);
@ -88,6 +97,8 @@ void smartvar_init() {
toiletLightsLock.enableValueRequest(toilet_lock_request_topic);
gymLightsLock.begin(5);
gymLightsLock.bindFRAM(&espmega.fram, 10010);
gymLightsLock.setValueAutoSave(true);
// Construct the topic
char* gym_lock_topic = (char*)malloc(strlen(TOPIC_GYM_LIGHT_LOCK) + strlen(espmega.iot->getMqttConfig()->base_topic) + 5);
sprintf(gym_lock_topic, "%s%s", espmega.iot->getMqttConfig()->base_topic, TOPIC_GYM_LIGHT_LOCK);
@ -112,14 +123,14 @@ void button_init()
if (get_gym_light_lock())
return;
// Turn on right light
espmega.outputs.digitalWrite(RIGHT_LIGHT_RELAY_PIN, HIGH); });
espmega.outputs.setState(RIGHT_LIGHT_RELAY_PIN, HIGH); });
rightOnButton.setLongPressCallback([]()
{
if (get_gym_light_lock())
return;
// Turn on both lights
espmega.outputs.digitalWrite(RIGHT_LIGHT_RELAY_PIN, HIGH);
espmega.outputs.digitalWrite(LEFT_LIGHT_RELAY_PIN, HIGH); });
espmega.outputs.setState(RIGHT_LIGHT_RELAY_PIN, HIGH);
espmega.outputs.setState(LEFT_LIGHT_RELAY_PIN, HIGH); });
rightOnButton.begin();
// Right Off Button
@ -130,14 +141,14 @@ void button_init()
if (get_gym_light_lock())
return;
// Turn off right light
espmega.outputs.digitalWrite(RIGHT_LIGHT_RELAY_PIN, LOW); });
espmega.outputs.setState(RIGHT_LIGHT_RELAY_PIN, LOW); });
rightOffButton.setLongPressCallback([]()
{
if (get_gym_light_lock())
return;
// Turn off both lights
espmega.outputs.digitalWrite(RIGHT_LIGHT_RELAY_PIN, LOW);
espmega.outputs.digitalWrite(LEFT_LIGHT_RELAY_PIN, LOW); });
espmega.outputs.setState(RIGHT_LIGHT_RELAY_PIN, LOW);
espmega.outputs.setState(LEFT_LIGHT_RELAY_PIN, LOW); });
rightOffButton.begin();
// Left On Button
@ -148,14 +159,14 @@ void button_init()
if (get_gym_light_lock())
return;
// Turn on left light
espmega.outputs.digitalWrite(LEFT_LIGHT_RELAY_PIN, HIGH); });
espmega.outputs.setState(LEFT_LIGHT_RELAY_PIN, HIGH); });
leftOnButton.setLongPressCallback([]()
{
if (get_gym_light_lock())
return;
// Turn on both lights
espmega.outputs.digitalWrite(RIGHT_LIGHT_RELAY_PIN, HIGH);
espmega.outputs.digitalWrite(LEFT_LIGHT_RELAY_PIN, HIGH); });
espmega.outputs.setState(RIGHT_LIGHT_RELAY_PIN, HIGH);
espmega.outputs.setState(LEFT_LIGHT_RELAY_PIN, HIGH); });
leftOnButton.begin();
// Left Off Button
@ -164,12 +175,12 @@ void button_init()
leftOffButton.setShortPressCallback([]()
{
// Turn off left light
espmega.outputs.digitalWrite(LEFT_LIGHT_RELAY_PIN, LOW); });
espmega.outputs.setState(LEFT_LIGHT_RELAY_PIN, LOW); });
leftOffButton.setLongPressCallback([]()
{
// Turn off both lights
espmega.outputs.digitalWrite(RIGHT_LIGHT_RELAY_PIN, LOW);
espmega.outputs.digitalWrite(LEFT_LIGHT_RELAY_PIN, LOW); });
espmega.outputs.setState(RIGHT_LIGHT_RELAY_PIN, LOW);
espmega.outputs.setState(LEFT_LIGHT_RELAY_PIN, LOW); });
leftOffButton.begin();
}
@ -198,7 +209,7 @@ void handle_input_change(uint8_t pin, bool state)
{
return;
}
espmega.outputs.digitalWrite(RIGHT_STADIUM_LIGHT_RELAY_PIN,
espmega.outputs.setState(RIGHT_STADIUM_LIGHT_RELAY_PIN,
!espmega.outputs.getState(RIGHT_STADIUM_LIGHT_RELAY_PIN));
break;
case LEFT_STADIUM_LIGHT_SWITCH_PIN:
@ -206,7 +217,7 @@ void handle_input_change(uint8_t pin, bool state)
{
return;
}
espmega.outputs.digitalWrite(LEFT_STADIUM_LIGHT_RELAY_PIN,
espmega.outputs.setState(LEFT_STADIUM_LIGHT_RELAY_PIN,
!espmega.outputs.getState(LEFT_STADIUM_LIGHT_RELAY_PIN));
break;
case GIRLS_TOILET_LIGHT_SWITCH_PIN:
@ -214,7 +225,7 @@ void handle_input_change(uint8_t pin, bool state)
{
return;
}
espmega.outputs.digitalWrite(GIRLS_TOILET_LIGHT_RELAY_PIN,
espmega.outputs.setState(GIRLS_TOILET_LIGHT_RELAY_PIN,
!espmega.outputs.getState(GIRLS_TOILET_LIGHT_RELAY_PIN));
break;
case BOYS_TOILET_LIGHT_SWITCH_PIN:
@ -222,7 +233,7 @@ void handle_input_change(uint8_t pin, bool state)
{
return;
}
espmega.outputs.digitalWrite(BOYS_TOILET_LIGHT_RELAY_PIN,
espmega.outputs.setState(BOYS_TOILET_LIGHT_RELAY_PIN,
!espmega.outputs.getState(BOYS_TOILET_LIGHT_RELAY_PIN));
break;
default: