310 likes | 522 Views
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
E N D
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 Sense-only – Nodes gather data for offline analysis at a later time. Figure 3. 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. Thesystems 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.
KariosLocalization Code Sample Figure 7.
DsWare Explosion Detection Figure 8.
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, OmprakashGnawali, 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 GianPietroPicco. "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 GianPietroPicco. p.4. 3 – Mottola, Luca, and GianPietroPicco. p.4. 4 – Mottola, Luca, and GianPietroPicco. p.6. 5 – Gummadi, Ramakrishna, OmprakashGnawali, and Ramesh Govindan. p.6. 6 – Gummadi, Ramakrishna, OmprakashGnawali, and Ramesh Govindan. p.7. 7 – Gummadi, Ramakrishna, OmprakashGnawali, and Ramesh Govindan. p.9. 8 – Mottola, Luca, and GianPietroPicco. p.27.