Free Software tools for the Internet of things .fr

Jul 11, 2011 - ... Network Neutrality? ○ Will my ISP let me control *my* house as *I* want? ... Java (actually, a small subset of it) or other lang. ○ LeJOS (MPL).
487KB taille 2 téléchargements 386 vues
Free Software tools for the Internet of things

François Revol [email protected]

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

1

Goals: Ambiant Intelligence ● ●

Harvest physical data Report to back-office servers



Take decisions



Make physical actions



Social interactions



Augmented reality



Intelligent Cars



Building automation ●



Energy efficiency ●



2011-07-11

Smart Building Smart Grid



FLOSS tools for Internet of Things - RMLL 2011

2

Sensor Nodes & Smart Objects ●

Small embedded system - "motes" ●

μController (8/16/32bits) –



TI MSP430, AVR, PIC… ARM

Network access – – –

Ethernet IEEE 802.15.4 Power Line Communication



Sensors and actuators



Power source (battery / mains / energy harvesting)

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

3

Proprietary protocols ●

CAN, LONWorks…



Very specialized ●

Automotive, building automation, heating control…



Require proprietary (and expensive) software



Interoperability requires protocol gateways ●



Increases complexity, no 100% semantic mapping

Never really took off

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

4

Internet of Things ●

Interconnection of Smart Objects through open protocols ●

With or without publically accessible address



IPv6 \o/



Foster interoperability



Limits vendor lock-in –



Second source easier to find for replacement

No complex protocol gateways

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

5

Ethical Issues ●

Smartphones ●



Electrical counters (Linky…) ●



Who owns the consomption data that *I* produced?

What about security? ●



Location (http://pleaserobme.com)

Crypto requires lots of cpu cycles (hardware accel)

What about Network Neutrality? ●

Will my ISP let me control *my* house as *I* want?

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

6

It's coming anyway ●

So better make it Open Source / Free Software



Most University projects use or create ●

Published or Open Hardware



Free Software, or software that could be opened



Several FOSS projects about Smart Grid



OSAmI ●

ITEA2 European Project



OpenSource for Ambiant Intelligence

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

7

Hardware: Arduino ●

cf. earlier today http://2011.rmll.info/Arduino :-p



Hardware CC-by-SA ; Software LGPL



http://www.arduino.cc/



ATmega328P 16MHz ●

32KB Flash, 2KB RAM



Other models



Many "shields" (exp. boards) ●

Ethernet, LoL…

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

8

Hardware: Wismote ●

Hardware: CC-by-SA-NC ●

(hoping to remove -NC)



Software: MIT (Contiki), EPL (Eclipse)



http://wismote.org/



MSP430F5x ●

16kB RAM, 256kB Flash



TI CC2520 radio



Made in France :-) 2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

9

Protocols ●

Billions of devices... IPv6!



6LoWPAN (IPv6 over IEEE 802.15.4) ●

RoLL/RPL routing protocol



UDP, TCP



Application protocols ●

HTTP, REST, SOAP...



CoAP (Constrained Application Protocol) – –

Binary HTTP with resource semantics IETF draft

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

10

6LoWPAN & RPL ●

Low Power and Lossy Networks (LLNs) ●



Very low packet delivery ratio !!

6LoWPAN ●

IPv6 over IEEE 802.15.4 –





Header compression, address prefixes

RFC 4944

RPL ●

Routing Protocol for LLNs



IETF draft (March 2011)

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

11

Virtual Machines ●

Java (actually, a small subset of it) or other lang



LeJOS (MPL) ●



Threads, arrays, synchronization, java.lang.String...

Darjeeling ((L)GPL) ●

Threads, dynamic loading, java.lang.String...



TakaTuka (GPLv3)



Many others

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

12

Operating Systems ●



TinyOS ●

Component based



Written in NesC



IP stack



RTEMS



...

Smews ● ●



http://smews.gforge.inria.fr Specialized in web servers CeCILL Licence

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

13

Operating System: Contiki ●

http://www.sics.se/contiki/



BSD Licence



Drives the Internet of Things revolution



Event driven - protothreads



Many supported plaforms: C64, MSP430, Arduino...



Full IPv6 stack (uIPv6)



HTTP daemon, REST, CoAP, JSON



EMMA (GPLv3) builds on Contiki with Node.js 2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

14

Compilers ●



Chip vendors mostly publish proprietary compilers But alternatives exist ●

GCC (GNU Compiler Collection) – – –



arm-unknown-gcc mspgcc avrgcc

SDCC (Small Device C Compiler)

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

15

Simulations ●

MSPSim (MSP430)



Cooja (uses MSPSim) ●

simulates a whole network



WSim (MSP430)



WSNet (uses WSim) ●



Simulates a whole network

QEMU (ARM)

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

16

Use case: Flukso ●

http://www.flukso.net/



Web-based community metering



Monitor water & electricity consumption



Flukso box





Atheros AR2317



ATmega 128 sensor board

Presented at FOSDEM 2010 & 2011 2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

17

References ●

Interconnecting Smart Objects with IP: The Next Internet (Vasseur/Dunkels)



IETF RFCs/drafts



Websites

2011-07-11

FLOSS tools for Internet of Things - RMLL 2011

18