diff --git a/src/espmega_iot_emon.cpp b/src/espmega_iot_emon.cpp deleted file mode 100644 index 863de9f..0000000 --- a/src/espmega_iot_emon.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "espmega_iot_emon.hpp" - -ESPMega_CT::ESPMega_CT(uint8_t analog_pin, float (*adc_to_watts)(uint16_t adc_value), uint32_t fram_address) -{ - this->analog_pin = analog_pin; - this->fram_address = fram_address; - this->adc_to_watts = adc_to_watts; -} - -void ESPMega_CT::begin() -{ - this->last_conversion_timestamp = millis(); - ESPMega_FRAM.read(fram_address, (uint8_t *)&this->energy, 16); - this->power = adc_to_watts(ESPMega_analogRead(this->analog_pin)); -} - -void ESPMega_CT::loop() -{ - this->energy += (millis() - this->last_conversion_timestamp) / 3600000 * this->power; - this->power = adc_to_watts(ESPMega_analogRead(this->analog_pin)); - this->last_conversion_timestamp = millis(); - ESPMega_FRAM.write(fram_address, (uint8_t *)&this->energy, 16); -} - -void ESPMega_CT::reset_energy() -{ - this->energy = 0; - ESPMega_FRAM.write16(fram_address, 0); -} - -long double ESPMega_CT::get_energy() -{ - return this->energy; -} - -float ESPMega_CT::get_power() -{ - return this->power; -} - -float ESPMega_CT::adc_to_watts_builtin(uint16_t adc_value) -{ - const float RATIO = 0.1; - const float BURDEN_RESISTANCE = 20; - const float VOLTAGE = 220; - const uint16_t ADC_RANGE_START = 500; - const uint16_t ADC_RANGE_END = 16000; - const float ADC_RANGE = 12; - float burden_voltage = (adc_value - ADC_RANGE_START) / (ADC_RANGE_END - ADC_RANGE_START) * ADC_RANGE; - float secondary_current = burden_voltage / BURDEN_RESISTANCE; - float primary_current = secondary_current / RATIO; - return primary_current * VOLTAGE; -} \ No newline at end of file diff --git a/src/espmega_iot_emon.hpp b/src/espmega_iot_emon.hpp deleted file mode 100644 index 818ce36..0000000 --- a/src/espmega_iot_emon.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once -#include -class ESPMega_CT { - public: - ESPMega_CT(uint8_t analog_pin,float(*adc_to_watts)(uint16_t adc_value), uint32_t fram_address); - void begin(); - void loop(); - float get_power(); - long double get_energy(); - void reset_energy(); - private: - uint8_t analog_pin; - uint32_t fram_address; - unsigned long last_conversion_timestamp; - float power; - long double energy; - float (*adc_to_watts)(uint16_t adc_value); - float adc_to_watts_builtin(uint16_t adc_value); -}; \ No newline at end of file