circuit
PROGRAM
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <Servo.h>
Servo myservo1;
SoftwareSerial pc(9, 10); // RX, TX
SoftwareSerial rfidreader(12, 13); // RX, TX
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);//LCD RS-3,En-4,D4-5,D5- 6,D6-7,D7-8
#define oilmotor A2
#define DATAPIN A5 //Data pin
#define CLOCK A4 //ADS 7817 clock
int user=0;
char rfid_data,messgae_letter,pc_data;
int user1_oil=5,user2_oil=8;
int user1_rice=5,user2_rice=8;
int item_name;
int key;
int bonus;
int f;
char data;
int oil;
long int adcvalue,c,y,x,z;
int total_amount,user1_amount=25,user2_amount=40;
void setup()
{
pc.begin(9600);
pc.println("SMART RATION SYSTEM");
rfidreader.begin(9600);
Serial.begin(9600);
pinMode(oilmotor,OUTPUT);
myservo1.attach(A3); // attaches the servo on pin 9 to the servo
myservo1.write(40);
delay(400);
initspi();
lcdstart();
caliberate();
displaydata();
messagereadinit();
}
void loop()
{
//displaydata();
//delay(100);
if(user==0){rfid(); messageread();}
else if(user==1){user1 ();}
else if(user==2){user2 ();}
}
void user1 (void)
{
lcd.clear();lcd.setCursor(0, 0);lcd.print("ENTER PASSWORD?");
pc.println("Enter password?");
pc_data=0;
do
{
pc_data=softme();//READ DATA FROM KEYBOARD
if(pc_data=='7'){pc.println(" "); pc.println("password is correct"); }
else if(pc_data>10 && pc_data<250) { pc.println(" ");pc.println("Enter correct password");}
}while(!(pc_data=='7'));
lcd.clear(); lcd.setCursor(0, 0); lcd.print("NAME: ARUN");
lcd.setCursor(0, 1);lcd.print("TYPE : APL");
pc.println("NAME: ARUN");
pc.println("TYPE : APL");
delay(3000);
user=1;
}
void user2 (void)
{
// similar implementation for user2 …
}
void rfid(void)
{
if(rfidreader.available()>0)
{
rfid_data=rfidreader.read();
card1();
card2();
}
}
void card1(void)//card no.100069998C6C (PRINTED NO.10539308) //user 1//card1
{
if(rfid_data=='D')
{
while(!(rfidreader.available()>0));
rfid_data=rfidreader.read();
if(rfid_data=='1')//IF THIS CARD
{
lcd.clear(); lcd.setCursor(0, 0); lcd.print("Enter password?");
pc.println("Enter password?");
pc_data=0;
do
{
pc_data=softme();//READ DATA FROM KEYBOARD
if(pc_data=='7'){pc.println(" "); pc.println("password is correct"); }
else if(pc_data>10 && pc_data<250) { pc.println(" ");pc.println("Enter correct password");}
}while(!(pc_data=='7'));
lcd.clear(); lcd.setCursor(0, 0); lcd.print("NAME: ARUN");
lcd.setCursor(0, 1);lcd.print("TYPE : APL");
pc.println("NAME: ARUN");
pc.println("TYPE : APL");
delay(3000);
user=1;
}
}}
void card2(void)//card no.1000697BDDDF (PRINTED NO.10531709)
{
if(rfid_data=='E'){
while(!(rfidreader.available()>0));
rfid_data=rfidreader.read();
if(rfid_data=='5') //IF THIS CARD
{
pc.println("Enter password?");
lcd.clear(); lcd.setCursor(0, 0); lcd.print("Enter password?");
pc_data=0;
do
{
pc_data=softme();//READ DATA FROM KEYBOARD
if(pc_data=='8'){pc.println(" "); pc.println("password is correct"); }
else if(pc_data>10 && pc_data<250) { pc.println(" ");pc.println("Enter correct password");}
}while(!(pc_data=='8'));
lcd.clear(); lcd.setCursor(0, 0); lcd.print("NAME : ABI");
lcd.setCursor(0, 1);lcd.print("TYPE : BPL");
pc.println("NAME : ABI");
pc.println("TYPE : BPL");
user=2; delay(3000);
}}
}
void lcdstart(void)
{
lcd.begin(16, 2);// set up the LCD's number of columns and rows:
lcd.setCursor(0, 0);lcd.print("SMART RATION");// Print a message to the LCD.
lcd.setCursor(0, 1);lcd.print("SYSTEM");// Print a message to the LCD.
delay(1000);
lcd.clear();lcd.setCursor(0, 0);
lcd.print("swipe your");lcd.setCursor(0, 1);lcd.print("rfid");
}
void message1(void)
{
Serial.print("AT+CMGF=1");//TEXT MODE
Serial.write(0xd);//ENTER
delay(1000);
Serial.print("AT+CMGS=");
Serial.write(0X22);//"
Serial.print("8281964863");//NUMBER
Serial.write(0X22);//"
Serial.write(0xd);//ENTER
delay(1000);
Serial.print("KEROSENE BALANCE IS ");Serial.print(user1_oil);
Serial.print(",RICE BALANCE IS ");Serial.print(user1_rice);
Serial.print(" ,TOTAL AMOUNT IS ");Serial.print(total_amount);
Serial.print(" & BALANCE IS ");Serial.print(user1_amount);
Serial.write(0x1a);//CTRL+Z
}
void message2(void)
{
Serial.print("AT+CMGF=1");//TEXT MODE
Serial.write(0xd);//ENTER
delay(1000);
Serial.print("AT+CMGS=");
Serial.write(0X22);//"
Serial.print("9562868357");//NUMBER
Serial.write(0X22);//"
Serial.write(0xd);//ENTER
delay(1000);
Serial.print("KEROSENE BALANCE IS ");Serial.print(user2_oil);
Serial.print(",RICE BALANCE IS ");Serial.print(user2_rice);
Serial.print(", TOTAL AMOUNT IS ");Serial.print(total_amount);
Serial.print(" & BALANCE IS ");Serial.print(user2_amount);
Serial.write(0x1a);//CTRL+Z
}
void messagereadinit(void)
{
Serial.print("AT+CMGF=1");//TEXT MODE
Serial.write(0xd);//ENTER
delay(1000);