+ All Categories
Home > Technology > Virtual IoT Meetup: Connecting Sensor Networks

Virtual IoT Meetup: Connecting Sensor Networks

Date post: 25-Jan-2015
Category:
Upload: matthias-kovatsch
View: 5,649 times
Download: 2 times
Share this document with a friend
Description:
Sensor networks are a fundamental building block of Internet of Things (IoT) applications, as they provide the interface to the physical world. In fact, many techniques used for resource-constrained IoT devices originated in the research area of Wireless Sensor Networks (WSNs). This talk will present the transition from research prototypes to standardized Internet protocols, give an overview how sensor networks are connected today (with a practical hands-on), and discuss a few challenges that need to be addressed in the future.
40
Matthias Kovatsch [email protected] Virtual IoT Meetup #3 Connecting Sensor Networks Tuesday, 23 Sep 2014 Virtual IoT Meetup #3 http://www.meetup.com/Virtual-IoT/
Transcript
Page 1: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 1|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Matthias Kovatsch

[email protected]

Virtual IoT Meetup #3

Connecting Sensor Networks

Tuesday, 23 Sep 2014Virtual IoT Meetup #3

http://www.meetup.com/Virtual-IoT/

Page 2: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 2|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Agenda

1. Wireless Sensor Networks

2. Introduction to 6LoWPAN

3. IPv6 & 6LoWPAN Setup

Focus on “Connecting”

Pointers for Sensor Nodes

4. Outlook

Questions?

#virtualiot

Hangouts Q&A

Connecting Sensor Networks

Page 3: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 3|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Smart Dust in 2000

the advent of Wireless Sensor Networks

Page 4: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 4|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

e.g., TinyDB

Focus on resource constraints

Sink nodes and custom software

Wireless Sensor Networks

Mica2 (AVR)

Tmote Sky / TelosB (MSP430)

BTnode (AVR + Bluetooth)

Page 5: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 5|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

First Proposals for Low-power IPv4 in 2003

A. Dunkels. Full TCP/IP for 8-bit Architectures.

In Proceedings MobiSys, San Francisco, CA, USA, 2003

Z. Shelby, P. Mahonen, J. Riihijarvi, O. Raivio, and P.

Huuskonen. NanoIP: The Zen of Embedded Networking.

In Proceedings ICC, Anchorage, AK, USA, 2003

http://contiki-os.org

Page 6: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 6|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

6LoWPAN for Sensor Networks

Page 7: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 7|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Low-power IP Stack

Layer Protocol

Application CoAP

Transport UDP

Network IPv6

Adaption 6LoWPAN

MAC CSMA

Radio Duty Cycling IEEE 802.15.4e / ContikiMAC

Physical IEEE 802.15.4

Page 8: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 8|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Low-power IP Stack

Layer Protocol

Application CoAP

Transport UDP

Network IPv6 ( + RPL routing protocol )

Adaption 6LoWPAN

MAC CSMA

Radio Duty Cycling IEEE 802.15.4e / ContikiMAC

Physical IEEE 802.15.4

Page 9: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 9|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Low-power IP Stack

Layer Protocol

Application CoAP

Transport UDP

Network IPv6

Adaption 6LoWPAN

MAC CSMA

Radio Duty Cycling IEEE 802.15.4e / ContikiMAC

Physical IEEE 802.15.4

Page 10: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 10|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Low-power IP Stack

Layer Protocol

Application CoAP

Transport UDP

Network IPv6

Adaption 6LoWPAN

MAC CSMA

Radio Duty Cycling IEEE 802.15.4e / ContikiMAC

Physical IEEE 802.15.4

Page 11: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 11|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Edge Networks

LoWPAN Local

server

Border Router

6LoWPAN adaption

PC

Backbone (LAN)

Internet

ServerRouter

Page 12: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 12|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Number of fixed bits in prefix

8 bytes prefix 8 bytes interface identifier

IPv6 Addresses

128 bits = 16 bytes

xxxx:xxxx:xxxx:xxxx:yyyy:yyyy:yyyy:yyyy /zz

Page 13: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 13|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Leading zeros can be omitted

Zero blocks can be omitted with “::”

xxxx:xxx : : / zz

IPv6 Addresses

Localhost

::1/128

Default route

::/0

Link-local

FE80::/64

Multicast

FF00::/8

Page 14: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 14|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

… prefixes

IPv6 Addressing

LoWPAN

ISP

Router

Border Router

Backbone (LAN)

2001:470:CAFE::/48

2001:470:CAFE:10::/64

2001:470:CAFE::/64

EUI-64 = MAC address

212:7400:DEAD:BEEF2001:470:CAFE:10:

2001:470:CAFE::1

2001:470:CAFE::10

Mote

Laptop

Page 15: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 15|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Nice ISP

Check athttp://www.ipv6forum.com/ipv6_

enabled/isp/approval_list.php

IPv6 tunnel

For instance

Register at

https://tunnelbroker.net/

Your Own IPv6 Prefix

Page 16: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 16|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Page 17: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 17|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Your WAN IP

Choose something close

Page 18: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 18|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Page 19: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 19|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Firmware with good IPv6 support

Pick one that supports your model

Find lots of support online (flash router, DD-WRT, Tomato, …)

For instance

Tomato by Shibby (continuation of TomatoUSB)

