SlideShare a Scribd company logo
1 of 40
Template designed by
Introduzione a Netduino
Pierpaolo Paris
pierpaolo.paris@gmail.com
www.pierpaoloparis.it
Template designed by
Template designed by
brought to you by
Template designed by
Programmatore in .NET.
Laureato in Ingegneria Informatica
Appassionato al connubio tra elettronica e informatica
Attualmente lavoro per Proge-Software S.r.L.
chi sono
Template designed by
Cos’è Netduino
Hardware
Programmazione
Netduino & Internet of Things
agenda
Template designed by
Cos’è Netduino
Una scheda elettronica di piccole dimensioni
Dotata di microcontrollore e circuiteria di contorno
Utile per creare dei prototipi per scopi hobbistici e didattici
Ne esistono varie versioni, ognuna con caratteristiche
hardware (e quindi prezzo) differenti
Template designed by
Hardware
Netduino 2
Microcontrollore STMicro a 32 bit
Processore Cortex-M3 a 120 MHz
192 KB di spazio utilizzabile per il programma
60 KB di RAM
Template designed by
Hardware
Netduino Plus 2
Microcontrollore STMicro a 32 bit
Processore Cortex-M4 a 168 MHz
384 KB di spazio utilizzabile per il programma
100 KB di RAM
Template designed by
Hardware
Netduino Go
Microcontrollore STMicro a 32 bit
Processore Cortex-M4 a 168 MHz
384 KB di spazio utilizzabile per il programma
100 KB di RAM
8 porte GoBus
I/O addizionale con moduli di espansione
Template designed by
Hardware
Moduli per Netduino Go
Led RGB
Potenziometro
Shield base
Modulo per acquisizione dati
Display touch
Lista completa su http://wiki.netduino.com/List-of-all-GO-Modules.ashx
Template designed by
Da «Structured computer organization», di Andrew S.
Tanenbaum:
“…programmers had to “squeeze” their programs to fit in
small amount of memory”
Hardware
Template designed by
……quindi?
Cosa ci facciamo con tutti questi gingilli?
Semplificando molto la storia:
Montiamo il nostro circuito
Leggiamo il valore da alcuni sensori
Sulla base del valore letto facciamo qualcosa
• accendiamo una lucina
• azioniamo un motore
• apriamo un rubinetto
• mandiamo i nostri dati in giro per internet
• ……
Template designed by
Devo essere un mago dell’elettronica?
Proprio un mago no, ma qualche conoscenza di base è
fondamentale
Concetti come tensione, corrente, potenza, massa devono essere chiari
Se il circuito non è chiuso non è un circuito, non funzionerà mai
Se applico una tensione troppo alta a diodi, LED, transistor li rompo
Un qualunque libro di elettronica di base (anche del liceo) va
più che bene
Template designed by
Come sviluppo su Netduino?
Abbiamo costruito il circuito che salverà il mondo. E ora?
Dobbiamo scrivere un programma per pilotarlo
Abbiamo bisogno di:
Una qualunque versione di Visual Studio 2010 o 2012
• Anche la Express va benissimo
Il .NET Micro Framework
Netduino SDK
Template designed by
Come sviluppo su Netduino?
Una volta installato Visual Studio, il .NET MF e l’SDK
andiamo a creare un nuovo progetto
Abbiamo una serie di template già pronti, a seconda di
quello che vogliamo fare
Si programma in C#, anche se in versione «ridotta»
http://msdn.microsoft.com/en-us/library/ee435793.aspx
demo
Blinking led
Template designed by
Abbiamo acceso e spento ripetutamente un LED
Attendere 1 secondo per continuare a eseguire il programma
non è il massimo
Mentre attendiamo di accendere o spegnere il LED
potremmo avere la necessità di fare altro
Netduino eccelle in responsività delle applicazioni, ma sta a
noi fare in modo che questo accada
Entusiasmante, no?
Template designed by
Su Netduino possiamo usare i thread
In breve: suddividiamo il nostro programma in segmenti più o
meno indipendenti
I segmenti vengono eseguiti in maniera concorrente (fin
quando possibile)
La trattazione dei thread esula dagli scopi di questo speech
Thread
Template designed by
Cosa ci possiamo fare?
L’unico limite è la nostra fantasia
……e la sensatezza delle idee
Per farsi un’idea delle potenzialità di questo strumento
potete fare riferimento a queste pagine:
http://netduino.com/projects/
http://forums.netduino.com/index.php?/forum/15-project-
showcase/
demo
Alcol test
Template designed by
Internet of Things
Si fa un gran parlare di Internet of Things, ma cos’è
esattamente?
Template designed by
Estensione di internet ai dispositivi, di qualunque genere
Sensori, ma anche semafori, frigoriferi, lavatrici…..
I dispositivi comunicano i propri dati all’esterno, e usano dati
aggregati provenienti da altri dispositivi
I dispositivi finora passivi diventano attivi
Big data + smart energy = love
Internet of Things
Template designed by
Netduino & IoT
La Netduino Plus 2 ha una porta Ethernet
Possiamo collegarla ad una rete
……quindi anche ad Internet
Collegando la scheda ad Internet possiamo dare il nostro
piccolo contributo alla IoT
Come? In tanti modi, per esempio servendosi di Xively
Template designed by
Xively
E’ un PaaS
Offre un servizio di database online
Possiamo inviargli i dati provenienti dai nostri dispositivi e
costruire applicazioni basate su questi dati
Possiamo monitorare i dati online, e se vogliamo può farlo
chiunque
Template designed by
La nostra azienda ci tiene molto a far sapere al mondo la
qualità (temperatura, umidità, silenzio, illuminazione) dei
propri ambienti……
….oppure vuole far sapere al mondo che è attenta al
risparmio energetico, e che di notte le luci sono tutte spente
Xively ci permette di fare tutto questo
Xively nel mondo reale
Template designed by
Xively
……e non finisce qui
Embedding di grafici e widget in siti web
Analisi dei dati storici
Invio di alert a script di controllo
In pratica
Misurazione del consumo energetico
Raccolta dati da stazioni meteo
Building monitoring system
Template designed by
Xively
Tutto quello che dobbiamo fare è registrarci
Aggiungere un dispositivo
Prendere nota delle chiavi (id del feed e API key)
Servono a Xively per accettare i nostri dati
Una volta ottenute le chiavi possiamo dialogare con
Xively attraverso semplici richieste e risposte HTTP
Si può comunque usare anche il protocollo MQTT
Template designed by
Netduino & Xively
Vediamo come far interagire Netduino e Xively
Se i videogiochi ci hanno insegnato qualcosa, ci hanno
insegnato che il modo migliore per difenderci da
un’invasione di Zombie è tenere sempre in forma le nostre
piantine
Noi abbiamo molta cura delle nostre piante, gli diamo
sempre l’acqua di cui hanno bisogno quando ne hanno
bisogno….
….e vogliamo che il mondo lo sappia
demo
Netduino contro Zombie
Template designed by
Cloud
La strabiliante potenza di calcolo non ci permette di fare
analisi su una gran mole di dati
Non abbiamo neanche lo spazio fisico per immagazzinarli
Il cloud ci dà scalabilità e affidabilità
Possiamo creare un web service su Cloud che fa tutto
quanto
Non dobbiamo fare altro che recuperare il risultato delle
elaborazioni
Template designed by
Client o server?
Finora Netduino è stato un client di un servizio
Può rivestire anche il ruolo di server
Pensando ad un server pensiamo ad una macchina costosa,
in un datacenter da qualche parte nel mondo
Non certo ad un PC dalle basse prestazioni
Figuriamoci se pensiamo che un device con 168 Mhz di CPU
possa fare da server
Template designed by
Un server (o una batteria di server) ha tipicamente un IP
pubblico, con cui tutti possono raggiungerlo
Netduino no (firewall, NAT….tutte cose che ci mettono i
bastoni fra le ruote)
C’è comunque un modo molto semplice per trasformare
Netduino in un server
In questo modo potremmo accendere i riscaldamenti di casa
via internet, mentre siamo in viaggio
Netduino come server
Template designed by
Quello che ci serve è un relay tra Netduino e il client che
vuole inviare comandi
Questo relay ha un nome (ma non un cognome): Yaler
(www.yaler.org)
Richiede un sistema di autorizzazione simile a Xively
Mandiamo a Yaler le richieste che vogliamo mandare a
Netduino («accendi i riscaldamenti», «c’è roba scaduta in
frigo?»)
Yaler
Template designed by
Yaler
Template designed by
Connectivity as a service (accesso sicuro, via SSH, al nostro
dispositivo)
Funziona con qualunque dispositivo che fornisce un socket
TCP
Accesso tramite URL
Affidabilità e scalabilità garantite dall’infrastruttura di Yaler
Dobbiamo preoccuparci solamente della nostra applicazione
Yaler
Template designed by
Per approfondire
http://www.pierpaoloparis.it/category/netduino/
Template designed by
Letture utili
Getting started with Netduino
(Chris Walker - O’ Reilly)
Template designed by
Letture utili
Getting started with Internet of Things
(Cuno Pfister - O’ Reilly)
Template designed by
Letture utili
Netduino Home Automation Projects
(Matt Cavanagh - Packt publishing)
Template designed by
/pierpaoloparis.it
/mugromatre
#netduino_dnc2014
The social slide
Template designed by
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi
pierpaolo.paris@gmail.com
Grazie

