Smart Toll Booth Automation System
Step into the future of toll booth management with our “Smart Toll Booth Automation System.” This innovative project employs Arduino, a servo motor, an ultrasonic sensor, an LCD display, and a buzzer to create an intelligent toll collection and gate control system.
As a vehicle approaches the toll booth, the ultrasonic sensor detects its presence, triggering a series of actions. The LCD displays relevant information, instructing the driver to present their pass. Upon successful verification, the gate smoothly opens with a corresponding buzzer alert.
After the vehicle passes, the gate closes automatically, ensuring a seamless and efficient toll collection process. This system enhances toll booth operations by combining automation with user-friendly interfaces, improving traffic flow and user experience.
The circuit integrates components like the ultrasonic sensor (trigPin, echoPin), a button for pass verification (buttonPin), a servo motor (connected to pin 9), a buzzer (buzzerPin), and an LCD display. Connect the appropriate pins of these components to the designated digital or analog pins on the Arduino.
The servo motor controls the gate, and the ultrasonic sensor monitors vehicle proximity. Power the components according to their specifications, and establish a common ground between the Arduino and the other elements.
Component List:
Name | Quantity | Component |
---|---|---|
U1 | 1 | Arduino Uno R3 |
U2 | 1 | LCD 16 x 2 |
Rpot1 | 1 | 250 kΩ Potentiometer |
R1 | 1 | 220 Ω Resistor |
SERVO1 | 1 | Positional Micro Servo |
PIEZO1 | 1 | Piezo |
DIST1 | 1 | Ultrasonic Distance Sensor |
S1 | 1 | Pushbutton |
R2 | 1 | 1 kΩ Resistor |
Arduino Code:
#include <Servo.h>
#include <LiquidCrystal.h>
Servo servo;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int sensorPin = A5;
const int trigPin = A1;
const int echoPin = A0;
const int buttonPin = 7;
const int buzzerPin = 6;
long duration, distance;
void setup() {
Serial.begin(9600);
servo.attach(9);
servo.write(90);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buttonPin, INPUT);
pinMode(buzzerPin, OUTPUT);
lcd.begin(16, 2);
lcd.setCursor(3, 0);
lcd.print("Toll");
lcd.setCursor(3, 1);
lcd.print("Collection");
delay(2000);
}
void loop() {
distanceCheck();
lcd.begin(16, 2);
lcd.setCursor(3, 0);
lcd.print("TOLL BOOTH");
lcd.setCursor(3, 1);
lcd.print("AUTOMATION");
delay(500);
if (distance < 40) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Vehicle Reached");
for (int i = 0; i < 2; i++) { digitalWrite(buzzerPin, HIGH); delay(500); digitalWrite(buzzerPin, LOW); delay(500); } delay(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Show the Pass"); lcd.setCursor(0, 1); for (int i = 0; i < 5; i++) { lcd.print("."); delay(500); } while (digitalRead(buttonPin) == 0); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Pass OK"); delay(1500); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Gate Opening!"); servo.write(0); delay(1000); while (distance < 40) { distanceCheck(); } delay(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Gate Closing!"); servo.write(90); delay(2000); lcd.clear();
}
}
void distanceCheck() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
Serial.println(distance);
}
The Smart Toll Booth Automation System demonstrates the fusion of technology and efficiency in toll collection.
By automating processes and providing clear communication through an LCD display and buzzer alerts, this project serves as a model for enhancing traditional toll booth functionalities.