Smart Air for Smart Cities (Intel IoT)

Introduction: Smart Air for Smart Cities (Intel IoT)

Hello everyone!

As air-pollution in cities today pose an ever-increasing problem, it is high-time we develop smarter solutions using IoT to tackle it. With the government trying their best to curb pollution, a more diverse and reliable assessment system to continuously collect monitor the air-pollution levels in urban areas is necessary to keep a check on the quality of air that we breathe.

What makes this project stand out from other existing solutions is the deployment of far lesser no. of mobile sensor nodes that travel around the city, instead of several sensor nodes fixed at places in the city, thus drastically cutting down setup and maintenance costs and also providing us with highly diverse data to be analysed and studied.

So, how does this work?

When a node is attached to a public transport bus, it can collect data from all locations covered by the bus's route in time intervals. Averagely assuming that 5 bus routes can cover the whole of a moderate-sized city, 5 sensor nodes can cover the whole city, instead of numerous nodes placed at different parts. To increase the frequency of collected data at a certain location, more busses covering the same route can be equipped with the sensor nodes. Assuming three busses of a particular route is equipped, a total of 15 similar sensor nodes will be enough to provide us data that covers all the places and spread over a wide time range. The collected data (time-stamped and geo-tagged using GPS) will be stored in an SD card and automatically uploaded to the cloud (I'm using Dropbox to store the uploaded file from which data can be extracted for analytical purposes) whenever WiFi connectivity (at the bus station) is achieved, thus uploading the data several times a day.

In short: Mobile sensor nodes with Intel Edison that store and upload logged air-quality data from SD card through Wi-Fi to Dropbox, where data can be extracted for analytics

Steps in this Instructable:

  1. Introduction (Current page)
  2. Components used
  3. Setting up the Edison
  4. Getting the Hardware ready
  5. The Arduino code

Step 1: Components Used

  • Intel(R) IoT Developer Kit
    • Intel Edison, Arduino expansion board
    • Grove shield
  • Grove temperature sensor
  • Grove LCD display
  • DHT11 humidity sensor
  • MQ7 Carbon Monoxide sensor
  • MQ135 Air quality sensor
  • GPS module (Ublox NEO 6m)
  • SD card
  • Prototyping board, wires, 10k resitor(opt.), soldering kit
  • (Grove dust sensor can be used to measure particular matter. But is it a little costly. i haven't used it in this project)
  • Arduino IDE to program the Intel(R) Edison
  • Dropbox account

Step 2: Setting Up the Edison

The Intel Edison board needs a firmware to run. The process of flashing the linux firmware and configuring the board has not been covered in this Instructable as there is a very detailed step-by-step guide (link provided) written by Intel itself where you can download all the necessary software too and there also a lot of Instructables that help in setting up the Edison.

Getting started guide:

Step 3: Calibrating Gas Sensors

If you buy an MQ gas senor with an attached breakout board (like in the picture), it most likely has a pot given to calibrate the sensors. Calibration is done to convert the analog input data to ppm(parts per million). If you buy an MQ gas sensor without the board (the bare sensor alone), then a 10k ohm(recommended) resistor is as a 'load-resisitor' to calibrate (see picture).

(In this project, i have used one MQ7 CO senor with breakout and one MQ 135 bare sensor without breakout)

Resistor ratio Rs/Ro, where Rs = Sensor read resistance and Ro = sensor resistance at 100ppm of required gas in the clean air (10k ohm, in most cases and is ideal to use) is used to calculate the ppm

Calibration gases of known ppm are readily available in the market, or you can use an estimated concentration of gas collected to calibrate. However, in this project, I will only be logging raw sensor input values to SD card and upload to cloud.

Here is a nice video I found on YouTube uploaded by Drone Technologies :


Step 4: Setting Up Cloud Storage (Dropbox)

  • Create a Dropbox account

  • Create a Temboo account

In this project, GPS data and sensor values are logged in a .txt file in the SD card. When a WiFi connection is established, the .txt file is uploaded to Dropbox cloud storage. From there, the data can the accessed in the future for data mining and analytics

Here is a link detailing all the initial steps necessary to achieve this :

Step 5: The Arduino Code

In this code, I have used a lot of public libraries and examples to compile the different parts of the code.

Step 6: Output

The logged data is seen in the .txt file.

The uploaded file is seen in the Dropbox folder.

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020
    • Maps Challenge

      Maps Challenge