change CT behavior

This commit is contained in:
Siwat Sirichai 2024-04-01 13:55:57 +07:00
parent b5689804b6
commit 0e614c960a
2 changed files with 21 additions and 39 deletions

View file

@ -9,12 +9,12 @@
bool analogCardAvailable = false; bool analogCardAvailable = false;
AnalogCard analogCard = AnalogCard(); AnalogCard analogCard = AnalogCard();
float voltage = CT_RMS_VOLTAGE; float voltage = CT_RMS_VOLTAGE;
CurrentTransformerCard ct_light_phase1 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE1, &voltage, &adcToCurrent, 1000); CurrentTransformerCard ct1 = CurrentTransformerCard(&analogCard, 0, &voltage, &adc2current, 5000);
CurrentTransformerCard ct_light_phase2 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE2, &voltage, &adcToCurrent, 1000); CurrentTransformerCard ct2 = CurrentTransformerCard(&analogCard, 1, &voltage, &adc2current, 5000);
CurrentTransformerCard ct_socket = CurrentTransformerCard(&analogCard, CT_PIN_SOCKET, &voltage, &adcToCurrent, 1000); CurrentTransformerCard ct3 = CurrentTransformerCard(&analogCard, 2, &voltage, &adc2current, 5000);
CurrentTransformerCard ct_ac_phase1 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE1, &voltage, &adcToCurrent, 1000); CurrentTransformerCard ct4 = CurrentTransformerCard(&analogCard, 3, &voltage, &adc2current, 5000);
CurrentTransformerCard ct_ac_phase2 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE2, &voltage, &adcToCurrent, 1000); CurrentTransformerCard ct5 = CurrentTransformerCard(&analogCard, 4, &voltage, &adc2current, 5000);
CurrentTransformerCard ct_ac_phase3 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE3, &voltage, &adcToCurrent, 1000); CurrentTransformerCard ct6 = CurrentTransformerCard(&analogCard, 5, &voltage, &adc2current, 5000);
// Remote Variables // Remote Variables
RemoteVariable pm25_in = RemoteVariable(); RemoteVariable pm25_in = RemoteVariable();
@ -30,13 +30,6 @@ float adc2current(uint16_t adc_val) {
#define CT_INTERVAL 5000 #define CT_INTERVAL 5000
CurrentTransformerCard ct1 = CurrentTransformerCard(&analogCard, 0, &voltage, &adc2current, 5000);
CurrentTransformerCard ct2 = CurrentTransformerCard(&analogCard, 1, &voltage, &adc2current, 5000);
CurrentTransformerCard ct3 = CurrentTransformerCard(&analogCard, 2, &voltage, &adc2current, 5000);
CurrentTransformerCard ct4 = CurrentTransformerCard(&analogCard, 3, &voltage, &adc2current, 5000);
CurrentTransformerCard ct5 = CurrentTransformerCard(&analogCard, 4, &voltage, &adc2current, 5000);
CurrentTransformerCard ct6 = CurrentTransformerCard(&analogCard, 5, &voltage, &adc2current, 5000);
// Light Configuration // Light Configuration
uint8_t row = 4; uint8_t row = 4;
uint8_t column = 2; uint8_t column = 2;
@ -83,15 +76,6 @@ ClimateCard climateCard_york = ClimateCard(AIR_CONDITIONER_YORK_IR_PIN, ac_york,
AC_SENSOR_TYPE_NONE, 0, AC_SENSOR_TYPE_NONE, 0,
AIR_CONDITIONER_RMT_CHANNEL1); AIR_CONDITIONER_RMT_CHANNEL1);
float adcToCurrent(uint16_t adc_value)
{
// 16 bit ADC value to current in amps
// ADC Range is 0-65535, It have an input range of 0-3.3V
// However, it have a resistor network that map 0-3.3V to 0-12V
// The current transformer output 0-10V with 0V as 0A and 10V as 50A
return (adc_value / 65535.0) * 12.0 / 10.0 * 50.0;
}
void handleMqttMessage(char *topic, char *payload) void handleMqttMessage(char *topic, char *payload)
{ {
// Unused for now // Unused for now
@ -253,19 +237,18 @@ void setup()
if (analogCardAvailable || CT_FORCE_ENABLE) if (analogCardAvailable || CT_FORCE_ENABLE)
{ {
ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards"); ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards");
espmega.installCard(5, &ct_light_phase1); espmega.installCard(5, &ct1);
ct_light_phase1.bindFRAM(&espmega.fram, 5010); ct1.bindFRAM(&espmega.fram, 5010);
espmega.installCard(6, &ct_light_phase2); espmega.installCard(6, &ct2);
ct_light_phase2.bindFRAM(&espmega.fram, 5020); ct2.bindFRAM(&espmega.fram, 5020);
espmega.installCard(7, &ct_socket); espmega.installCard(7, &ct3);
ct_socket.bindFRAM(&espmega.fram, 5030); ct3.bindFRAM(&espmega.fram, 5030);
espmega.installCard(8, &ct_ac_phase1); espmega.installCard(8, &ct4);
ct_ac_phase1.bindFRAM(&espmega.fram, 5040); ct4.bindFRAM(&espmega.fram, 5040);
espmega.installCard(9, &ct_ac_phase2); espmega.installCard(9, &ct5);
ct_ac_phase2.bindFRAM(&espmega.fram, 5050); ct5.bindFRAM(&espmega.fram, 5050);
espmega.installCard(10, &ct_ac_phase3); espmega.installCard(10, &ct5);
ct_ac_phase3.bindFRAM(&espmega.fram, 5060); ct6.bindFRAM(&espmega.fram, 5060);
espmega.iot->registerCard(4);
espmega.iot->registerCard(5); espmega.iot->registerCard(5);
espmega.iot->registerCard(6); espmega.iot->registerCard(6);
espmega.iot->registerCard(7); espmega.iot->registerCard(7);

View file

@ -28,7 +28,7 @@ SET_LOOP_TASK_STACK_SIZE(32*1024);
// CT Configuration // CT Configuration
#define CT_FORCE_ENABLE false #define CT_FORCE_ENABLE false
#define CT_RMS_VOLTAGE 220.0 #define CT_RMS_VOLTAGE 1.0
#define CT_PIN_LIGHT_PHASE1 0 #define CT_PIN_LIGHT_PHASE1 0
#define CT_PIN_LIGHT_PHASE2 1 #define CT_PIN_LIGHT_PHASE2 1
#define CT_PIN_SOCKET 2 #define CT_PIN_SOCKET 2
@ -36,8 +36,6 @@ SET_LOOP_TASK_STACK_SIZE(32*1024);
#define CT_PIN_AC_PHASE2 4 #define CT_PIN_AC_PHASE2 4
#define CT_PIN_AC_PHASE3 5 #define CT_PIN_AC_PHASE3 5
float adcToCurrent(uint16_t adc_value);
void handleMqttMessage(char *topic, char *payload); void handleMqttMessage(char *topic, char *payload);
void subscribeToMqttTopics(); void subscribeToMqttTopics();
void handlePageChange(uint8_t page); void handlePageChange(uint8_t page);
@ -62,3 +60,4 @@ void tempoutupdatedisplay(char* value);
void weatherupdatedisplay(char* value); void weatherupdatedisplay(char* value);
void pmfanspeedupdatedisplay(char* value); void pmfanspeedupdatedisplay(char* value);
void pmswitchupdatedisplay(char* value); void pmswitchupdatedisplay(char* value);
float adc2current(uint16_t adc_val);