More Related Content

Viewers also liked

Ley orgánica de educación
Ley orgánica de educaciónLey orgánica de educación
Ley orgánica de educación
alonsocr23
 
Prezentacja łeba kluczny
Prezentacja łeba klucznyPrezentacja łeba kluczny
Prezentacja łeba kluczny
klukart17
 
Bie daaltin ajil 3
Bie daaltin ajil 3Bie daaltin ajil 3
Bie daaltin ajil 3
erdmon
 
Apuntes orientacion deportiva batanero
Apuntes orientacion deportiva bataneroApuntes orientacion deportiva batanero
Apuntes orientacion deportiva batanero
alonsocr23
 
Dadlagin hicheel 3
Dadlagin hicheel 3Dadlagin hicheel 3
Dadlagin hicheel 3
erdmon
 
Fe05 test drivenjavascriptdevelopment
Fe05   test drivenjavascriptdevelopmentFe05   test drivenjavascriptdevelopment
Fe05 test drivenjavascriptdevelopment
DotNetCampus
 
Bases Fondo Financiamiento Compartido
Bases Fondo Financiamiento CompartidoBases Fondo Financiamiento Compartido
Bases Fondo Financiamiento Compartido
Sec Proyectos
 
20th anniversary article
20th anniversary article20th anniversary article
20th anniversary article
Beauty Nkonyeni
 
