Vehicles queuing up to pay toll tax at a highway toll gate is a common sight. The toll collection system mostly works on a manual process and can take up to a minute to process each vehicle’s transaction. This has a cumulative effect of increasing traffic congestion, adding delays in travel time and also becoming a pollution hotspot near the toll gate area. Imagine yourself in a car, stuck in one of those long queues. All that you can do is to sit patient till you get past the toll gate.

Introducing Smart Toll Collection System

To solve this problem, in this blog post, I present to you a Smart Toll Collection System. This system can greatly expedite the time taken by each vehicle to pay the toll tax. This is not a new problem. There are existing solutions which are commercially deployed and are practically well suited. What I am presenting here is a model system build atop the IBM Bluemix ecosystem of services.

Bluemix provides a host of services which can ease application development in many ways. Most noteworthy feature of Bluemix is the exhaustive catalog of many services. This contains databases, middleware tools and other computing infrastructure which makes a developer’s job easy. Bluemix is built on top of Cloud Foundry and Docker container architecture, and there is a host of pre-build container images available with your favorite programming language. Read on to get the hang of how can we leverage Bluemix services to build this demo.


As the name suggests, “Smart Highway Toll Collection System” is an automatic system which leverages the “Internet of Things” technology to identify a vehicle via a unique identification tag. We have used RFID tag in this case. When a vehicle passes through a toll booth, this RFID card is used to track & bill the vehicle owner through a payment gateway.


This smart toll collection system has three components.

  • Vehicle Tracker: This is a hardware-cum-sensor system which manages vehicle detection and is installed at the toll booth. The hardware is based on Mediatek Linkit ONE development platform.
  • Toll Management Server: This is the backend server hosted in IBM Bluemix cloud platform which is responsible for authenticating, identifying and billing a vehicle based on the unique RFID tag. Thus it manages the complete toll collection process.
  • User App: This is a simple mobile app based on Cordova. It is a utility app for the vehicle owners to keep a tab on their toll transactions. It also has a few additional features that we will explore later in this post.

Toll Booth Hardware Setup

At the toll booth, a Mediatek LinkitONE hardware manages the toll collection process. LinkitONE is a feature-rich IoT evaluation board from Mediatek that has many built-in communication interfaces . It provides the essential interfaces for connecting to cloud using WiFi and GSM/GPRS. Furthermore, it also integrates Bluetooth EDR/BLE and GPS on the single hardware.


For vehicle tracking at the toll booth, Linkit ONE interfaces with a RFID reader to get the RFID tag information from each of vehicle passing through the toll gate. In addition to that, it is also desirable to have a retractable road barrier to thwart any misadventure on the part of the driver. A servo motor is used to drive the barrier.

Toll Management Server

The toll management application server is hosted on IBM Bluemix. It is executed on Cloud Foundry based container atop Python build pack. The server performs the following functions

  • Authentication: Establishing the identity of the vehicle based on RFID tag.
  • Authorization: Decide whether to allow or deny the commencement of toll transaction for the vehicle.
  • Accounting: Performing and managing the billing for toll transaction.

User App

For the vehicle owner’s convenience, a mobile app is also provided to recharge their virtual wallet for toll payment and keep a tab on the vehicle’s toll transactions.


Additional Bluemix Services

Real-time message sync between the components of this system is a real requirement for speedy toll transaction. In order to do this quickly, we are using PubNub as the messaging service. PubNub offers a real-time data stream network for streaming data across devices connected to the Internet. it is one of the most reliable messaging services available and is well suited for IoT systems. PubNub is available as a service within the Bluemix catalog of services and has a free account to try the service.

Furthermore, we also need a database for storing vehicle data and billing transactions. For this application, we have used Dash DB which is one of the popular data warehousing services, also available under Bluemix catalog of services.

If you want to try your luck in building this system as a model toll booth, then scroll down to the end of this post to get the details of project source code and other instructions. Before you give it a shot, make sure that you sign up for a Bluemix account and PubNub account. Both these services come with free tier accounts that allow you to play with them and build some cool stuff.

Block Diagram

The architectural block diagram of the entire system looks like this.

Automated Toll Collection System Block Diagram

Note that in this case the LinkitONE is configured to communicates with the server using WiFi. Alternately, we can also program it to use GPRS thus giving us extra options in case WiFi hotspot is not available.

Hardware Setup

The schematic diagram below shows the Linkit ONE powered hardware setup with servo motor and RFID reader


Toll Booth Operation

Here is the model toll booth setup with the RFID reader hardware

Toll Booth RFID Reader

Any vehicle approaching the booth will present its RFID card for scanning. The RFID tag will be picked up by the reader and sent to server for authentication.


If all goes well, which means that the vehicle is authenticated and is authorized to pass through the toll booth, the server initiates a payment transaction and the user’s mobile will have a notification.

Mobile App Toll Charge Alert

Finally, the server instructs the hardware to retract the servo motor to allow the vehicle to pass through. Here is how this entire process unfolds.

Automated Toll Collection System Operation

The Case of Stolen Vehicle

Assuming that the authorities deploy such an identification system universally for automatic vehicle tracking, it also becomes possible to track a stolen vehicle. RFID readers installed at toll booths, checkpoints or at some strategic places can help locate a stolen vehicle.

The user app has a feature by which the vehicle owner can mark his vehicle as stolen, by tapping on the red colored BLOCK button.

Toll App Vehicle Block

So the next time one of the RFID readers detect his vehicle, the server will not authorize the toll transaction. As a result, it will send an alert to the app.

Vehicle Spotted Alert

Project Setup and Source Code

The complete software source code and configuration details for this project are open sourced and available under GitHub.

Refer to this repository for details of configuration, build, and deployment of the system as per the model setup.

I encourage you to try your hands on this. If you are a real IoT DIY enthusiast then you should definitely give this a try. We would also like to know if you can suggest an enhancement in this system in any other possible way to make it more functional.

About the author Staff

Showcasing and curating a knowledge base of tech use cases from across the web.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
TechForCXO Weekly Newsletter
TechForCXO Weekly Newsletter

TechForCXO - Our Newsletter Delivering Technology Use Case Insights Every Two Weeks