Published © GPL3+

Pollution Detecting System

This system detects the pollution emitted by vehicles and informing the respective owners about the requirement of service of their cars.

IntermediateFull instructions provided12 hours500
Pollution Detecting System

Things used in this project

Hardware components

Bolt WiFi Module
Bolt IoT Bolt WiFi Module
USB-A to Mini-USB Cable
USB-A to Mini-USB Cable
Grove - Gas Sensor(MQ2)
Seeed Grove - Gas Sensor(MQ2)
5 mm LED: Yellow
5 mm LED: Yellow
5 mm LED: Green
5 mm LED: Green
Solderless Breadboard Half Size
Solderless Breadboard Half Size
Male/Female Jumper Wires
Male/Female Jumper Wires
Male/Male Jumper Wires

Software apps and online services

Bolt Cloud
Bolt IoT Bolt Cloud
Bolt IoT Android App
Bolt IoT Android App
SMS Messaging API
Twilio SMS Messaging API
Snappy Ubuntu Core
Snappy Ubuntu Core


Read more


Circuit diagram of pollution detecting system

It shows all the connections of all the modules, sensor and devices.

Schematic Diagram of MQ-2 gas sensor

It shows the inner circuitry of the MQ-2 sensor.

Schematic Diagram of Bolt IoT Wi-Fi module

It shows the inner circuitry of the Bolt Wi-Fi module.


Code for whole execution of the project

It is code for running the whole product system.
Import conf #fetches all the credentials
from boltiot import Sms, Bolt #imports sms & Bolt from boltiot library
import json, time #imports json & time from python library

maximum_limit = 400 #threshold of the sensor

mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID) #mybolt object fetches api key & device ID
sms = Sms(conf.SID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER) #sms object fetches SID, Auth token, To number and from number

while True: 
    print ("Reading sensor value")
    mybolt.digitalWrite('1', 'HIGH') #turns ON the green LED /ignition system
    response = mybolt.analogRead('A0') #read the output of MQ2 gas sensor
    data = json.loads(response) #convert sensor output into data
    print("Sensor value is: " + str(data['value'])) #prnt sensor value to console
    try: #used to avoid traceback errors
        sensor_value = int(data['value']) 
        if sensor_value > maximum_limit: #verifies the outout to be in limits
          response = mybolt.digitalWrite('0', 'HIGH') #turn ON yellow LED depicting requirement of service
          print(response) #print the status of output
          print("Making request to Twilio to send a SMS")
          response = sms.send_sms("The Current pollution level is " +str(sensor_value) +  "Your vehicle needs servicing in concern with pollution emission") #message sent to owner
          print("Responses received from Twilio is: " + str(response))
          print("Status of SMS at Twilio is :" + str(response.status))
          time.sleep(45) #delay for the owner to get vehicle serviced
          mybolt.digitalWrite('1', 'LOW') #turns OFF ignition system/green LED
          response = sms.send_sms("The engine has been cut off since pollution service period had been expired.") #message sent to owner/RTO on expiry of pollution service period
    except Exception as e: 
        print ("Error occurred: Below are the details")
        print (e)

Code for controlling LEDs for system

The LEDs of the project could be controlled by using Bolt IoT app
<!DOCTYPE html>
        <title>Bolt IoT Platform</title>
        <script type="text/javascript" src="https://cloud.boltiot.com/static/js/boltCommands.js"></script>
        <button style="background-color:green; height:150px; width:250px;" onclick="digitalWrite(0, 'HIGH'), digitalWrite(1, 'HIGH');"> 
<font size="7"><B>ON</B></font></button>
        <button style="background-color:red; height:150px; width:250px;" onclick="digitalWrite(0, 'LOW'), digitalWrite(1, 'LOW');">
 <font size="7"><B>OFF</B></font></button>




0 projects • 0 followers


Add projectSign up / Login