AIRS - An Air Quality Awareness Platform for Smart Cites

Check air quality levels in your city before going for a run in convenient ways such as IFTTT, Amazon Alexa, Twitter, and alerts.

AdvancedShowcase (no instructions)8 hours1,031
AIRS - An Air Quality Awareness Platform for Smart Cites

Things used in this project

Hardware components

Intel Edison
Intel Edison
Our first time using Intel Edison, have to say it's pretty nice. While more costly than a Raspberry Pi, it's got analog inputs and the flexibility to choose your IDE (Arduino) or Intel's IDE. We chose Intel's IDE, mainly because we wanted to learn something now. The IDE is node.js based so if you know javascript, you'll be right at home here. We used this library http://johnny-five.io/ to interface with the sensors from javascript. It's quite nice and has pre-written libraries for many common sensors and LCD displays including many Grove based sensors.
×1
Grove starter kit plus for Intel Edison
Seeed Grove starter kit plus for Intel Edison
Our Grove Air quality sensor is plugged into the Grove shield which is plugged into the Intel Edison board.
×1
Amazon Echo
Amazon Alexa Amazon Echo
Amazon's Alexa voice assistant was used to read out sensor based, air pollution status
×1

Software apps and online services

BlueMix
IBM BlueMix
We used the pre-configured (boilerplate) IoT solution (find it in the catalog section). This automatically provisioned an IoT stream and node-red instance.
Alexa Voice Service
Amazon Alexa Alexa Voice Service
Originally we wanted to have Alexa read directly air pollution status from the Cloudant DB (JSON format) in BlueMix. This wasn't possible in the time that we had unfortunately so as a plan B, we have Alexa read the most recent Tweet from our air pollution Twitter feed.
Maker service
IFTTT Maker service
IFTTT let's you create your own channel! Search for the "Maker" channel on IFTTT to make your own. You simply do an HTTP POST in this format: https://maker.ifttt.com/trigger/{your_custom_event_name}/with/<your_API_key> With an optional JSON body of: { "value1" : "", "value2" : "", "value3" : "" } Be aware that this custom Maker Channel recipe is only available to your own personal IFTTT login and is not published to all IFTTT users. Nonetheless, it is an excellent to prototype an IFTTT channel super fast. I suppose they probably have a process to take a custom channel and make it an official, global one.
Microsoft Azure
Microsoft Azure
Microsoft Azure IoT was used for the map overlay feature. Azure IoT has a pre-configured remote monitoring solution which turns out to be quite easy to setup. It's good if you need to get something up and running fast. So easy though it was a challenge for us to customize it as we didn't understand the underlying plumbing very well. As with the BlueMix Cloud integration, a small chunk of code is running locally on the Intel Edison to stream data to Azure.
Twitter
Twitter
We used Twitter as a feed for air pollution status, feed here https://twitter.com/sjstate_airq

Story

Read more

Custom parts and enclosures

Air Pollution Awareness Overview Deck (PDF)

Schematics

Node-Red Bluemix

Our first time using Node-Red, it's a drag and drop style language to stitch together business logic. A small piece of javascript code is running on the Intel Edison to stream data to BlueMix. The "IBM IoT App In" is connected to that data stream and then now it's a matter of drag and dropping various function blocks to perform your business logic. For example, we had a requirement to store this data for historical analytics. The last box "Cloudant" is a drag and drop event and then specifying a few parameters inside the box we are just like that storing our data in a DB (pretty nice!). BlueMix also has some very powerful capabilities with Watson exposed here which unfrotunately we didn't get time to experiment with during the Hackathon..
Node red screen grab

Code

ecobyte-AirQuality-AzureIoT

JavaScript
The following code connects to Azure IoT Hub and monitors the air quality. It turns the buzzer and led, once air quality value is greater than threshold value.
No preview (download only).

ecobyte-AirQuality-Bluemix

JavaScript
The following code connects to Bluemix and monitors AirQuality
No preview (download only).

Credits

Al Linke

Al Linke

1 project • 0 followers
Sucheta Thakur

Sucheta Thakur

1 project • 0 followers
Saril Raghu

Saril Raghu

1 project • 0 followers
Dinesh Saigal

Dinesh Saigal

1 project • 0 followers
Bharat Ramakrishnan

Bharat Ramakrishnan

1 project • 0 followers

Comments

Add projectSign up / Login