0% found this document useful (0 votes)
47 views8 pages

Coding File

The document describes code for an Arduino project that monitors electricity usage using a pulse sensor, controls relays based on usage, and sends SMS alerts. It initializes serial communication and an LCD display, reads the pulse sensor, calculates usage stats, controls relays accordingly, and can send SMS messages on thresholds or when receiving commands.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
47 views8 pages

Coding File

The document describes code for an Arduino project that monitors electricity usage using a pulse sensor, controls relays based on usage, and sends SMS alerts. It initializes serial communication and an LCD display, reads the pulse sensor, calculates usage stats, controls relays accordingly, and can send SMS messages on thresholds or when receiving commands.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 8

#include<EEPROM.

h>

#include <LiquidCrystal.h>

#include <SoftwareSerial.h>

LiquidCrystal lcd(7,6,5,4,3,2);

SoftwareSerial mySerial(9,10);

int led=0;

const int relay1=13;

const int relay2=12;

const int relay3=11;;

const int pulsein=8;

#define pulsein 8

#define relay 12

unsigned int pusle_count=0;

float units=0;

unsigned int rupees=0;

float watt_factor=2.3125;

unsigned int temp=0,i=0,x=0,k=0;

char str[70],flag1=0,flag2=0,flag3=0,flag4=0,flag5=0;

void setup()

lcd.begin(16,2);

mySerial.begin(9600);

Serial.begin(9600);

//pinMode(led, OUTPUT);

pinMode(pulsein, INPUT);

pinMode(relay1, OUTPUT);

pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);

digitalWrite(pulsein, HIGH);

lcd.setCursor(0,0);

lcd.print("POWER CONSUMPTION ALERT");

lcd.setCursor(0,1);

lcd.print("AND LOAD CONTROL");

delay(2000);

lcd.clear();

lcd.print("Circuit Digest");

delay(2000);

lcd.clear();

lcd.print("GSM Initilizing...");

gsm_init();

lcd.clear();

lcd.print("System Ready");

Serial.println("AT+CNMI=2,2,0,0,0");

init_sms();

send_data("System Ready");

send_sms();

delay(1000);

digitalWrite(led, LOW);

lcd.clear();

// EEPROM.write(1,0);

// rupees=EEPROM.read(1);

void loop()

serialEvent();

rupees=EEPROM.read(1);

units=rupees/5.0;
lcd.setCursor(0,0);

lcd.print("Units:");

lcd.print(units);

lcd.print(" ");

lcd.setCursor(0,1);

lcd.print("Rupee:");

lcd.print(rupees);

lcd.print(" ");

read_pulse();

check_status();

if(temp==1)

send_confirmation_sms();

void serialEvent()

while(mySerial.available())

char ch=(char)mySerial.read();

str[i++]=ch;

if(ch == '*')

temp=1;

lcd.clear();

lcd.print("Message Received");

delay(500);

break;

}
void init_sms()

mySerial.println("AT+CMGF=1");

delay(200);

mySerial.println("AT+CMGS=\"+917418401584\"");

delay(200);

void send_data(String message)

mySerial.println(message);

delay(200);

void send_sms()

mySerial.write(26);

mySerial.write(0X0D);

mySerial.write(0X0A);

void read_pulse()

if(!digitalRead(pulsein))

digitalWrite(led, HIGH);

pusle_count++;

units=watt_factor*pusle_count/1;

if(units>100){}
else

units++;

rupees=units*5;

EEPROM.write(1,rupees);

while(!digitalRead(pulsein));

digitalWrite(led,LOW);

//delay(2000);

void check_status()

if(rupees<150)

digitalWrite(relay1, HIGH);

flag1=1;

if(rupees<200)

digitalWrite(relay2, HIGH);

flag2=1;

if(rupees<250)

digitalWrite(relay3, HIGH);

flag3=1;

if(rupees>150 && flag1==1)

digitalWrite(relay1, LOW);

init_sms();
send_data("Units Consumed:30");

delay(2000);

send_sms();

flag1=0;

if(rupees>200 && flag2==1)

digitalWrite(relay2, LOW);

init_sms();

send_data("Units Consumed:40");

delay(2000);

send_sms();

flag2=0;

if(rupees>250 && flag3==1)

digitalWrite(relay3, LOW);

lcd.clear();

lcd.print("Light Cut Due to");

lcd.setCursor(0,1);

lcd.print("Existing Limits");

delay(2000);

lcd.clear();

lcd.print("Please Pay Bill ");

lcd.setCursor(0,1);

lcd.print("UR Energy Meter ");

delay(2000);

init_sms();

send_data("Units Consumed:30");

delay(2000);

send_sms();
flag3=0;

void send_confirmation_sms()

void message_sent()

lcd.clear();

lcd.print("Message Sent.");

delay(1000);

void gsm_init()

lcd.clear();

lcd.print("Finding Module..");

boolean at_flag=1;

while(at_flag)

Serial.println("AT");

while(Serial.available()>0)

if(Serial.find("OK"))

at_flag=0;

delay(1000);
}

lcd.clear();

lcd.print("Module Connected..");

delay(1000);

lcd.clear();

lcd.print("Disabling ECHO");

You might also like