A new, simpler programming language for wireless sensor networks, written with the novice programmer in mind, can be used by geologists for monitoring volcanoes and biologists who rely on them to understand birds' nesting behaviors.
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. The cost and disconnect associated with the situation means these networks aren't being used to their full potential.
Lan Bai, U-M doctoral student in electrical engineering and computer science, will present a paper on the new programming languages on April 13 at the Conference on Information Processing in Sensor Networks in St. Louis.
"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. "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."
Modern wireless sensor networks, which have become more common in the past five years, allow researchers to monitor variables such as temperature, vibration and humidity in real time at various points across a broad environment. The sensors range in size from several centimeters across to several inches. Unlike passive radio frequency identification, or RFID tags, these active sensors can compute and communicate with each other through radio.
Civil engineers are working on using wireless sensor networks to monitor vibration in bridges to keep tabs on their health.
To create their language, 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. They've essentially broken up the main programming language into seven archetypes that zero in on specific types of monitoring that different researchers might use. They wrote a language for one archetype and are working on others. They call their first language WASP, which stands for Wireless sensor network Archetype-Specific Programming language.
In WASP, scientists tell the system what they want it to do, rather than how they want it to complete the task.
"Scientists enter the requirements and our system sorts out the implementation details for them automatically," Dick said.
In a 56-hour, 28-user study that they believe to be the first to evaluate a broad range of sensor network languages, the researchers compared novice programmers' experiences with WASP and four common, more complicated languages.
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.