Sensor Network Project
|In this project, you will
program a network of wireless sensor nodes. The code will be
developed over the TinyOS operating system and will run on a number
of motes manufactured by Crossbow. The assignment can be
entirely developed and simulated on your home machine using the
simulator TOSSIM, that is available with the TinyOS
distribution. Each group will get 4-6 sensor motes to work
with. For the project, you can simulate your code on your
home machine using TOSSIM. Once your code works well on the
simulator, we can test it in the lab with a larger collection of
motes (10-12), if needed.
Here is some warm-up work to help you prepare for your sensor programming project.
I realize several of you are having issues with installation of cygwin and tinyos, but this is clearly the first step we need to do before proceeding any further. Most installation problems are due to improper configuration; make sure that all paths and environment variables are properly set up. You also need to ensure that you have compilers for the appropriate architecture: for instance, msp430 compiler and libraries for Telosb motes.
|II. Getting started
You should test your installation after you complete step 1. Start with installing Blink application to your motes. Blink is a very simple nesC application provided by TinyOS. You could install it by going through the following steps.
connect 1 mote to the usb interface on your machine. (As to how to install the driver, please refer the
quick start guide of moteiv)
$make telosb reinstall,1
(The number 1 assigns ID 1 to the mote; it is not useful for this particular application, but IDs would be useful for setting up a network of sensors.) The LED blinking very quickly indicates that program is being written to the mote. After the program is completely installed on the mote, the Blink application will be automatically executed. The LED on the mote will bink every 1 second.
The next application you can try installing is RadioCountToLeds, which has motes communicating their counts to one another, and displaying the counts received on their LEDs. This application exercises the radios of the motes, and involves compilation of Java code -- so this also ensures that your Java configuration is properly done.
|III. Go through the
|IV. Toy project using
You have the first mote do light sensing. You could use the TSR interface provided by HamamatsuC component.(For detail about how to use the components, please check the tutorial or reference) If the light level is above a certain threshold, this mote will notify the second mote via radio, so that the second mote will turn on its LED. If the light sensed by the first mote is below some threshold, it will send the notification to the second mote, and that mote will turn off the LED.
This toy project is NOT required, thus won't be graded. However, this would definitely help you prepare for the final project, since you would know better about nesC, radio communication, multihop, sensing data collection, etc. after you are done with this toy project.
|V. Sensor Programming
The goal of the sensor project is to set up a shortest-path spanning tree over the nodes reachable from a central node. After the whole network converges to the static topology, the network should support the following features: