Compare commits

...

2 Commits

@ -79,7 +79,7 @@ if sslEnabled:
cn = (cert_components.get(b'CN')).decode('utf-8') cn = (cert_components.get(b'CN')).decode('utf-8')
else: else:
cn = cert_components.get('CN') cn = cert_components.get('CN')
print('Centificate {0} - CN: {1}'.format(index, cn)) print('Certificate {0} - CN: {1}'.format(index, cn))
try: try:
temp_certname = '{0}_{1}.crt'.format("transformerMonitorServerCert", index) temp_certname = '{0}_{1}.crt'.format("transformerMonitorServerCert", index)

@ -462,12 +462,34 @@ void ATM90E36::begin(int pin, unsigned short lineFreq, unsigned short pgagain, u
_pgagain = pgagain; //PGA Gain for current channels _pgagain = pgagain; //PGA Gain for current channels
_ugain = ugain; //voltage rms gain _ugain = ugain; //voltage rms gain
_igainA = igainA; //CT1 _igainA = igainA; //CT1
_igainB = igainB; //CT2 _igainB = igainA; //CT2
_igainC = igainC; //CT3 _igainC = igainA; //CT3
_igainN = igainN; //N _igainN = igainA; //N
//pinMode(_energy_CS, OUTPUT); //pinMode(_energy_CS, OUTPUT);
// calculation for voltage sag threshold - assumes we do not want to go under 90v for split phase and 190v otherwise
// determine proper low and high frequency threshold
unsigned short vSagTh;
unsigned short sagV;
unsigned short FreqHiThresh;
unsigned short FreqLoThresh;
if (_lineFreq == 4485 || _lineFreq == 5231)
{
sagV = 90;
FreqHiThresh = 61 * 100;
FreqLoThresh = 59 * 100;
}
else
{
sagV = 190;
FreqHiThresh = 51 * 100;
FreqLoThresh = 49 * 100;
}
vSagTh = (sagV * 100 * sqrt(2)) / (2 * _ugain / 32768);
/* Enable SPI */ /* Enable SPI */
//SPI.begin(); //moved to main program to assign different SPI pins //SPI.begin(); //moved to main program to assign different SPI pins
@ -533,12 +555,12 @@ void ATM90E36::begin(int pin, unsigned short lineFreq, unsigned short pgagain, u
CommEnergyIC(WRITE, IgainA, _igainA); // A line current gain CommEnergyIC(WRITE, IgainA, _igainA); // A line current gain
CommEnergyIC(WRITE, UoffsetA, 0x0000); // A Voltage offset CommEnergyIC(WRITE, UoffsetA, 0x0000); // A Voltage offset
CommEnergyIC(WRITE, IoffsetA, 0x0000); // A line current offset CommEnergyIC(WRITE, IoffsetA, 0x0000); // A line current offset
CommEnergyIC(WRITE, UgainB, _ugain); // B Voltage rms gain CommEnergyIC(WRITE, UgainB, 0); // B Voltage rms gain
CommEnergyIC(WRITE, IgainB, _igainB); // B line current gain CommEnergyIC(WRITE, IgainB, 0); // B line current gain
CommEnergyIC(WRITE, UoffsetB, 0x0000); // B Voltage offset CommEnergyIC(WRITE, UoffsetB, 0x0000); // B Voltage offset
CommEnergyIC(WRITE, IoffsetB, 0x0000); // B line current offset CommEnergyIC(WRITE, IoffsetB, 0x0000); // B line current offset
CommEnergyIC(WRITE, UgainC, _ugain); // C Voltage rms gain CommEnergyIC(WRITE, UgainC, 0); // C Voltage rms gain
CommEnergyIC(WRITE, IgainC, _igainC); // C line current gain CommEnergyIC(WRITE, IgainC, 0); // C line current gain
CommEnergyIC(WRITE, UoffsetC, 0x0000); // C Voltage offset CommEnergyIC(WRITE, UoffsetC, 0x0000); // C Voltage offset
CommEnergyIC(WRITE, IoffsetC, 0x0000); // C line current offset CommEnergyIC(WRITE, IoffsetC, 0x0000); // C line current offset
CommEnergyIC(WRITE, IgainN, _igainN); // C line current gain CommEnergyIC(WRITE, IgainN, _igainN); // C line current gain

@ -22,12 +22,11 @@ upload_port = COM6
[env:dev] [env:dev]
build_flags = -D DEV ${env.build_flags} build_flags = -D DEV ${env.build_flags}
lib_deps = lib_deps =
; knolleary/pubsubclient knolleary/pubsubclient
; https://github.com/CircuitSetup/ATM90E36 https://github.com/whatnick/ATM90E26_Arduino
; https://github.com/whatnick/ATM90E26_Arduino bblanchon/ArduinoJson @ ^6.21.3
; bblanchon/ArduinoJson @ ^6.21.3 paulstoffregen/OneWire@^2.3.8
; paulstoffregen/OneWire@^2.3.8 milesburton/DallasTemperature@^3.11.0
; milesburton/DallasTemperature@^3.11.0
build_src_filter = +<transformerMonitor.cpp> -<.git/> -<.svn/> -<tests/> build_src_filter = +<transformerMonitor.cpp> -<.git/> -<.svn/> -<tests/>
[env:store-creds] [env:store-creds]

@ -26,6 +26,14 @@ void setup() {
- MOSI: 23 - MOSI: 23
- CS: 5 - CS: 5
*/ */
// PM0 - 17
// PM1 - 21
// set normal detection mode for ATM90E36
pinMode(21, OUTPUT);
pinMode(34, INPUT);
pinMode(17, OUTPUT);
digitalWrite(17, HIGH);
digitalWrite(21, HIGH);
delay(2000); delay(2000);
Serial.begin(9600); Serial.begin(9600);
while (!Serial) { while (!Serial) {
@ -37,17 +45,18 @@ void setup() {
// ss pin is the first parameter // ss pin is the first parameter
SPI.begin(SCK, MISO, MOSI, SS); SPI.begin(SCK, MISO, MOSI, SS);
delay(1000); delay(1000);
/* /*
CS pin - 33 for ESP32 CS pin - 33 for ESP32
Line Frequency - 60 Hz for NA - 5509 - see MMode0 section (4.2.3) in data sheet for ATM90E36 Line Frequency - 60 Hz for NA - 5509 - see MMode0 section (4.2.3) in data sheet for ATM90E36
PGA Gain - PGA Gain - adjusts ADC gain for current and voltage
Current gain - Current gain -
Note: values are adjusted from https://github.com/DitroniX/IPEM-IoT-Power-Energy-Monitor/blob/main/Code/IPEM_1_Test_Code_ATM90E32_ATM90E36/include/IPEM_Hardware.h Note: values are adjusted from https://github.com/DitroniX/IPEM-IoT-Power-Energy-Monitor/blob/main/Code/IPEM_1_Test_Code_ATM90E32_ATM90E36/include/IPEM_Hardware.h
*/ */
unsigned short PgaGain = 0x5555; unsigned short PgaGain = 0b1101010101010101;
unsigned short frequency = 0b0001010110000101; unsigned short frequency = 0b0001010110000101;
unsigned short VoltageGain = 19800; unsigned short VoltageGain = 19900;
eic.begin(SS, frequency, PgaGain, VoltageGain, 0x1000,0x1000, 0x1000, 0x1000); eic.begin(SS, frequency, PgaGain, VoltageGain, 0x100,0x100, 0x100, 0x100);
delay(1000); delay(1000);
} }
@ -83,6 +92,7 @@ void loop() {
freq=eic.GetFrequency(); freq=eic.GetFrequency();
delay(10); delay(10);
Serial.println("f"+String(freq)+"Hz"); Serial.println("f"+String(freq)+"Hz");
Serial.println("Waiting 1s"); // Serial.println("Warn: "+String(digitalRead(34)));
delay(1000); Serial.println("Waiting 6s");
delay(6000);
} }
Loading…
Cancel
Save