Presentación educativa (pedagogía)
Presentación educativa (pedagogía)Presentación educativa (pedagogía)
Presentación educativa (pedagogía)
alonsocr23
 
Modelo pedagogico del fcecep
Modelo pedagogico del fcecepModelo pedagogico del fcecep
Modelo pedagogico del fcecep
urielmejia
 
Presentación bullying
Presentación bullyingPresentación bullying
Presentación bullying
alonsocr23
 

Viewers also liked (20)

Ley orgánica de educación
Ley orgánica de educaciónLey orgánica de educación
Ley orgánica de educación
 
Prezentacja łeba kluczny
Prezentacja łeba klucznyPrezentacja łeba kluczny
Prezentacja łeba kluczny
 
RESUME2017
RESUME2017RESUME2017
RESUME2017
 
Extrabacon's sploit core
Extrabacon's sploit coreExtrabacon's sploit core
Extrabacon's sploit core
 
Bie daaltin ajil 3
Bie daaltin ajil 3Bie daaltin ajil 3
Bie daaltin ajil 3
 
Apuntes orientacion deportiva batanero
Apuntes orientacion deportiva bataneroApuntes orientacion deportiva batanero
Apuntes orientacion deportiva batanero
 
LA RESISTENCIA DE LOS CAJAMARQUINOS POR UN NUEVO MODELO DE DESARROLLO HUMA…
LA RESISTENCIA DE LOS CAJAMARQUINOS POR UN NUEVO MODELO DE DESARROLLO HUMA…LA RESISTENCIA DE LOS CAJAMARQUINOS POR UN NUEVO MODELO DE DESARROLLO HUMA…
LA RESISTENCIA DE LOS CAJAMARQUINOS POR UN NUEVO MODELO DE DESARROLLO HUMA…
 
