Wireless Sensor Networks - University of Wisconsin

advertisement
Wireless Sensor Networks:
Programing Reactions
Nicholas J. Larson
Software Engineering
University of Wisconsin-Platteville
larsonn@uwplatt.edu
Overview
•
•
•
•
•
•
•
•
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
ARM920T
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
evaluations
• Traffic condition monitoring
• Military surveillance and tracking
• Smart home monitoring
Brief History
• Cold War – Sound Surveillance System project used
hydrophones
• 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.
Goal
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
appropriately.
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.
Mobility
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.
Space
Global – Data processing uses the data from the entire
network
Regional – Data processing only uses the data from some
limited region within the system.
Time
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
•
•
•
•
•
•
•
•
•
•
•
•
Mate
Magnet
Cougar
SINA
DsWare
TinyDB
Impala
Milan
Mires
EnviroTrack
Abstract Regions
Karios
Karios
• Middleware software
• 3 extensions:
Node
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
testing
• 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
node.
• Typically specified in terms of operations on
neighbors.
Karios: Remote Data Access
• variable@node
• Compiler respects the scoping, lifetime, and
access rules imposed by the extended
language.
• 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.
Manufacturers
Refrences
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):
1655-1695.
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.
Figures
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.
Download