Wireless Sensor Networks - University of Wisconsin

Wireless Sensor Networks:
Programing Reactions
Nicholas J. Larson
Software Engineering
University of Wisconsin-Platteville
What is a Wireless Sensor Network
Where WSNs are used
Brief history of WSNs
What a design pattern looks like
Operating systems
Development tools
Samples of code written for WSNs
Some Manufacturers
What is a Wireless Sensor Network?
Typically contain
embedded devices each
with a processing unit,
wireless communication
interface and sensors
and/or actuators
Figure 1.
Common Hardware
Chip: 16-bit Texas Instruments MSP430, Atmel
ATMega family 8 or 16 bit chip, Intel PXA or
Volitile Memory: 2KB – 512KB for run-time data
Dedicated Memory: 32KB – 128KB; Normally
equipped with external memory card
Communication: 2.4GHz ISM band; IEEE 802.15.4
compliant, 868/916 MHz band using ChipCon
1000 transcevier or Bluetooth.
Where WSNs are used.
Monitoring areas at risk for forest fires.
Ocean temperature and current data.
Monitoring wildlife.
Earthquake monitoring.
Machinery manufacturing performance
• Traffic condition monitoring
• Military surveillance and tracking
• Smart home monitoring
Brief History
• Cold War – Sound Surveillance System project used
• 1980 – Defense Advanced Research Projects Agency
used Arpanet to disperse many sensing nodes
• Late 1980 – MIT tracked helicopters using acoustic
microphones. Advanced Decision Systems created a
multi target algorithm
• Late 1980 – 1990’s – US Navy developed Cooperative
Engagement Capability which monitored airborne units
• 2000s – DARPA SensIT program
Design Pattern
L. Mottola’s and G.P. Picco’s model
Figure 2.
Figure 3.
Sense-only – Nodes
gather data for offline
analysis at a later time.
Sense-and-react – Nodes
gather data, test the
data, and react
Interaction Pattern
One-to-Many – Typically used in situations where
configuration data is need to be pushed to all nodes.
Many-to-Many – Systems using this will most likely be
ones where multiple types of readings are needed.
Typically sense-and-react systems.
Many-to-One – Used by most sense-only systems where
many sensing nodes relay all the data to a single
collection point.
Static – Once deployed, no nodes nor sinks move within
the network.
Mobil Nodes – Nodes that sense from mobile objects.
Used in wildlife monitoring.
Mobil Sinks – This is used in systems where data
collection happens opportunistically when sinks move in
range of the sensors.
Global – Data processing uses the data from the entire
Regional – Data processing only uses the data from some
limited region within the system.
Periodic – This is used on systems designed to
continuously process data. The systems gathers data from
the nodes in regular intervals.
Event-Triggered – This is carried out in two phases: i) The
detection of desired event. Data is tested against a
threshold at each node or as a whole system. ii) The
threshold is met at the node or for the whole system. The
network will start its collection and processing.
Space and Time
Figure 4.
Operating Systems
Contiki - http://www.contiki-os.org/index.html
LiteOS - http://www.liteos.net/
Mantis - http://mantisos.org/index/tiki-index.php.html
Nano-RK - http://www.nanork.org/projects/nanork/wiki
RETOS - http://retos.yonsei.ac.kr/retos.html
t-Kernal - http://www.t-engine.org/t-kernel-2-1
TinyOS - http://www.tinyos.net/
Development Tools
Abstract Regions
• Middleware software
• 3 extensions:
One-Hop Neighbor
Remote Data Access
• Many distributed algorithms for low overhead
• Loose synchrony
Karios: Node
• Logically named integer identifiers
• Exports operators like equality, ordering, type
• Provides a node_list iterator for manipulating
node sets.
Karios: One-Hop Neighbor
• get_neighbors() function returns a list of
nodes that are one-hop away from current
• Typically specified in terms of operations on
Karios: Remote Data Access
• variable@node
• Compiler respects the scoping, lifetime, and
access rules imposed by the extended
• Node synchronization: provides shared
memory abstraction
• Only nodes may write to its variables
• Eliminates need for mutual exclusion
Karios’ Programming Architecture
Figure 5.
Karios Shortest-Path Routing Tree
Code Sample
Figure 6.
Karios Localization Code Sample
Figure 7.
DsWare Explosion Detection
Figure 8.
Baronti, Paolo, et al. "Wireless sensor networks: A survey on the state of the art and
the 802.15. 4 and ZigBee standards." Computer communications 30.7 (2007):
Chong, Chee-Yee, and Srikanta P. Kumar. "Sensor networks: evolution, opportunities,
and challenges." Proceedings of the IEEE 91.8 (2003): 1247-1256.
Gummadi, Ramakrishna, Omprakash Gnawali, and Ramesh Govindan. "Macroprogramming wireless sensor networks using kairos." Distributed Computing in
Sensor Systems (2005): 466-466.
Hadim, Salem, and Nader Mohamed. "Middleware: Middleware challenges and
approaches for wireless sensor networks." Distributed Systems Online, IEEE 7.3
(2006): 1-1.
Mottola, Luca, and Gian Pietro Picco. "Programming wireless sensor networks:
Fundamental concepts and state of the art." ACM Computing Surveys (CSUR) 43.3
(2011): 19.
Perrig, Adrian, John Stankovic, and David Wagner. "Security in wireless sensor
networks." Communications of the ACM 47.6 (2004): 53-57.
1 – http://www.dei.unipd.it/~schenato/pics/SensorNetwork.jpg
2 – Mottola, Luca, and Gian Pietro Picco. p.4.
3 – Mottola, Luca, and Gian Pietro Picco. p.4.
4 – Mottola, Luca, and Gian Pietro Picco. p.6.
5 – Gummadi, Ramakrishna, Omprakash Gnawali, and Ramesh
Govindan. p.6.
6 – Gummadi, Ramakrishna, Omprakash Gnawali, and Ramesh
Govindan. p.7.
7 – Gummadi, Ramakrishna, Omprakash Gnawali, and Ramesh
Govindan. p.9.
8 – Mottola, Luca, and Gian Pietro Picco. p.27.