Dadlagin hicheel 3
Dadlagin hicheel 3Dadlagin hicheel 3
Dadlagin hicheel 3
 
Fe05 test drivenjavascriptdevelopment
Fe05   test drivenjavascriptdevelopmentFe05   test drivenjavascriptdevelopment
Fe05 test drivenjavascriptdevelopment
 
Bases Fondo Financiamiento Compartido
Bases Fondo Financiamiento CompartidoBases Fondo Financiamiento Compartido
Bases Fondo Financiamiento Compartido
 
Tema 2 obesidad
Tema 2 obesidadTema 2 obesidad
Tema 2 obesidad
 
Psicología
PsicologíaPsicología
Psicología
 
20th anniversary article
20th anniversary article20th anniversary article
20th anniversary article
 
Presentación educativa (pedagogía)
Presentación educativa (pedagogía)Presentación educativa (pedagogía)
Presentación educativa (pedagogía)
 
Presentac..
Presentac..Presentac..
Presentac..
 
Hej.mielec.pl - Kolejowe inwestycje w nowej perspektywie UE na Podkarpaciu
Hej.mielec.pl - Kolejowe inwestycje w nowej perspektywie UE na PodkarpaciuHej.mielec.pl - Kolejowe inwestycje w nowej perspektywie UE na Podkarpaciu
Hej.mielec.pl - Kolejowe inwestycje w nowej perspektywie UE na Podkarpaciu
 
Modelo pedagogico del fcecep
Modelo pedagogico del fcecepModelo pedagogico del fcecep
Modelo pedagogico del fcecep
 
5 atracciones poco turisticas que visitar en Londres
5 atracciones poco turisticas que visitar en Londres5 atracciones poco turisticas que visitar en Londres
5 atracciones poco turisticas que visitar en Londres
 
PSA-Peugot e Citroen
PSA-Peugot e CitroenPSA-Peugot e Citroen
PSA-Peugot e Citroen
 
Presentación bullying
Presentación bullyingPresentación bullying
Presentación bullying
 

Similar to Gam04 introduzione a-netduino_final

Costruisci il tuo device
Costruisci il tuo deviceCostruisci il tuo device
Costruisci il tuo device
DotNetCampus
 
Web service persino nei sistemi embedeed
Web service persino nei sistemi embedeedWeb service persino nei sistemi embedeed
Web service persino nei sistemi embedeed
Antonio Cafiero
 

Similar to Gam04 introduzione a-netduino_final (20)

Predictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTPredictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoT
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
 
Costruisci il tuo device
Costruisci il tuo deviceCostruisci il tuo device
Costruisci il tuo device
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@Work
 
Cloud in Action_6 giugno 2014
Cloud in Action_6 giugno 2014Cloud in Action_6 giugno 2014
Cloud in Action_6 giugno 2014
 
Introduction to Cloud Computing and Microsoft Azure - Edition D-Day 2014 Go-o...
Introduction to Cloud Computing and Microsoft Azure - Edition D-Day 2014 Go-o...Introduction to Cloud Computing and Microsoft Azure - Edition D-Day 2014 Go-o...
Introduction to Cloud Computing and Microsoft Azure - Edition D-Day 2014 Go-o...
 
Pillole di IoT
Pillole di IoTPillole di IoT
Pillole di IoT
 
Web service persino nei sistemi embedeed
Web service persino nei sistemi embedeedWeb service persino nei sistemi embedeed
Web service persino nei sistemi embedeed
 
Il Cloud Privato con Cloudweavers - Polo PN - 13-12-2013
Il Cloud Privato con Cloudweavers - Polo PN - 13-12-2013Il Cloud Privato con Cloudweavers - Polo PN - 13-12-2013
Il Cloud Privato con Cloudweavers - Polo PN - 13-12-2013
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
 
Industrial iot: dalle parole ai fatti
Industrial iot: dalle parole ai fatti Industrial iot: dalle parole ai fatti
Industrial iot: dalle parole ai fatti
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno Fluidtime
 
Internet of Things e manutenzione a distanza: 
disponibilità di nuove tecnolo...
Internet of Things e manutenzione a distanza: 
disponibilità di nuove tecnolo...Internet of Things e manutenzione a distanza: 
disponibilità di nuove tecnolo...
Internet of Things e manutenzione a distanza: 
disponibilità di nuove tecnolo...
 
Privacy in enigmate
Privacy in enigmatePrivacy in enigmate
Privacy in enigmate
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Internet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trustInternet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trust
 
Evento ConsulPartner - Polo PN - 15-11-2013
Evento ConsulPartner - Polo PN - 15-11-2013Evento ConsulPartner - Polo PN - 15-11-2013
Evento ConsulPartner - Polo PN - 15-11-2013
 
Meetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure FunctionsMeetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure Functions
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 

More from DotNetCampus

More from DotNetCampus (20)

ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOT
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
 
70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATAPREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
 
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
 
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREFROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
 
SHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWSHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEW
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BAND
 
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
 
WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++
 
AZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBAZURE NOTIFICATION HUB
AZURE NOTIFICATION HUB
 
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSSFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTUNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
 
SFRUTTARE CORTANA E LE SPEECH API NELLE NOSTRE APP
SFRUTTARE CORTANA E LE SPEECH API NELLE NOSTRE APPSFRUTTARE CORTANA E LE SPEECH API NELLE NOSTRE APP
SFRUTTARE CORTANA E LE SPEECH API NELLE NOSTRE APP
 

