Project 2 - Heterogeneous Sensor Networks
The purpose of this assignment is to further familiarize yourself with sensor network programming, develop code for larger and heterogeneous sensor networks, and build a system that responds to different types of sensor inputs. In this assignment, you will develop code for both TinyOS-based low-power motes and more powerful Linux-based Stargate computers. These more powerful computers are often used to build hierarchical networks, where "gateway" computers (such as the Stargate) act as "cluster heads". These gateway collect data from multiple motes and propagate data (possibly after doing some processing on them) towards the base station.The setup necessary for this assignment will be as follows. A Stargate computer connects to the PC (in the DARTS Lab) via a serial connection. This Stargate has also a MICAz radio connected to it, which serves as the base station for other motes. You will need four additional MICAz motes to complete this assignment. The other four motes should be placed in the lab such that two of them can reach the mote on the Stargate directly, the other two motes need the first two motes to reach the Stargate. This means that you will have built a multi-hop network with the motes. This can be achieved by setting the power level to the minimum which reduces the mote transmission range to a few feet.
The purpose of the system is to emulate the popular "Hyper Dash" game. Toward this end, the 4 motes will be placed around the DARTS Lab and they will continuously report their light readings to the PC (via each other and the Stargate). Your program on the PC also allows you to start a game of Hyper Dash, which will then be controlled by the Stargate. The Stargate randomly selects one of the four motes and activates the sounder. This sounder stays active until the light reading goes below a certain threshold, e.g., this can be achieved by covering the mote with your hands, a box, or something similar. Once the light reading goes beyond the threshold, the Stargate randomly selects one of the other three motes. The previous mote stops its sounder and the newly selected mote activates its sounder. This process continues ten times, after which the Stargate notifies the PC that the game has been completed. The PC then informs the user of the play time.
The TA will hold a tutorial (9/24 during regular course hours) on how to interact between PC and Stargate and between Stargate and mote to get you started in this project. The TA will also prepare several Stargates and motes for this project, please share these devices with your colleagues and erase any code after using them for your experiments.
Deliverables
- All source files that have been developed must be placed into your dropbox into a subdirectory called "project2".
- A brief report (at most one page) describing your implementation, any challenges faced in the implementation and testing, and any unresolved issues.
- You will demonstrate your implementation on 10/13 during regular class hours.
Resources
- Stargate Makefile Template
- Stargate Configuration Instructions
- Stargate Users Manual
- Radio Power Control Core (not included in TinyOS core)
- Sample Applications
- The sounder library for the motes can be found at /opt/tinyos-2.1.0/tos/sensorboards/Mts300Sounder.nc (including the interface Mts300Sounder with the only interface function "beep")