In tall plaza the driver has to wait for the payment process either it may be cash or debit/credit card. So it will takes 30 sec to 180 seconds per vehicle for cash payment and it takes 15 seconds to 90 seconds in case of debit / credit card. Now in India there is a new technology for tall payment by using FASTAG. It pays online payment without stopping the vehicle at tall plaza. Lets see about FASTAG and the model of FASTAG using Arduino board.
What is FASTAG?
FASTag is a simple to use, reloadable tag which enables automatic deduction of toll charges and lets you pass through the toll plaza without stopping for the cash transaction. FASTag is linked to a prepaid account from which the applicable toll amount is deducted. The tag employs Radio-frequency Identification (RFID) technology and is affixed on the vehicle’s windscreen after the tag account is active.
FASTag is a perfect solution for a hassle free trip on national highways.
Benefits
FASTag is read by the tag reader at the toll plaza. The toll amount is deducted automatically, when the vehicle approaches the toll plaza. The vehicle with FASTag doesn’t need to stop at the toll plaza for the cash transaction
SMS alerts and Online facility
Customer will receive SMS alerts on his registered mobile numbers for all the transactions done in his tag account. Customer may recharge his tag account online through, Credit Card/ Debit Card/ NEFT/ RTGS or Net Banking so Customer doesn’t need to worry about carrying cash for the toll payments. Customers can access their statements by logging on the FASTag customer portal
How this model works?
In this project we have used RF Tag and RF Reader in place of FASTAG and FASTAG Reader. When any vehicle with RF tag comes near the tall plaza, the RF reader will read the rf tag number. If it is an authenticated (tag number should be in the coding), the barrier openes and the vehicle will cross the barrier. When the vehicle crosses the IR TX-RX module completely, the barrier will be closed. In case of standing of vehicle in front of IR sensor the barrier will not closed. It is for safety purpose.
When any vehicle without rf tag or unregistered number (low balance or zero balance), the barrier will not open and the driver has to change the another lane for payment via cash or bank card.
In short, without stopping in front of the tall plaza barrier the bank deducts the toll amount before reaching the barrier and the barrier opens and then vehicle crosses the barrier. So it will save the time and fuel. The red led and green led are the signal leds for indication of barrier position either open or close.
Component used in the project
- Arduino uno
- USB cable for Arduino board power
- servo motor
- RF Reader
- RF TAG 2 or more
- Green LED (5 mm) 1
- Red LED (5 mm) 1
- Resistor 330 ohm 2
- TCRT 5000 IR TX-RX Sensor Modulle
- Female to Female Jumpers 10 pc
- Straw Pipe for barrier
- 4″x4″ PVC electrical case for servo motor fitting or servo motor clamp
- Toy cars 2
- wonder tape with two side gum
Program :
/* * This coding for 0 to 90 degree for servo motor * In case of reverse change the degree from 90 to 180 * or 180 to 90 as per servo placed in socket * */ #include <SPI.h> #include <MFRC522.h> #include <Servo.h> Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0; // variable to store the servo position const int red = A3; //define red led const int grn = A2; //define green led const int ir = A0; //pir sensor is sonnected at pin A0 #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. void setup() { Serial.begin(9600); // Initiate a serial communication SPI.begin(); // Initiate SPI bus mfrc522.PCD_Init(); // Initiate MFRC522 Serial.println("Approximate your card to the reader..."); Serial.println(); pinMode(ir,INPUT); //pir output pin is connected to A0 pin of an Arduino pinMode(red, OUTPUT); pinMode(grn, OUTPUT); digitalWrite(red, HIGH); // turn the LED on digitalWrite(grn, LOW); // turn the LED off myservo.attach(6); // attaches the servo on pin 9 to the servo object myservo.write(0); } void loop() { // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } //Show UID on serial monitor Serial.print("UID tag :"); String content= ""; byte letter; for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); content.concat(String(mfrc522.uid.uidByte[i], HEX)); } Serial.println(); Serial.print("Message : "); content.toUpperCase(); if (content.substring(1) == "7B 08 EA 1A") //change here the UID of the card/cards that you want to give access { myservo.write(90); digitalWrite(red, LOW); // turn the LED on digitalWrite(grn, HIGH); // turn the LED off Serial.println("Authorized access"); Serial.println(); //val = digitalRead(pir); // read sensor value while (digitalRead(ir)==HIGH); delay(300); while (digitalRead(ir)==LOW); delay(500); digitalWrite(red, HIGH); // turn the LED on digitalWrite(grn, LOW); // turn the LED off myservo.write(0); } else { Serial.println(" Access denied"); delay(3000); } }