Gam04 introduzione a-netduino_final

  • 1. Template designed by Introduzione a Netduino Pierpaolo Paris pierpaolo.paris@gmail.com www.pierpaoloparis.it Template designed by
  • 3. Template designed by Programmatore in .NET. Laureato in Ingegneria Informatica Appassionato al connubio tra elettronica e informatica Attualmente lavoro per Proge-Software S.r.L. chi sono
  • 4. Template designed by Cos’è Netduino Hardware Programmazione Netduino & Internet of Things agenda
  • 5. Template designed by Cos’è Netduino Una scheda elettronica di piccole dimensioni Dotata di microcontrollore e circuiteria di contorno Utile per creare dei prototipi per scopi hobbistici e didattici Ne esistono varie versioni, ognuna con caratteristiche hardware (e quindi prezzo) differenti
  • 6. Template designed by Hardware Netduino 2 Microcontrollore STMicro a 32 bit Processore Cortex-M3 a 120 MHz 192 KB di spazio utilizzabile per il programma 60 KB di RAM
  • 7. Template designed by Hardware Netduino Plus 2 Microcontrollore STMicro a 32 bit Processore Cortex-M4 a 168 MHz 384 KB di spazio utilizzabile per il programma 100 KB di RAM
  • 8. Template designed by Hardware Netduino Go Microcontrollore STMicro a 32 bit Processore Cortex-M4 a 168 MHz 384 KB di spazio utilizzabile per il programma 100 KB di RAM 8 porte GoBus I/O addizionale con moduli di espansione
  • 9. Template designed by Hardware Moduli per Netduino Go Led RGB Potenziometro Shield base Modulo per acquisizione dati Display touch Lista completa su http://wiki.netduino.com/List-of-all-GO-Modules.ashx
  • 10. Template designed by Da «Structured computer organization», di Andrew S. Tanenbaum: “…programmers had to “squeeze” their programs to fit in small amount of memory” Hardware
  • 11. Template designed by ……quindi? Cosa ci facciamo con tutti questi gingilli? Semplificando molto la storia: Montiamo il nostro circuito Leggiamo il valore da alcuni sensori Sulla base del valore letto facciamo qualcosa • accendiamo una lucina • azioniamo un motore • apriamo un rubinetto • mandiamo i nostri dati in giro per internet • ……
  • 12. Template designed by Devo essere un mago dell’elettronica? Proprio un mago no, ma qualche conoscenza di base è fondamentale Concetti come tensione, corrente, potenza, massa devono essere chiari Se il circuito non è chiuso non è un circuito, non funzionerà mai Se applico una tensione troppo alta a diodi, LED, transistor li rompo Un qualunque libro di elettronica di base (anche del liceo) va più che bene
  • 13. Template designed by Come sviluppo su Netduino? Abbiamo costruito il circuito che salverà il mondo. E ora? Dobbiamo scrivere un programma per pilotarlo Abbiamo bisogno di: Una qualunque versione di Visual Studio 2010 o 2012 • Anche la Express va benissimo Il .NET Micro Framework Netduino SDK
  • 14. Template designed by Come sviluppo su Netduino? Una volta installato Visual Studio, il .NET MF e l’SDK andiamo a creare un nuovo progetto Abbiamo una serie di template già pronti, a seconda di quello che vogliamo fare Si programma in C#, anche se in versione «ridotta» http://msdn.microsoft.com/en-us/library/ee435793.aspx
  • 16. Template designed by Abbiamo acceso e spento ripetutamente un LED Attendere 1 secondo per continuare a eseguire il programma non è il massimo Mentre attendiamo di accendere o spegnere il LED potremmo avere la necessità di fare altro Netduino eccelle in responsività delle applicazioni, ma sta a noi fare in modo che questo accada Entusiasmante, no?
  • 17. Template designed by Su Netduino possiamo usare i thread In breve: suddividiamo il nostro programma in segmenti più o meno indipendenti I segmenti vengono eseguiti in maniera concorrente (fin quando possibile) La trattazione dei thread esula dagli scopi di questo speech Thread
  • 18. Template designed by Cosa ci possiamo fare? L’unico limite è la nostra fantasia ……e la sensatezza delle idee Per farsi un’idea delle potenzialità di questo strumento potete fare riferimento a queste pagine: http://netduino.com/projects/ http://forums.netduino.com/index.php?/forum/15-project- showcase/
  • 20. Template designed by Internet of Things Si fa un gran parlare di Internet of Things, ma cos’è esattamente?
  • 21. Template designed by Estensione di internet ai dispositivi, di qualunque genere Sensori, ma anche semafori, frigoriferi, lavatrici….. I dispositivi comunicano i propri dati all’esterno, e usano dati aggregati provenienti da altri dispositivi I dispositivi finora passivi diventano attivi Big data + smart energy = love Internet of Things
  • 22. Template designed by Netduino & IoT La Netduino Plus 2 ha una porta Ethernet Possiamo collegarla ad una rete ……quindi anche ad Internet Collegando la scheda ad Internet possiamo dare il nostro piccolo contributo alla IoT Come? In tanti modi, per esempio servendosi di Xively
  • 23. Template designed by Xively E’ un PaaS Offre un servizio di database online Possiamo inviargli i dati provenienti dai nostri dispositivi e costruire applicazioni basate su questi dati Possiamo monitorare i dati online, e se vogliamo può farlo chiunque
  • 24. Template designed by La nostra azienda ci tiene molto a far sapere al mondo la qualità (temperatura, umidità, silenzio, illuminazione) dei propri ambienti…… ….oppure vuole far sapere al mondo che è attenta al risparmio energetico, e che di notte le luci sono tutte spente Xively ci permette di fare tutto questo Xively nel mondo reale
  • 25. Template designed by Xively ……e non finisce qui Embedding di grafici e widget in siti web Analisi dei dati storici Invio di alert a script di controllo In pratica Misurazione del consumo energetico Raccolta dati da stazioni meteo Building monitoring system
  • 26. Template designed by Xively Tutto quello che dobbiamo fare è registrarci Aggiungere un dispositivo Prendere nota delle chiavi (id del feed e API key) Servono a Xively per accettare i nostri dati Una volta ottenute le chiavi possiamo dialogare con Xively attraverso semplici richieste e risposte HTTP Si può comunque usare anche il protocollo MQTT
  • 27. Template designed by Netduino & Xively Vediamo come far interagire Netduino e Xively Se i videogiochi ci hanno insegnato qualcosa, ci hanno insegnato che il modo migliore per difenderci da un’invasione di Zombie è tenere sempre in forma le nostre piantine Noi abbiamo molta cura delle nostre piante, gli diamo sempre l’acqua di cui hanno bisogno quando ne hanno bisogno…. ….e vogliamo che il mondo lo sappia
  • 29. Template designed by Cloud La strabiliante potenza di calcolo non ci permette di fare analisi su una gran mole di dati Non abbiamo neanche lo spazio fisico per immagazzinarli Il cloud ci dà scalabilità e affidabilità Possiamo creare un web service su Cloud che fa tutto quanto Non dobbiamo fare altro che recuperare il risultato delle elaborazioni
  • 30. Template designed by Client o server? Finora Netduino è stato un client di un servizio Può rivestire anche il ruolo di server Pensando ad un server pensiamo ad una macchina costosa, in un datacenter da qualche parte nel mondo Non certo ad un PC dalle basse prestazioni Figuriamoci se pensiamo che un device con 168 Mhz di CPU possa fare da server
  • 31. Template designed by Un server (o una batteria di server) ha tipicamente un IP pubblico, con cui tutti possono raggiungerlo Netduino no (firewall, NAT….tutte cose che ci mettono i bastoni fra le ruote) C’è comunque un modo molto semplice per trasformare Netduino in un server In questo modo potremmo accendere i riscaldamenti di casa via internet, mentre siamo in viaggio Netduino come server
  • 32. Template designed by Quello che ci serve è un relay tra Netduino e il client che vuole inviare comandi Questo relay ha un nome (ma non un cognome): Yaler (www.yaler.org) Richiede un sistema di autorizzazione simile a Xively Mandiamo a Yaler le richieste che vogliamo mandare a Netduino («accendi i riscaldamenti», «c’è roba scaduta in frigo?») Yaler
  • 34. Template designed by Connectivity as a service (accesso sicuro, via SSH, al nostro dispositivo) Funziona con qualunque dispositivo che fornisce un socket TCP Accesso tramite URL Affidabilità e scalabilità garantite dall’infrastruttura di Yaler Dobbiamo preoccuparci solamente della nostra applicazione Yaler
  • 35. Template designed by Per approfondire http://www.pierpaoloparis.it/category/netduino/
  • 36. Template designed by Letture utili Getting started with Netduino (Chris Walker - O’ Reilly)
  • 37. Template designed by Letture utili Getting started with Internet of Things (Cuno Pfister - O’ Reilly)
  • 38. Template designed by Letture utili Netduino Home Automation Projects (Matt Cavanagh - Packt publishing)
  • 40. Template designed by Grazie a tutti per la partecipazione Riceverete il link per il download a slide e demo via email nei prossimi giorni Per contattarmi pierpaolo.paris@gmail.com Grazie