Arduino e l Internet delle cose



Похожие документы
Caratteristiche HW. Clock Speed 16 MHz

Esercitazione Controllo di un motore DC mediante Arduino YUN

Esercitazione Monitoraggio temperatura via WEB mediante Arduino YUN

Elettronica dei Sistemi Programmabili

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Universal Gateway for ALL

Dispensa di Informatica I.1

RETI E SISTEMI INFORMATIVI

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Vari tipi di computer

Architettura hardware

Centrale Telefonica IP Ibrida Urania 16 IP. Finalmente la centrale IP alla portata di tutti!

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Architettura dei computer

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

Gaia Corbetta Convegno 3E - ATI/ANIMP 11 luglio 2013, Milano

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.

HARDWARE. Relazione di Informatica

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Telecontrollo. Come poter controllare in remoto l efficienza del vostro impianto

Progetto di un sistema di controllo per un robot basato su CAN

Tecnologia ed Evoluzione

Cosa è Tower. Sistema di autenticazione per il controllo degli accessi a reti wireless. struttura scalabile. permette la nomadicità degli utenti

Indruduzione... 1 Il modulo Bluetooth HC Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android...

Informatica - A.A. 2010/11

Software Open Source per sistemi embedded

Il computer: primi elementi

Sistemi Elettronici #1. Sistemi Elettronici. Definizioni e concetti generali. Sistemi Elettronici Laurea Triennale in Elettronica A.A.

POWEREDGE T20 E3-1225V3/4G(1X4)/1TB/290W/ 1YNBD

Esame di INFORMATICA

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Arduino UNO. Single board microcontroller

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Gestione di una UART SOFTWARE.

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Architettura del calcolatore

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Lezione E5. Sistemi embedded e real-time

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

RoboTESTER Wall-E, ATE a letto d aghi per Test In-Circuit e Funzionale. 1/6

Sistemi avanzati di gestione dei Sistemi Informativi

Il Sistema Operativo (1)

I componenti di un Sistema di elaborazione. CPU (central process unit)

Gerarchia delle memorie

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Approccio stratificato

Architettura di un calcolatore

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

VMware. Gestione dello shutdown con UPS MetaSystem

Interfaccia EMIC per contatori

Sistemi Operativi. Conclusioni e nuove frontiere

FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI INFORMATICA E SISTEMISTICA. Presentazione

Hardware delle reti LAN

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Dipartimento di Scienze Applicate

Introduzione al sistema operativo Il file system: file, directory,...

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

introduzione I MICROCONTROLLORI

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Architettura di un sistema operativo

Il Software. Il software del PC. Il BIOS

Fondamenti di Informatica INFORMATICA ED UNITA DI MISURA

Sistemi Domotici Parte 3 I Mezzi Trasmissivi

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

LE RETI: LIVELLO FISICO

TERMINALE PER IL CONTROLLO ACCESSI 2745

IT Cloud Service. Semplice - accessibile - sicuro - economico

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Videosorveglianza con RaspberryPi

Il Microcontrollore. Microcontrollore PIC

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Internet e il World Wide Web. Informatica di Base A -- Rossano Gaeta 1

Comunicazione tra Processi

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

Corso di Informatica

Centro Iniziative Sociali Municipio III

Sistemi embedded un dispositivo incapsulato progettato per una determinata applicazione

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

IL CLOUD COMPUTING DALLE PMI ALLE ENTERPRISE. Salvatore Giannetto Presidente Salvix S.r.l

Compatto, espandibile e potente. Il controller che cresce con l applicazione.

CONTROLLO NUMERICO Z32

Microelettronica Corso di progettazione su SoC ARM:

Canali e Core Banking

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Транскрипт:

Arduino e l Internet delle cose Cristian Maglie (c.maglie@arduino.cc) 1

Notizie sul relatore - Programmatore Freelance - Entusiasta utilizzatore di tecnologie Open - Collabora con Arduino da oltre 5 anni 2

Cos è Arduino - È un framework opensource per la prototipazione rapida e l apprendimento veloce dei principi fondamentali dell elettronica e della programmazione 3

