Post on 24-May-2015
Template designed by
Introduzione a Netduino
Pierpaolo Parispierpaolo.paris@gmail.comwww.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
demoBlinking 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/
demoAlcol 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
demoNetduino 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