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