Wireless Sensor Networks: Programing Reactions Nicholas J. Larson Software Engineering University of Wisconsin-Platteville firstname.lastname@example.org 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.