Programming Sensor Networks Getting Cheaper and Easier

Researchers at the University of Michigan and Northwestern University now have created a new, simpler programming language for wireless sensor networks, which the researchers say is designed for easy use.

by / April 7, 2009
Previous Next

Photo: Sensor nodes are attached to a firefighter in a Paris Sensor Network Experiment.

Modern wireless sensor networks have become quite common in the past five years. In the scientific community, they are used to monitor such things as temperature, vibration and humidity in real time. And with an aging infrastructure, and bridges being used long after their original expected life spans, civil engineers are starting to deploy wireless sensor networks to monitor vibration to keep tabs on bridge health.

Generally, sensors range in size from several centimeters across to several inches. And unlike passive radio frequency identification, or RFID tags, these active sensors usually can compute and communicate with each other through radio signals.

However, being in effect computing devices, sensors require programming. And up to now, that has been a fairly complex task. "Most existing programming languages for wireless sensor networks are a nightmare for nonprogrammers," said Robert Dick, associate professor in the U-M Department of Electrical Engineering and Computer Science in a recent press statement.

Researchers at the University of Michigan and Northwestern University now have created a new, simpler programming language for wireless sensor networks, which the researchers say is designed for easy use by the geologists who might use them to monitor volcanoes or the biologists who rely on them to understand birds' nesting behaviors, for example.

Rather than create a language which can be used for a wide variety of uses, and thus greatly increasing its complexity, they are creating languages intended for very specific applications.

"We're working on ways to allow the scientists who actually use the devices to program them reliably without having to hire an embedded systems programming expert," Dick explained.

To start, the researchers examined the variables that a scientist using a sensor network might want to monitor, and the areas in which the scientist might need flexibility. They identified 19 of these "application level properties." They then grouped them into seven categories, or archetypes.

By breaking up the main programming language into seven archetypes, they can then zero in on specific types of monitoring. So far, they have created a language for one archetype -- WASP, which stands for Wireless sensor network Archetype-Specific Programming language, and they are now working on additional languages.

This makes programming sensor networks simpler and faster. In WASP, one simply tells the system what to do, rather than how to complete the task, and the system sorts out the implementation details for automatically.

And it works, according to reports. In a 56-hour, 28-user study, the researchers compared novice programmers' experiences with WASP and four common, more complicated languages.

According to a report released by the researchers, on average, users of other languages successfully completed assigned tasks only 30 percent of the time. It took those who succeeded an average of 22 minutes to finish. When using WASP, the average success rate was 81 percent, and it took those who succeeded an average of 12 minutes. That's a speed improvement of more than 44 percent.

For governments considering various infrastructure and environmental applications for sensor networks, this means saving money. Finding an embedded systems expert to program a sensor network is difficult and costly and can lead to errors because the person using the network is not the person programming it, according to Dick. The cost and disconnect associated with the situation also means these networks aren't being used to their full potential.

Photo by Kai0chi. Creative Commons Attribution-Noncommercial 2.0 Generic


Blake Harris Contributing Editor