Filosofia di Arduino - Rendere l elettronica affrontabile senza il bisogno di avere conoscenze specifiche - Semplificare, focalizzare sull obiettivo eliminando il superfluo - Stimolare la voglia di metterci le mani dentro 4

Di cosa parleremo - Internet-Of-Things - Modalità di connessione a Internet - Arduino Yún 5

Internet-Of-Things 6

Internet-Of-Things - Utilizzare la rete Internet per far comunicare tra di loro oggetti - Anche oggetti non strettamente elettronici possono essere collegati o attuati tramite Internet 7

Internet-Of-Things - Ponte tra il mondo reale e virtuale - Potenzialità cloud offerte dal Web (>=2.0) su oggetti che ne sono esclusi per natura 9

Mettersi in rete! Ovvero: come ti faccio accedere a Internet il mio microcontroller? MCU? Internet 10

1. Co-processore - Soluzione adatta per MCU di fascia bassa (core a 8 bit) - Semplice e veloce per progetti non complessi MCU Network Unit Internet 11

1. Co-processore - Arduino Ethernet Shield utilizza il coprocessore Wiznet W5100 - Layer di rete TCP/IP implementato in hardware nel chip - Layer applicativo a carico della MCU MCU W5100 Internet 12

2. MCU con Ethernet - Si può trovare nelle MCU di fascia media (es. processori Cortex-M3 in su) - Layer di rete TCP/IP software nel firmware - Strato software consistente, ma permette ancora di svolgere compiti realtime MCU ETH Internet 13

Problemi con le MCU - Implementazione della crittografia (HTTPS) non banale - Crescente richiesta di utilizzo di API Web complesse (OAuth, OpenID, etc.) - Microcontroller non adatti a gestire questo tipo di applicazioni MCU 15

3. Embedded PC/SoC - SoC con processori di fascia alta - Chipset dedicati per il networking - Software implementa tutti i livelli di rete e applicativi - Kernel multithread - Spesso utilizzato GNU/Linux per il vasto supporto e applicazioni disponibili 16

3. Embedded PC/SoC SoC CPU Network Chipset Internet 17

Problemi - Anche se sono disponibili GPIO, la presenza del kernel non permette controlli realtime - Mancano (o sono molto complesse da utilizzare) le interfacce elettriche tipiche dei dispositivi elettronici (SPI, I2C...) 18

4. Ibrido Soc + MCU - Modulo SoC affiancato da un microcontroller - Il micro si interfaccia ai dispositivi elettronici e svolge i task realtime - Il modulo SoC ha il ruolo di supervisione e si occupa della comunicazione internet 19

4. Ibrido Soc + MCU CPU Network Chipset Internet MCU LEDs / Lights Relais Motors Pot. / Sliders Sensors 20

Riassumendo... Modalità Pro Contro Co-processore MCU con Eth integrato SoC Ibrido SoC + MCU -Firmware leggero -Facilità di integrazione -Elevata integrazione -Bassa latenza di rete -Sistema Operativo -Disponibiltà di applicativi -Tutti i PRO dei PC Embed -Collegamento con dispositivi elettronici e controllo realtime -Applicazioni Web2.0 medio/ complesse non possibili -Firmware complesso -Implementazione complessa -Difficile utilizzo di dispositivi elettronici -Controllo realtime impossibile (o molto difficile) -Comunicazione tra CPU e MCU -Bassa latenza di rete non facilmente ottenibile 21

))) Ok ma... il WiFi? 22

WiFi (802.11b/g/n) MCU Network Unit Internet MCU ETH Internet CPU Network Chipset Internet 23

WiFi (802.11b/g/n) MCU WiFi Unit ) ) ) Internet MCU WiFi ) ) ) Internet CPU WiFi Chipset ) ) ) Internet 23

WiFi (802.11b/g/n) - Layer di crittazione (WEP/WPA) - Disturbi elettromagnetici EMF (in particolare se il dispositivo andrà certificato) - Moduli WiFi, esistono ma costosi - Sicurezza nella prima configurazione 24

