Lesson #3: Don’t forget about the
base station! The base station is a critical component of any sensor network
architecture: it is responsible for coordinating the network’s operation, monitoring its activity, and collecting the
sensor data itself. Yet it often gets short
shrift, perhaps because of the false impression the base station code will be
easy to write or that it is uninteresting.
The vast majority of our development
efforts focused on the sensor node software, which is fairly complex and uses
nonstandard programming languages
and tools. The base station, in our case
a laptop located at the volcano observatory, was mostly an afterthought:
some slapped-together Perl scripts and
a monolithic Java program acting as a
combined network controller, data log-
figure 3a. original data: bad timing, unnormalized signals.
1.2e+07
1e+07
8e+06
6e+06
4e+06
2e+06
0
ger, monitor, and GUI. The base station
code underwent a major overhaul in the
first two days after arriving in the field,
mostly to add features (such as logging)
that we didn’t anticipate needing during our lab testing. We paid for the slapdash nature of the base station software.
One race condition in the Java code (for
which the author takes full credit) led
to an 8-hour outage, while everyone was
asleep. (We also assumed that the electricity supply at the observatory would
be fairly reliable, which turned out not
to be true.)
Our redesign for the 2007 Tungurahua deployment involved modularizing
the base station code, so that each component can fail independently. One program communicates with the network;
another acts as a GUI; another logs the
sensor data; and another runs the algorithm for scheduling downloads. Bugs
can be fixed and each of these programs
can be restarted at any time without disrupting the other programs.
–2e+06
–4e+06
1.1239e+09
1.1239e+09
1.1239e+09
1.1239e+09
1.1239e+09
1.1239e+09 1.1239e+
figure 3b. Data after cleanup.
204
213
208
206
209
207
200
201
250
203
202
205
212
210
251
214
conclusion
Scientific discovery is increasingly driven by advances in computing technology, and sensor networks are an important tool to enhance data collection in
many scientific domains. Still, there is a
gap between the stereotype of a sensor
network in the literature and what many
scientists need to obtain good field data.
Working closely with domain scientists
yields tremendous opportunities for
furthering a computer science research
agenda driven by real-world problems.
03:44: 30
03:44: 40
30:44: 50
03:45:00
03:45: 10
03:45: 30
03:45: 40
03:45: 20
time (utc)
03:45: 50
03:46:00
03:46: 10
03:46: 20
03:46: 30
References
1. Kim, s. et al. Health monitoring of civil infrastructures
using wireless sensor networks. In Proceedings of
IPSN 2007 (cambridge, ma, apr. 2007).
2. Liu, t. et al. Implementing software on resource-constrained mobile sensors: experiences with
Impala and Zebranet. In Proceedings of the Second
International Conference on Mobile Systems,
Applications, and Services (MobiSYS’04), June 2004.
3. sankarasubramaniam, y., akan, o., and akyildiz, I.
esrt: event-to-sink reliable transport in wireless
sensor networks. In Proceedings of MobiHoc’03, 2003.
4. tolle, g. et al. a macroscope in the redwoods.
In Proceedings of the Third ACM Conference on
Embedded Networked Sensor Systems (sensys 2005).
5. Werner-allen, g., Dawson-Haggerty, s., and Welsh, m.
Lance: optimizing high-resolution signal collection in
wireless sensor networks. In Proceedings of the 6th
ACM Conference on Embedded Networked Sensor
Systems (sensys’08), nov. 2008.
6. Werner-allen, g. et al. fidelity and yield in a volcano
monitoring sensor network. In Proceedings of the 7th
USENIX Symposium on Operating Systems Design
and Implementation (osDI 2006), nov. 2006.
Matt Welsh ( mdw@eecs.harvard.edu) is a professor of
computer science at Harvard university in cambridge, ma.
copyright held by author.