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;
AnalogCard analogCard = AnalogCard();
float voltage = CT_RMS_VOLTAGE;
CurrentTransformerCard ct_light_phase1 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE1, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_light_phase2 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE2, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_socket = CurrentTransformerCard(&analogCard, CT_PIN_SOCKET, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_ac_phase1 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE1, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_ac_phase2 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE2, &voltage, &adcToCurrent, 1000);
CurrentTransformerCard ct_ac_phase3 = CurrentTransformerCard(&analogCard, CT_PIN_AC_PHASE3, &voltage, &adcToCurrent, 1000);
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);
// Remote Variables
RemoteVariable pm25_in = RemoteVariable();
@ -30,13 +30,6 @@ float adc2current(uint16_t adc_val) {
#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
uint8_t row = 4;
uint8_t column = 2;
@ -83,15 +76,6 @@ ClimateCard climateCard_york = ClimateCard(AIR_CONDITIONER_YORK_IR_PIN, ac_york,
AC_SENSOR_TYPE_NONE, 0,
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)
{
// Unused for now
@ -253,19 +237,18 @@ void setup()
if (analogCardAvailable || CT_FORCE_ENABLE)
{
ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards");
espmega.installCard(5, &ct_light_phase1);
ct_light_phase1.bindFRAM(&espmega.fram, 5010);
espmega.installCard(6, &ct_light_phase2);
ct_light_phase2.bindFRAM(&espmega.fram, 5020);
espmega.installCard(7, &ct_socket);
ct_socket.bindFRAM(&espmega.fram, 5030);
espmega.installCard(8, &ct_ac_phase1);
ct_ac_phase1.bindFRAM(&espmega.fram, 5040);
espmega.installCard(9, &ct_ac_phase2);
ct_ac_phase2.bindFRAM(&espmega.fram, 5050);
espmega.installCard(10, &ct_ac_phase3);
ct_ac_phase3.bindFRAM(&espmega.fram, 5060);
espmega.iot->registerCard(4);
espmega.installCard(5, &ct1);
ct1.bindFRAM(&espmega.fram, 5010);
espmega.installCard(6, &ct2);
ct2.bindFRAM(&espmega.fram, 5020);
espmega.installCard(7, &ct3);
ct3.bindFRAM(&espmega.fram, 5030);
espmega.installCard(8, &ct4);
ct4.bindFRAM(&espmega.fram, 5040);
espmega.installCard(9, &ct5);
ct5.bindFRAM(&espmega.fram, 5050);
espmega.installCard(10, &ct5);
ct6.bindFRAM(&espmega.fram, 5060);
espmega.iot->registerCard(5);
espmega.iot->registerCard(6);
espmega.iot->registerCard(7);