SMART RATION CARD SYSTEM USING LOAD CELL,PUMP,RFID,GSM

Photo of author

By Jackson Taylor

YouTube video
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);
See also
3 *4 KEYPAD INTERFACING WITH ARDUINO