[go: up one dir, main page]

0% found this document useful (0 votes)
39 views7 pages

Single Phase Transformer Monitoring and Control Using IoT

Uploaded by

visionview00
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views7 pages

Single Phase Transformer Monitoring and Control Using IoT

Uploaded by

visionview00
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Circuit diagram:

Ex. No. 13
Date:

MONITORING AND CONTROL OF A SINGLE PHASE TRANSFORMER USING IOT

Aim: To monitor and control a single phase transformer using IoT.

Components Required :

ESP3266 node MCU Quantity

Current sensor (ACS 712) 20 A 1

Voltage Sensor(ZMPT 101B) 230 1


Volt

LCD Display 1

Relay 12 volt 1

Voltmeter (0-300 v) 1

Ammeter (0- 20A) 1

Wattmeter ( 250 volt, 10 A) 1

Procedure:
1. Give the connections as per the circuit diagram.
2. Connect the secondary of the transformer to the load through through current
sensor, voltage sensor and a relay programmed using ESP32 wifi module.
3. Close the DPSTS 1 and the DPSTS 2.
4. Increase the load step by step.
5. Observe the monitoring and control actions as follows:
a. The current sensor and voltage sensor send the secondary voltage and
current value to the Arduino cloud through the node MCU32.
b. After reaches 5 A load current (set value), the relay will trip the
secondary circuit to ensure the protection of the transformer.
c. The values can be read in the arduino cloud platform.
Note: Preload the program which is customizable.
Pin diagram of ESP32:

Program :

#include "thingProperties.h"
#include <LiquidCrystal_I2C.h>
#include "EmonLib.h"
#include <EEPROM.h>

// Ticker timer; // Initialize the timer object


LiquidCrystal_I2C lcd(0x27, 20, 4);
#define relay 32
EnergyMonitor emon;
#define vCalibration 83.3
#define currCalibration 2
float kWh = 0;
unsigned long lastmillis = millis();
void myTimerEvent()
{
emon.calcVI(20, 2000);
kWh = kWh + emon.apparentPower * (millis() - lastmillis) / 3600000000.0;
yield();
Serial.print("Vrms: ");
Serial.print(emon.Vrms, 2);
Serial.print("V");
EEPROM.put(0, emon.Vrms);
delay(100);

Serial.print("\tIrms: ");
Serial.print(emon.Irms*2, 4);
Serial.print("A");
EEPROM.put(4, emon.Irms*2);
delay(100);

Serial.print("\tPower: ");
Serial.print(emon.apparentPower, 4);
Serial.print("W");
EEPROM.put(8, emon.apparentPower);
delay(100);

Serial.print("\tkWh: ");
Serial.print(kWh, 5);
Serial.println("kWh");
EEPROM.put(12, kWh);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Vrms:");
lcd.print(emon.Vrms, 2);
lcd.print("V");
lcd.setCursor(0, 1);
lcd.print("Irms:");
lcd.print(emon.Irms*2, 4);
lcd.print("A");
lcd.setCursor(0, 2);
lcd.print("Power:");
lcd.print(emon.apparentPower, 4);
lcd.print("W");
lcd.setCursor(0, 3);
lcd.print("kWh:");
lcd.print(kWh, 4);
lcd.print("W");
lastmillis = millis();

current=emon.Irms*2;
volatge=emon.Vrms;
apparent_Power=emon.apparentPower;
total_Power=kWh;
if(emon.Irms*2>5)
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("OVERLOAD DETECTED");
lcd.setCursor(5, 1);
lcd.print("Transformer IS OFF");
digitalWrite(relay,HIGH);
delay(60000);
}
else
{
digitalWrite(relay,LOW);
}
}

void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none
is found
delay(1500);

// Defined in thingProperties.h
initProperties();

// Connect to Arduino IoT Cloud


ArduinoCloud.begin(ArduinoIoTPreferredConnection);

/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
lcd.init();
lcd.backlight();
emon.voltage(35, vCalibration, 1.7); // Voltage: input pin, calibration, phase_shift
emon.current(34, currCalibration); // Current: input pin, calibration.
pinMode(relay,OUTPUT);

// timer.attach(5, myTimerEvent); // 5 seconds interval


lcd.clear();
lcd.setCursor(3, 0);
lcd.print("1ph Transformer ");
lcd.setCursor(5, 1);
lcd.print("Monitoring");
delay(3000);
lcd.clear();
}

void loop() {
ArduinoCloud.update();
// Your code here
myTimerEvent();
//onONOFFChange();
}

/*
Since ONOFF is READ_WRITE variable, onONOFFChange() is
executed every time a new value is received from IoT Cloud.
*/
void onONOFFChange() {
// Add your code here to act upon ONOFF change
if(oN_OFF==0)
{ lcd.clear();
lcd.setCursor(5, 1);
lcd.print("Transformer IS OFF");
digitalWrite(relay,HIGH);
}
else
{
digitalWrite(relay,LOW);
}
}

Output screenshot:

Result:

Thus, the single phase transformer is monitored and controlled using IoT and the data
is uploaded in the Arduino cloud.

You might also like