Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: (Sensor Team 02) Kansul Mahrifa, Ahmed Karanath and Thejas Babu.


00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Not Late
Comments: I'm looking forward to seeing this.

Score:  00/100

(Inline Comment)

Executive Summary

Want to know what temperature is it outside? Or wether you need your coat/sunglasses when you go out? The Weather Station Project collects weather info from locations around the Kamand campus and gives real-time insights. Know how warm it is in the mess, or how hot it is in the boy's hostel. A variety of sensors (temperature, humidity, carbon monoxide concentration, et cetera) are interface with a Beagle bone, which sends the data to the cloud.

This project is mainly focused on the sensors for gathering weather related information. The primary objectives include sensing the weather related information in and around the campus and transmitting the collected information to the server.


Fritzing diagram of the sensors used in this project. The sensors from top to bottom are the Pressure sensor, the HTU21D Temperature & Humidity sensor, and the MQ7 Carbon Monoxide concentration sensor

These are the hardware used for this project:

  1. BeagleBone Black
  2. Temperature and humidity sensor(HTU21D)
  3. Carbon monoxide concentration sensor (MQ7)
  4. Barometric pressure sensor (BMP180)
  5. Realtek WiFi module (RTL8188CU)
  6. Breadboard, a couple of wires and resistors.

The Fritzing diagram of all sensors connected to the bone is shown here. The Pressure Sensor(BMP180) uses i2c-1 port through pins P9_17 and P9_18, and the HTU21D temperature and humidity sensor uses i2c-2 port through pins P9_19 and P9_20. The gas sensor gives an analog output which is given to the ADC through pin P9_36. The actual gas sensor is not shown for clarity.

Installation Instructions

If you are using the bone for the first time, refer the Beginner's Guide for detailed instructions on how to setup your Beaglebone,

1. Setting up Proxy (Skip this step if you have a direct connection to the internet)

Any installation or downloads are done via the proxy server, so remember to set the proxy in your BeagleBone(after you install Debian) and host machine. Add the following lines in /etc/environment


This is the proxy server in IIT Mandi. Set it to point to the proxy server of your university.

2. Installing Debian
This project uses a BeagleBone Black running Debian Wheezy. For instructions on how to install, follow the instructions here

3. Installing required Modules
For cloud connectivity, install the 'require' module on the host by running

npm install -g require

That's all we need to get started!

User Instructions

This project is pretty easy to setup. Follow these steps, and you're all set!

  • To get your Beaglebone talking to the web through your computer, refer this awesome tutorial. Some of these have to be done everytime you restart your host. If you have a supported WiFi dongle, plug it in and you're good to go. Refer this link for WiFi setup instructions.
  • Wiring diagrams, connections, and source code for this project is available at


This local weather station is

  • Lightweight and small in size
  • Portable
  • Consumes very little power

The best part is you can access your data from anywhere in the world! Go out of town and pull up a link to see how things are like at campus. Or find out if you need to get that extra jacket when you come back.

Theory of Operation

The sensors used in this project are:

1.HTU21D - Temperature and humidity sensor
This is an i2c sensor that gives temperature and humidity readings. Pretty accurate, but not all that stable.

2.MQ7 - carbon monoxide sensor
An analog sensor that gives relative values of Carbon Monoxide concentration in the air. requires preheating and cyclic heating. We weren't able to calibrate it since we didn't have any CO environment in the campus. It is a dangerous gas and exercise caution while calibrating.

3.BMP180 -Barometric pressure sensor"'
Another i2c sensor which gives raw pressure readings.

The theory of operation relies wholly on the operation of the individual components of the project, in this case, on the individual sensors and the wifi module. a More information about the sensors can be found in the links given in the hardware section. The individual sensors detect data and sends it to the Beaglebone. The bone then transforms this data into a suitable format and uploads it to a central server.

Work Breakdown

Major tasks involved in the making of this project were:

  1. Interfacing the sensors to the Beaglebone
  2. Setting up sensors in specified locations
  3. Sending gathered data to centralized server - work with server team
  4. Documentation of project

Each task was completed as a collective effort of all the team members. The total number of hours spent on making this project is around 96.

The individual contributions are:

Task no. Kansul Mahrifa Ahmed Karanath Thejas Babu
Task 1 34% 37% 29%
Task 2 37% 32% 31%
Task 3 35% 35% 30%
Task 4 34% 29% 37%

Future Work

This project can be expanded to do lots of other stuff:

  • An apparatus could be set-up for measuring the wind speed in the campus.The setup could be located on the rooftop of any tall building, like the academic building or the faculty quarters.
  • A soil moisture sensor can be used along with the sensor network to predict when plants need watering, and to keep a check on it.
  • The bone and sensor array can be packaged into a single module which is weather-proof and battery powered.
  • We could build an app to collect data automatically from the cloud and display it on a mobile device, with alarm triggers, to detect fires or storms.


This project was an interesting and fun learning experience. We learnt lots of new stuff, including the fact that it is the small things get you stuck up for hours at a time. Thanks to Prof Yoder for sharing ideas with us and getting us started on this project. Looking forward to another Embedded Linux course!

thumb‎ Embedded Linux Class by Mark A. Yoder