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
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.
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
Manufacturers
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.