Introduction: Prepaid Tollgate System Using RFID ,Arduino and GSM
A simple prepaid tollgate system.using RFID ,GSM and arduino
Step 1: Connection !
Make connections as per this Diagram
Step 2: Modules Used
Step 3: Code !!
/*
* RFID connections - RFID tx ---> rx(3) ardunio
*
* GSM - GSM rx ---> 8 arduino
* GSM tx ---> 7 arduino
*
* MOTOR - C2B --->4 arduino
* C2A---->5 ardunio
*
* RGB LED - A0 --> red
* A1--> green
*buzzer 6
*/
#include
SoftwareSerial rfidSerial(3, 2);
SoftwareSerial SIM900( 7 , 8 );
int aBAL=1000;
int bBAL=1500;
int cBAL=2000;
String a;
const int ledPin = 13;
void setup() {
pinMode (6, OUTPUT);
pinMode (A0, OUTPUT);
pinMode (A1, OUTPUT);
pinMode (A2, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
digitalWrite (4, HIGH);
digitalWrite (5, HIGH);
digitalWrite (6, LOW);
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
SIM900. begin (19200 );
SIM900. print ("AT+CMGF=1\r" );
rfidSerial.begin(9600);
digitalWrite (A2, HIGH);
delay(1000);
digitalWrite (A2, LOW);
Serial.println("WAITNG FOR A VEHICLES ......");
}
void loop() {
digitalWrite (A2, HIGH);
delay(1000);
digitalWrite (A2, LOW);
digitalWrite(A0, HIGH);
while(rfidSerial.available()) {
a= rfidSerial.readString();// read the incoming data as string
rfidSerial.print("Vehicle RFID read ");
rfidSerial.print(a);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(1000);
SIM900. println ( "AT + CMGS = \"8970220880\""); // CHANGE NUMBER TO BE MESSAGED HERE
delay(1000);
//--------------------------------------------______________________________________________
if(a=="03908807\r\n"){
Serial.println("THIS IS A");
aBAL=aBAL-30;
if(aBAL>=30){
//void openGATE();---------------
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH);
digitalWrite (6, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(750);
digitalWrite(4, HIGH);
delay(2000);
//}
SIM900. print ( "Hello, THANK YOU a, FOR USING MG ROAD TOLL OF Rs.30/- HAS BEEN DEDUCTED YOUR BALANCE IS Rs.");
SIM900.print(aBAL);
}
else{
//void closeGATE();
digitalWrite(A1, LOW);
digitalWrite (6, LOW);
digitalWrite(A0, HIGH);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
//-----------
SIM900. print ( "Hello, THANK YOU a, FOR USING MG ROAD TOLL YOUR BALANCE IS TOO LOW PLEASE RECHARGE! ");
}
delay ( 1000);
SIM900. println (( char ) 26 );
delay ( 1000);
SIM900. println ();
digitalWrite(ledPin, LOW);
}
//--------------------------------------------____________________________________________________________________________________________
else if(a=="13703425\r\n"){
Serial.println("THIS IS B");
bBAL=bBAL-30;
if(bBAL>=30){
//void openGATE();
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH);digitalWrite (6, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(750);
digitalWrite(4, HIGH);
delay(2000);
//--------------------
SIM900. print ( "Hello, THANK YOU b, FOR USING MG ROAD TOLL OF Rs.30/- HAS BEEN DEDUCTED YOUR BALANCE IS Rs.");
SIM900.print(bBAL);
}
else{//void closeGATE();
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH);
digitalWrite (6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
//-------------------
SIM900. print ( "Hello, THANK YOU b, FOR USING MG ROAD TOLL YOUR BALANCE IS TOO LOW PLEASE RECHARGE! ");
}
delay ( 1000);
SIM900. println (( char ) 26 );
delay ( 1000);
SIM900. println ();
digitalWrite(ledPin, LOW);
}
//-------------------------------------------________________________________________________________________________
else if(a=="03908806\r\n"){
Serial.println("THIS IS C");
cBAL=cBAL-30;
if(cBAL>=30){
//void openGATE();
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH); digitalWrite (6, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(750);
digitalWrite(4, HIGH);
delay(2000);
//---------------
SIM900. print ( "Hello, THANK YOU c, FOR USING MG ROAD TOLL OF Rs.30/- HAS BEEN DEDUCTED YOUR BALANCE IS Rs.");
SIM900.print(cBAL);
}
else{
//void closeGATE();
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH);
digitalWrite (6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
//---------------
SIM900. print ( "Hello, THANK YOU c, FOR USING MG ROAD TOLL YOUR BALANCE IS TOO LOW PLEASE RECHARGE! ");
}
//-------------------
}
//-------------------------------------------
else{ // WRONG CARD OR NO CARD
digitalWrite(A0, HIGH);
delay(1000);
digitalWrite(A0, LOW);
delay(2000);
}
delay ( 1000);
SIM900. println (( char ) 26 );
delay ( 1000);
SIM900. println ();
digitalWrite(ledPin, LOW);
delay(5000);
// void closeGATE();
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH); digitalWrite (6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
}
}
* RFID connections - RFID tx ---> rx(3) ardunio
*
* GSM - GSM rx ---> 8 arduino
* GSM tx ---> 7 arduino
*
* MOTOR - C2B --->4 arduino
* C2A---->5 ardunio
*
* RGB LED - A0 --> red
* A1--> green
*buzzer 6
*/
#include
SoftwareSerial rfidSerial(3, 2);
SoftwareSerial SIM900( 7 , 8 );
int aBAL=1000;
int bBAL=1500;
int cBAL=2000;
String a;
const int ledPin = 13;
void setup() {
pinMode (6, OUTPUT);
pinMode (A0, OUTPUT);
pinMode (A1, OUTPUT);
pinMode (A2, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
digitalWrite (4, HIGH);
digitalWrite (5, HIGH);
digitalWrite (6, LOW);
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
SIM900. begin (19200 );
SIM900. print ("AT+CMGF=1\r" );
rfidSerial.begin(9600);
digitalWrite (A2, HIGH);
delay(1000);
digitalWrite (A2, LOW);
Serial.println("WAITNG FOR A VEHICLES ......");
}
void loop() {
digitalWrite (A2, HIGH);
delay(1000);
digitalWrite (A2, LOW);
digitalWrite(A0, HIGH);
while(rfidSerial.available()) {
a= rfidSerial.readString();// read the incoming data as string
rfidSerial.print("Vehicle RFID read ");
rfidSerial.print(a);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(1000);
SIM900. println ( "AT + CMGS = \"8970220880\""); // CHANGE NUMBER TO BE MESSAGED HERE
delay(1000);
//--------------------------------------------______________________________________________
if(a=="03908807\r\n"){
Serial.println("THIS IS A");
aBAL=aBAL-30;
if(aBAL>=30){
//void openGATE();---------------
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH);
digitalWrite (6, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(750);
digitalWrite(4, HIGH);
delay(2000);
//}
SIM900. print ( "Hello, THANK YOU a, FOR USING MG ROAD TOLL OF Rs.30/- HAS BEEN DEDUCTED YOUR BALANCE IS Rs.");
SIM900.print(aBAL);
}
else{
//void closeGATE();
digitalWrite(A1, LOW);
digitalWrite (6, LOW);
digitalWrite(A0, HIGH);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
//-----------
SIM900. print ( "Hello, THANK YOU a, FOR USING MG ROAD TOLL YOUR BALANCE IS TOO LOW PLEASE RECHARGE! ");
}
delay ( 1000);
SIM900. println (( char ) 26 );
delay ( 1000);
SIM900. println ();
digitalWrite(ledPin, LOW);
}
//--------------------------------------------____________________________________________________________________________________________
else if(a=="13703425\r\n"){
Serial.println("THIS IS B");
bBAL=bBAL-30;
if(bBAL>=30){
//void openGATE();
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH);digitalWrite (6, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(750);
digitalWrite(4, HIGH);
delay(2000);
//--------------------
SIM900. print ( "Hello, THANK YOU b, FOR USING MG ROAD TOLL OF Rs.30/- HAS BEEN DEDUCTED YOUR BALANCE IS Rs.");
SIM900.print(bBAL);
}
else{//void closeGATE();
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH);
digitalWrite (6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
//-------------------
SIM900. print ( "Hello, THANK YOU b, FOR USING MG ROAD TOLL YOUR BALANCE IS TOO LOW PLEASE RECHARGE! ");
}
delay ( 1000);
SIM900. println (( char ) 26 );
delay ( 1000);
SIM900. println ();
digitalWrite(ledPin, LOW);
}
//-------------------------------------------________________________________________________________________________
else if(a=="03908806\r\n"){
Serial.println("THIS IS C");
cBAL=cBAL-30;
if(cBAL>=30){
//void openGATE();
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH); digitalWrite (6, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(750);
digitalWrite(4, HIGH);
delay(2000);
//---------------
SIM900. print ( "Hello, THANK YOU c, FOR USING MG ROAD TOLL OF Rs.30/- HAS BEEN DEDUCTED YOUR BALANCE IS Rs.");
SIM900.print(cBAL);
}
else{
//void closeGATE();
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH);
digitalWrite (6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
//---------------
SIM900. print ( "Hello, THANK YOU c, FOR USING MG ROAD TOLL YOUR BALANCE IS TOO LOW PLEASE RECHARGE! ");
}
//-------------------
}
//-------------------------------------------
else{ // WRONG CARD OR NO CARD
digitalWrite(A0, HIGH);
delay(1000);
digitalWrite(A0, LOW);
delay(2000);
}
delay ( 1000);
SIM900. println (( char ) 26 );
delay ( 1000);
SIM900. println ();
digitalWrite(ledPin, LOW);
delay(5000);
// void closeGATE();
digitalWrite(A1, LOW);
digitalWrite(A0, HIGH); digitalWrite (6, LOW);
delay(1000);
digitalWrite(5, LOW);
delay(750);
digitalWrite(5, HIGH);
delay(2000);
}
}