Transformative IoT and Blockchain-based Automated Toll Collection System
This project implements an ESP32 and Arduino Uno powered automated toll collection system that combines IoT sensors with blockchain technology for secure, transparent, and reliable vehicle authentication and payment processing.
- ๐ฏ Overview
- ๐ Research Publication
- โจ Key Features
- ๐ ๏ธ Components Required
- โก Hardware Setup
- ๐ System Workflow
- ๐ Installation Guide
- ๐ป Code Architecture
- ๐ธ Project Gallery
- ๐ฎ Future Roadmap
- ๐ค Contributing
The IoT Toll System Supervisor revolutionizes traditional toll collection by implementing a fully automated, IoT-enabled system that:
- Eliminates manual intervention through RFID-based vehicle authentication
- Ensures secure transactions using blockchain technology principles
- Provides real-time monitoring via Google Sheets integration
- Enhances user experience with instant gate operation and transparent billing
graph TD
A[Vehicle Approaches] --> B[RFID Scanner]
B --> C[Arduino Uno Processing]
C --> D{Valid RFID?}
D -->|Yes| E[Gate Opens]
D -->|No| F[Access Denied]
E --> G[ESP32 Data Processing]
G --> H[Google Sheets Logging]
H --> I[Transaction Complete]
This project is backed by peer-reviewed research published in IEEE Xplore:
Abstract: This paper proposes a transformative solution for automated toll collection systems by integrating Internet of Things (IoT) and blockchain technology. The model aims to address challenges such as security breaches, lack of transparency, and unreliable transactions in current toll systems. Leveraging real-time data from IoT and the decentralised nature of blockchain, the proposed approach enhances security, ensures transparency, and improves overall reliability.
๐ Publication Details:
- Conference: 2024 International Conference on Communication, Computing and Energy Efficient Technologies (I3CEET)
- Conference Dates: September 20-21, 2024
- IEEE Xplore Date: May 13, 2025
- Electronic ISBN: 979-8-3315-4158-3
- Print ISBN: 979-8-3315-4159-0
- ๐ Read Full Paper
| Feature | Description | Technology |
|---|---|---|
| ๐ Secure Authentication | RFID-based vehicle identification | MFRC522 Module |
| ๐ช Automated Gate Control | Servo motor-operated barrier system | Servo Motor + Arduino |
| ๐ Real-time Data Logging | Cloud-based transaction recording | ESP32 + Google Sheets API |
| ๐ Audio Feedback | Customizable alerts for system status | Buzzer Module |
| ๐ฑ Mobile Integration | Real-time monitoring capabilities | WiFi + HTTP |
| ๐ก๏ธ Security Validation | Authorized-only access control | Database Validation |
- ESP32 Development Board - IoT connectivity and data processing
- Arduino Uno R3 - Main control unit for sensors and actuators
- MFRC522 RFID Module - Vehicle identification
- 16x2 LCD Display with I2C - Status display
- SG90 Servo Motor - Gate mechanism
- Active Buzzer Module - Audio alerts
- Jumper wires (Male-to-Male, Male-to-Female)
- Breadboard or PCB
- 5V Power Supply
- USB cables for programming
ESP32 โโ Arduino Uno (Serial Communication)
โ
Arduino Uno Connections:
โโโ RFID (MFRC522)
โ โโโ SDA โ Pin 10
โ โโโ SCK โ Pin 13
โ โโโ MOSI โ Pin 11
โ โโโ MISO โ Pin 12
โ โโโ RST โ Pin 9
โโโ Servo Motor โ Pin 6
โโโ Buzzer โ Pin 7
โโโ LCD (I2C)
โโโ SDA โ A4
โโโ SCL โ A5
| Component | Arduino Pin | ESP32 Pin | Notes |
|---|---|---|---|
| RFID SDA | 10 | - | SPI Slave Select |
| RFID SCK | 13 | - | SPI Clock |
| RFID MOSI | 11 | - | SPI Master Out |
| RFID MISO | 12 | - | SPI Master In |
| RFID RST | 9 | - | Reset Pin |
| Servo PWM | 6 | - | PWM Control |
| Buzzer | 7 | - | Digital Output |
| LCD SDA | A4 | - | I2C Data |
| LCD SCL | A5 | - | I2C Clock |
| Serial RX | 0 | TX (GPIO1) | Communication |
| Serial TX | 1 | RX (GPIO3) | Communication |
flowchart TD
Start([System Ready]) --> Scan[RFID Card Detected]
Scan --> Check{Valid Card?}
Check -->|โ
Yes| Display[Show Vehicle ID on LCD]
Check -->|โ No| Deny[Access Denied + Buzzer]
Display --> Gate[Open Gate + Success Tone]
Gate --> Send[Send Data to ESP32]
Send --> Log[Log to Google Sheets]
Log --> Wait[Wait 3 seconds]
Wait --> Close[Close Gate]
Close --> Start
Deny --> Start
-
๐ Detection Phase
- Vehicle approaches toll booth
- RFID scanner activates and reads card
-
๐ Authentication Phase
- Arduino validates RFID against database
- System determines access permission
-
โก Action Phase
- Valid: Gate opens, LCD shows vehicle info
- Invalid: Access denied, error buzzer sounds
-
๐ Logging Phase
- ESP32 receives transaction data
- Information logged to Google Sheets with timestamp
-
๐ Reset Phase
- Gate closes after delay
- System returns to ready state
- Arduino IDE (Version 1.8.13 or higher)
- ESP32 Board Package installed in Arduino IDE
- Google Account for Sheets integration
- WiFi Network for ESP32 connectivity
# Install via Arduino Library Manager
- Wire.h (Built-in)
- LiquidCrystal_I2C.h
- Servo.h (Built-in)
- MFRC522.h
- SPI.h (Built-in)
- SoftwareSerial.h (Built-in)# Install via Arduino Library Manager
- WiFi.h (Built-in)
- HTTPClient.h (Built-in)
- TimeLib.h1. Connect components according to wiring diagram
2. Double-check all connections
3. Ensure stable power supply to both boards# Upload Arduino Uno Code
1. Select Board: "Arduino Uno"
2. Select correct COM Port
3. Upload the Arduino sketch
# Upload ESP32 Code
1. Select Board: "ESP32 Dev Module"
2. Select correct COM Port
3. Upload the ESP32 sketch-
Create Google Sheet:
- Create new Google Sheet - Set up columns: Date, Time, Vehicle_UID, Status -
Deploy Apps Script:
// Create Google Apps Script web app // Set permissions to "Anyone can access" // Copy web app URL for ESP32 code
-
Update ESP32 Code:
// Replace with your Google Apps Script URL const char* serverName = "YOUR_GOOGLE_SCRIPT_URL_HERE"; // Replace with your WiFi credentials const char* ssid = "YOUR_WIFI_SSID"; const char* password = "YOUR_WIFI_PASSWORD";
โ
Power on both Arduino and ESP32
โ
Check serial monitor for connection status
โ
Test with authorized RFID tag
โ
Verify gate operation and LCD display
โ
Confirm data logging in Google SheetsCore Responsibilities:
- ๐ RFID card scanning and validation
- ๐ช Servo motor gate control
- ๐บ LCD status display management
- ๐ Buzzer alert system
- ๐ก Serial communication with ESP32
Key Functions:
void setup() // Initialize components
void loop() // Main program loop
void checkRFID() // Scan and validate RFID
void operateGate() // Control gate servo
void displayStatus() // Update LCD display
void sendToESP32() // Transmit data via serialCore Responsibilities:
- ๐ถ WiFi connectivity management
- ๐ Data processing and validation
- โ๏ธ Google Sheets API integration
- โฐ Timestamp generation
- ๐ HTTP request handling
Key Functions:
void setup() // Initialize WiFi and components
void loop() // Listen for Arduino data
void connectWiFi() // Establish WiFi connection
void logToSheets() // Send data to Google Sheets
void validateUID() // Check UID formatComplete system assembly showing Arduino Uno, ESP32, RFID module, servo gate, and LCD display
Real-time monitoring interface showing transaction logs and system status
Demo.Video.mp4
Live demonstration of complete toll collection process from RFID scan to data logging
- Blockchain Integration - Implement decentralized transaction validation
- Encryption Protocol - Add AES encryption for data transmission
- Multi-factor Authentication - Combine RFID with biometric verification
- Digital Wallets - Support for UPI, PayPal, cryptocurrency
- Dynamic Pricing - Peak hour and congestion-based toll calculation
- Subscription Models - Monthly/yearly toll passes
- Traffic Analytics - Real-time traffic flow analysis
- Predictive Maintenance - AI-powered system health monitoring
- Revenue Optimization - Machine learning for toll pricing
- 5G Connectivity - Ultra-low latency communication
- Edge Computing - Local processing for faster response
- Smart City Integration - Connect with city-wide traffic management
We welcome contributions to improve the IoT Toll System! Here's how you can help:
1. Fork the repository
2. Clone your fork locally
3. Create a feature branch
4. Make your changes
5. Test thoroughly
6. Submit a pull request- Follow Arduino coding standards
- Include comments for complex logic
- Test all hardware connections
- Update documentation for new features
- Ensure backward compatibility
- Use GitHub Issues for bug reports
- Include system specifications
- Provide detailed error descriptions
- Add photos/videos if helpful
- ๐ง Email: aadityapanda23@gmail.com
- ๐ GitHub Issues: [https://github.com/AadityaPanda/ITSS/issues]
- ๐ IEEE Paper: https://ieeexplore.ieee.org/document/10993585
This project is licensed under the MIT License - see the LICENSE file for details.
โญ If this project helped you, please give it a star on GitHub!
Built with โค๏ธ for the future of smart transportation