http://tomato.groov.pl/

Good old WRT54GL has not enough flash

for good IPv6 builds

Model list

http://tomato.groov.pl/?page_id=69

Router

Page 20: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 20|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Page 21: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 21|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Linksys E900

Cheap ($ ~30)

Netgear WRN3500L

More features ($ ~50)

Router Hardware

Page 22: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 22|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Perform a hard reset

with the “30/30/30”

Use the Web interface

to upload new binary

Search for help

firmware name + router model

Flash Firmware

Page 23: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 23|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Routed /48 (e.g., 2001:470:cafe::)

/48 + ‘1’ (e.g., 2001:470:cafe::1)

Server IPv4 Address

Client IPv6 Address

Page 24: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 24|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

ip -6 r add 2001:470:cafe:10::/64 via 2001:470:cafe::10

6LoWPAN prefix Gateway with

border router

Page 25: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 25|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

ip6tables -A FORWARD -p udp --dport 5683–d 2001:470:cafe:10:<mote EUI-64> -j ACCEPT

See ip6tables manual for more options

(e.g., source filtering)

Page 26: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 26|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Raspberry Pi

Shortcut: Use a Linux PC (avoids cross-compiling)

Beagle Bone (Black)

Gateway

Page 27: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 27|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

SSH or direct connection

Add static IPv6 address for routing (see slide 24)

sudo ip -6 a add 2001:470:cafe::10 dev eth0

Enable routing in the kernel

echo "1" > /proc/sys/net/ipv6/conf/all/forwarding

Install the border router

Gateway Configuration

Page 28: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 28|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Tmote Sky / TelosB(old, hard to get)

Search “MTM-CM5000-MSP”

Zolertia Z1

http://zolertia.com/

OpenMote(up-to-date, growing support)

http://www.openmote.com/

Econotag IIhttp://redwirellc.com/

Border Router Hardware

Page 29: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 29|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Get Contiki

git clone https://github.com/contiki-os/contiki

Relevant projects are in contiki/examples/ipv6/

Seek further help online

https://github.com/contiki-os/contiki/wiki

http://www.openmote.com/getting-started-with-contiki-and-openmote/

Check the 6lbr project by Cetic

http://cetic.github.io/6lbr/

Contiki OS

Page 30: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 30|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Old RPL border router

rpl-border-router running on the mote

make TARGET=sky border-router.upload

tunslip6 (in contiki/tools/) running on the gateway

make tunslip6 (compile on gateway or with cross-compiler)

New native border router (recommended)

slip-radio running on the mote

make TARGET=sky slip-radio.upload

native-border-router running on the gateway

make border-router (compile on gateway or with cross-compiler)

Projects in contiki/examples/ipv6/

Page 31: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 31|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

sudo ./{tunslip6|border-router.native} 2001:470:cafe:10::1/64

Opens tun0 interface

Adds route into 6LoWPAN subnet

Starting the Border Router

$ sudo ./border-router.native 2001:470:cafe:10::1/64Contiki 3.x started with IPV6, RPLRime started with address 1.2.3.4.5.6.7.8MAC nullmac RDC br-rdc NETWORK sicslowpanTentative link-local IPv6 address fe80:0000:0000:0000:0302:0304:0506:0708RPL-Border router started********SLIP started on ``/dev/ttyUSB0''opened tun device ``/dev/tun0''ifconfig tun0 inet `hostname` upifconfig tun0 add 2001:470:cafe:10::1/64ifconfig tun0

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.1.1 P-t-P:127.0.1.1 Mask:255.255.255.255inet6 addr: 2001:470:cafe:10::1/64 Scope:Global

[…]

Setting prefix 2001:470:cafe:10::1created a new RPL dagServer IPv6 addresses:0x806a6b8: =>2001:470:cafe:10:212:7400:da0:d7480x806a6d8: =>fe80::212:7400:da0:d748

Border router address

Page 32: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 32|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Page 33: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 33|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Use Erbium (Er)

CoAP in Contiki

Examples in contiki/examples/er-rest-example/ make TARGET=sky er-example-server.upload MOTE=2

Sensor Nodes (“Motes”)

Avoid reprogramming

the border-router/slip-radio

Page 34: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 34|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Mote address

Page 35: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 35|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

https://addons.mozilla.org/en-US/firefox/addon/copper-270430/

Page 36: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 36|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Build Applications with CoAP

Web Sensor Nodes

Constrained Application Protocol (CoAP)

Page 37: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 37|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Californium Tutorial: Hands-on with CoAP

http://goo.gl/LLQ03whttp://eclipse.org/californium

Page 38: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 38|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Current Efforts

Page 39: Virtual IoT Meetup: Connecting Sensor Networks

Connecting Sensor Networks 39|Matthias Kovatsch

http://people.inf.ethz.ch/mkovatsc

Interoperable, scalable security

Elliptic curve cryptography

Public key cryptography?

Crypto hardware acceleration

DTLS Profiles (DICE)

Authentication/Authorization in Constrained Environments (ACE)

Secure multicast?

Next Big Step for Low-power IP

Page 40: Virtual IoT Meetup: Connecting Sensor Networks

Questions?

Matthias Kovatsch https://github.com/mkovatsc/

[email protected] http://people.inf.ethz.ch/mkovatsc/


Recommended