Arduino Yún 25

Arduino Yún - Yún significa nuvola in Cinese - È un sistema ibrido - GNU/Linux embedded basato sul SoC MIPS Atheros AR9331 - S.O. Linino (derivato da OpenWRT) - Microcontroller ATMega32u4 (lo stesso usato nell Arduino Leonardo) 26

Arduino Yún AR9331 WiFi ))) CPU ETH UART USB UART 32U4 USB GPIO 27

Caratteristiche AR9331 Mega32U4 Flash RAM CPU Clock USB WiFi OS 16MB 64MB DDR 400MHz Yes (Host) Yes Linino (OpenWRT) 32KB 2.5KB SRAM 16MHz Yes (Device) No No 28

Design della Yún - La scheda viene programmata tramite l IDE di Arduino - La scrittura degli sketch è molto simile alle altre schede Arduino - La comunicazione di rete viene delegata al lato MIPS - È possibile utilizzare la scheda esclusivamente tramite WiFi 29

Upload via WiFi Arduino Serial Uploader IDE 30

Upload via WiFi Arduino Serial Discovery Uploader IDE Network Discovery Uploader 30

Upload via WiFi Discovery Arduino IDE Serial Uploader Discovery Network Uploader 30

Upload via WiFi - Selezione della porta indipendente dalla modalità (seriale USB / rete) - Autodiscovery tramite zeroconf - Upload degli sketch via SCP - Riprogrammazione del chip tramite avrdude 31

Arduino Yún AR9331 WiFi ))) CPU ETH UART GPIO USB UART ISP 32U4 USB GPIO 32

Configurazione rete - Scheda in modalità Access Point alla prima accensione - Configurazione tramite WebPanel semplificato - Configurazioni avanzate disponibili tramite WebPanel di OpenWRT (luci) o da linea di comando 33

Bridge - Composta da due parti che comunicano: una libreria Arduino e un demone linux - Si occupa dello scambio di messaggi tra 32U4 e Atheros - I messaggi sono numerati e verificati da un CRC (no ripetizioni o messaggi persi) - Ad ogni messaggio inviato corrisponde un messaggio di risposta (anche vuoto) 34

Key/Value storage - È un storage di coppie chiave-valore che risiede lato linux - Può essere letto e modificato dal 32U4 - Può essere letto e modificato tramite chiamate REST 35

Key/Value storage REST endpoint: http://.../data/set/key/value http://.../data/get/key K/V Bridge API: Bridge.put( KEY, VALUE ); String value = Bridge.get( KEY ); 36

Process - Permette di eseguire processi linux dal 32U4 - Si possono lanciare processi standalone o usare linee di comando della shell - Cattura dello standard input/output 37

Process Process myproc; myproc.begin( curl ); myproc.addparamater( http://arduino.cc ); myproc.runasynchronously(); myproc.read(); // read std output myproc.write(... ) // write std input myproc.running(); int res = myproc.exitvalue(); 38

Message - È una coda di stringhe di bytes (messaggi) - È possibile inviare o leggere messaggi dalla coda dal 32U4 - È possibile inviare o leggere messaggi dalla coda tramite chiamate REST 39

Message Mailbox Queue write read REST endpoint: http://.../message/send/turn_on_led Bridge API: Mailbox.writeMessage( TURN_ON_LED ); String msg = Mailbox.readMessage(); int len = Mailbox.messageAvailable(); 40

3rd party API - Utilizzando Keystore, Message e Process è possibile costruire complesse catene di processing - È possibile interfacciarsi alle API dei servizi web più famosi utilizzando linguaggi di scripting o client linux dove già disponibili 41

3rd party API Twitter client Facebook client Linked-in client 42

Temboo - È un sito che offre un servizio cloud per accedere a API di terze parti - Libreria Arduino per accedere al servizio sviluppata in collaborazione con Temboo - Tutti i dettagli per interfacciarsi a API esterne sono già implementati da Temboo 43

Temboo Twitter client Facebook client Linked-in client 44

Temboo Temboo client 45

Q&A 46

Grazie! 47