26
Wireless Sensor Networks: Programing Reactions Nicholas J. Larson Software Engineering University of Wisconsin-Platteville [email protected]

Wireless Sensor Networks: Programing Reactions Nicholas J. Larson Software Engineering University of Wisconsin-Platteville [email protected]

Embed Size (px)

Citation preview

Wireless Sensor Networks: Programing Reactions

Nicholas J. LarsonSoftware Engineering

University of [email protected]

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 ARM920TVolitile Memory: 2KB – 512KB for run-time dataDedicated Memory: 32KB – 128KB; Normally equipped with external memory cardCommunication: 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

Sense-only – Nodes gather data for offline analysis at a later time.

Sense-and-react – Nodes gather data, test the data, and react appropriately.

Figure 3.

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/

• Mate• Magnet• Cougar• SINA• DsWare• TinyDB• Impala• Milan• Mires• EnviroTrack• Abstract Regions• Karios

Development Tools

Karios

• Middleware software• 3 extensions:

NodeOne-Hop NeighborRemote 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.

RefrencesBaronti, 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. "Macro-programming 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.

Figures1 – http://www.dei.unipd.it/~schenato/pics/SensorNetwork.jpg2 – 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.