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
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/
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
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