iot-firmware/src/user_code.hpp

92 lines
2.4 KiB
C++

#pragma once
#include <ESPMegaPRO.h>
#include <Nextion.h>
#include <PubSubClient.h>
#include <PubSubClientTools.h>
#include "espmega_iot_timer.hpp"
#include "espmega_iot_external_lcd.hpp"
/*
Environment Details
P0-P2: Fans
P3-P6: Lights
P7: Air Purifier
I0-I2: Fan Switch
*/
// Pin Definition
#define FAN1_PIN 0
#define FAN2_PIN 1
#define FAN3_PIN 2
#define LIGHT1_PIN 3
#define LIGHT2_PIN 4
#define LIGHT3_PIN 5
#define LIGHT4_PIN 6
#define AIR_PURIFIER_PIN 7
#define FAN1_BTN_PIN 0
#define FAN2_BTN_PIN 1
#define FAN3_BTN_PIN 2
#define LIGHT1_BTN_PIN 3
#define LIGHT2_BTN_PIN 4
#define LIGHT3_BTN_PIN 5
#define LIGHT4_BTN_PIN 6
#define AIR_PURIFIER_BTN_PIN 7
// External LCD Configuration
#define ENABLE_EXTERNAL_LCD
#define TXD2 4
#define RXD2 17
#ifdef ENABLE_EXTERNAL_LCD
#define ESPMega_EXTLCD Serial2
#define elcd ESPMega_EXTLCD
#endif
// User Defined Functions
void user_pre_init();
void user_init();
void user_loop();
void virtual_interrupt_user_callback(int pin, int state);
void pwm_changed_user_callback(int pin);
void ac_changed_user_callback(uint8_t mode, uint8_t temperature, uint8_t fan_speed);
void timer_tick_callback();
void lt_btn_cb(void *comp);
void fan_btn_cb(void *comp);
void puri_btn_cb(void *comp);
void temp_up_btn_cb(void *comp);
void temp_down_btn_cb(void *comp);
void mode_off_btn_cb(void *comp);
void mode_fan_btn_cb(void *comp);
void mode_cool_btn_cb(void *comp);
void fan_auto_btn_cb(void *comp);
void fan_1_btn_cb(void *comp);
void fan_2_btn_cb(void *comp);
void fan_3_btn_cb(void *comp);
void cud_light_toggle();
bool cud_light_group_state();
void cud_fan_toggle();
bool cud_fan_group_state();
void ac_lock_callback(String topic, String payload);
void elcd_sendstop();
void ac_update_lcd();
void pwm_update_lcd();
// ESPMega IoT Core Build-in Functions
extern void pwm_set_state(int id, int state);
extern void pwm_set_value(int id, int value);
extern void pwm_toggle(int id);
extern void pwm_toggle(int id1, int id2);
extern void pwm_cycle_value(int id);
extern bool pwm_get_state(int id);
extern uint16_t pwm_get_value(int id);
extern boolean pwm_group_state(int id1, int id2);
extern bool input_get_state(int id);
extern void ac_set_state(int mode, int temperature, int fan_speed);
extern uint8_t ac_get_temperature();
extern uint8_t ac_get_mode();
extern uint8_t ac_get_fan_speed();
extern bool standalone;
extern PubSubClient mqtt_client;
extern PubSubClientTools mqtt;
extern char MQTT_BASE_TOPIC[];