Sensor Networks & TinyDB Author: Roman Kolcun Supervisor: Julie A. McCann
Index Sensor Motes Sensor Networks Real world deployments TinyDB 2
What a Sensor Can Sense? 3
What a Sensor Can Sense? Temperature Heart Rate Humidity Motion Acceleration Toxins Noise Nutrients Light Glucose Level Magnetic Field Oxygen Level Gravity Hormones Pressure Proteins 4
Sensor Mote CPU ? 5
Sensor Mote CPU 4 MHz 8 bit ATmega 128L, RISC Memory ? 6
Sensor Mote CPU 4 MHz 8 bit ATmega 128L, RISC Memory 128KB Program Flash Memory 4KB RAM 512KB Flash – serial access, max. 10-100k rewritten Wireless ? 7
Sensor Mote CPU 4 MHz 8 bit ATmega 128L, RISC Memory 128KB Program Flash Mem. 4KB RAM 512KB Flash – serial access, max. 10-100k rewritten Wireless IEEE 802.15.4 - 2.4GHz 250kbps 8 70 – 100m outdoor, 20 – 30m indoor
Beastie – Imperial 8k bytes Flash program memory 1k byte SRAM 512 bytes EEPROM 4MHz FM radio at 434.65MHz 10kbps maximum data rate (run at 5kbps as standard) Maximum range 500m 9
1 mm 3 Sensor Designed at Michigan University Measures pressure in an eye every 15 minutes Average Power Consumption 15 nW To charge batteries: 10 hours of artificial light 1.5 hours of sun light 10
Power Consumption Typically supplied by small batteries 1000 – 3000 mAh 1 mAh – 1 milliamp current for 1 hour Power = Watts (W) = Amps (A) * Volts (V) Energy = Joules (J) = W * time Power consumption Processor: 8mA active, <15μA sleep Radio: 19.7mA receive, 11 – 17.4mA xmit, ~20ms/packet Sensor: 1μA – 100's mA, 1μs – 1s to sample 11
Example Battery: 1000mAh How long a node can last and how much data can a node receive? 12
Example Battery: 1000mAh How long a node can last and how much data can a node receive? 1000mAh / 19.7mA = ~50.7h 50.7h = 182 741s * 250kbps = ~5.7MB in real world approx. half of it = 2.85MB 13
Example Battery: 1000mAh Sense 1 value every 30 seconds, receive 1 packet and send 1 packet. How long will battery last? 14
Example Battery: 1000mAh Sense 1 value every 30 seconds, receive 1 packet and send 1 packet. How long will battery last? 8+29*0.015+1+19.7*0.02+13*0.02 = = ~10mA/30s = ~ 0.3363 mA/s 1000mAh = 3 600 000 mAs / 0.3363 = ~124 days 15
Sensor Networks - Problems Lossy, Ad-hoc radio communication Really lossy radio communication Node / link failures Severe power constraints Asymmetric links – if I can hear you, it does not mean you can hear me Interference Hidden node problem 16
Sensor Networks 17
Sensor Networks 18
Sensor Networks - Problems Duty cycling Time synchronization Node / link failure 19
Duty Cycling epoch time … zzz … … zzz … time wake-up period 20
Real World Deployments Great Duck Island temperature relative humidity infra-red termophile 21
Real World Deployments Golden Gate Bridge vibrations temperature 22
Redwood Humidity vs. Time 36m 101 104 109 110 111 33m: 111 95 32m: 110 85 Rel Humidity (%) 30m: 109,108,107 75 65 55 20m: 106,105,104 45 35 10m: 103, 102, 101 Temperature vs. Time 33 28 23 18 13 8 7/7/03 7/7/03 7/7/03 7/7/03 7/7/03 7/8/03 7/8/03 7/8/03 7/8/03 7/8/03 7/8/03 7/9/03 7/9/03 7/9/03 7/9/03 9:40 13:11 16:43 20:15 23:46 3:18 6:50 10:21 13:53 17:25 20:56 0:28 4:00 7:31 11:03 Date 23
Imperial Deployment Mobile Node (Mule) Experiment 24
Other Deployments Monitoring Space environmental and habitat monitoring (Duck Island, Redwood Trees) precision agricultures climate control surveillance intelligent alarms 25
Other Deployments (cont.) Things structural monitoring ecophysiology condition based maintenance (plane, bridges, buildings, pipes) medical diagnostics terrain mapping 26
Other Deployments (cont.) Interactions with things and encompassing space monitoring wildlife habitats disaster management emergency response ubicomp process flow 27
Motivations for TinyDB Create an application which measures temperature. Make an average of temperatures over 15°C. 28
Motivations for TinyDB Create an application which measures temperature. Make an average of temperatures over 15°C. How would you change the application to make an average of temperatures over 20°C ? 29
Motivations for TinyDB Create an application which measures temperature. Make an average of temperatures over 15°C. How would you change the application to make an average of temperatures over 20°C ? Recode the application and manually update every node. Think about it while programming the application and let it accept commands from the basestation Use TinyDB 30
TinyDB Supports a subset of Stream SQL Whole network could be seen as ”sensor” table Query syntax: SELECT <aggregates>, <attributes> [FROM {sensors} | {buffer}] [WHERE <predicates>] [GROUP BY <expression>] [SAMPLE INTERVAL <const> | ONCE] [INTO buffer] 31 [TRIGGER ACTION <command>]
TinyDB Example: SELECT light, mag FROM sensors WHERE light > c1 AND mag > c2 SAMPLE INTERVAL 1s [FOR 3600s] 32
TinyDB E(sampling mag) » E(sampling light) Example: 1500 μJ vs 90 μJ SELECT light, mag FROM sensors In which order the predicates should be evaluated? WHERE light > c1 AND mag > c2 SAMPLE INTERVAL 1s 33
TinyDB Do we need to notify all sensors in the network? SELECT light FROM sensors WHERE node_id > 20 SAMPLE INTERVAL 10s 34
What if the Result Depends on More than One Node? 35
What if the Result Depends on More than One Node? (cont.) 36
What We Do Adjust power transmission in order to minimise interference using game theory Duty-cycling Time synchronization Mules In-network data processing (joining data & data filtering) 37
References [1] Decentralised & Volatile Self-Adaptive,Self Organising WSNs by Julie A. McCann [2] Implementation and Research Issues in Query Processing for Wireless Sensor Networks by Wei Hong & Sam Madden [3] Modelling the Golden Gate Bridge using Wireless Sensor Networks by Guilherme Rocha, Shamim Pakzad and Bin Yu [4] http://www.coa.edu/greatduckisland.htm – College of the Atlantic – Great Duck Island Project 38
Where You Can Find Us Julie A. McCann: jamm@doc.ic.ac.uk Roman Kolcun: rk1208@doc.ic.ac.uk Lab: Huxley Building, 563 39
Recommend
More recommend