Workshop su «Internet delle cose» 
Progettare e realizzare con Raspberry 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Raspberry pi: 
• Single-board computer; 
• Linuk-based; 
• General purpose I/O; 
• +3,5 milioni venduti. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
• Prototipizzato nel 2006 da Bate Upton 
• In vendita dal 2012 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Confronto tra i vari modelli di Raspberry 
Messina – 11 ottobre 2014 
Model A Model B Model B+ 
RAM 256Mb 512Mb 512Mb 
USB port 1 2 4 
Ethernet NO 1 1 
GPIO 26 26 40 
Boot SD SD Micro-SD 
Prezzo €19,25 €32,99 €32,99
Workshop su «Internet delle cose» 
Raspberry pi model B: 
• 26 GPIO; 
• Alim. 2 a 3.3v e 2 a 5v; 
• 5 GND; 
• 17 I/O. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Raspberry pi model B: 
• PI sta per python, linguaggio di 
programmazione principale; 
• Grazie alla community sono disponibili porting 
in C, C++, Java, Ruby, Php, ecc.; 
• GPIO programmabili da linea di comando. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Accessori: 
• Camera; 
• Wifi; 
• Development board; 
• Sensori; 
• Display; 
• http://www.adafruit.com/category/105 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
Tramite un apposito relè è possibile aprire e chiudere un circuito 
utilizzando i 3.3v di tensione forniti dal pin 1 del raspberry. 
Applicazioni: 
• Controllo lampadine; 
• Controllo tapparelle motorizzate; 
• Controllo apertura cancelli/garage; 
• Controllo di tutti gli apparecchi elettronici. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
Per il controllo dei pin GPIO del raspberry utilizziamo raspberry-gpio, 
un’interfaccia web-based sviluppata da drcurzon, reperibile 
all’url https://code.google.com/p/raspberrypi-gpio/ 
e configurabile tramite http://www.instructables.com/id/Web- 
Control-of-Raspberry-Pi-GPIO/?ALLSTEPS. 
Alternativa semplificata al più famoso WebIOPi 
https://code.google.com/p/webiopi 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
La semplicità del funzionamento dell’interfaccia consiste nel 
salvare lo stato desiderato in un database mysql e delegare ad uno 
script shell la gestione effettiva dei pin del raspberry. 
Per completare questa interfaccia, mancava l’inversione dello stato 
dei pin. 
I più comuni moduli relè sono «active low», ovvero attivi quando 
non si fornisce tensione, stato logico 0. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
Per controllare i pin GPIO da linea di comando il kernel offre l’interfaccia «GPIO 
Sysfs» 
Per controllare un pin bisogna informare il kernel di esportarne il controllo nello 
userspace, scrivendo il numero corrispondente nel file 
echo 18 > /sys/class/gpio/export 
Così verrà creata la directory /sys/class/gpio/gpio18 che conterrà i file per 
impostare direzione ( in – out ) e valori del pin ( 0 – 1 ): 
echo out >/sys/class/gpio/gpio18/direction 
echo 1 > /sys/class/gpio/gpio18/value 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Esempio applicativo: 
Controllare una lampada tramite web 
Tramite interfaccia web non 
faremo altro che scrivere sul 
database il valore logico 
desiderato per il pin. 
Lo script temporizzato si 
occuperà di leggere questo 
valore dal database e 
impostarlo al pin. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Estensione esempio applicativo: 
Facebook rss notifications: 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Estensione esempio applicativo: 
Funzionamento: 
• Utilizzando cUrl si ottiene il primo feed rss; 
• Si conserva la data dell’ultima notifica, ricercando il 
contenuto del tag LastBuildDate; 
• Ad ogni intervallo (30 secondi) si confronta la data 
dell’ultimo aggiornamento con quella conservata 
precedentemente; 
• Nel caso in cui sia cambiata si accende la lampada, 
indicando la presenza di nuove notifiche. 
Messina – 11 ottobre 2014
Workshop su «Internet delle cose» 
Grazie 
Elio Merlino 
elio.merlino@gmail.com 
https://www.facebook.com/merlino.elio 
https://plus.google.com/u/0/+ElioMerlino 
Messina – 11 ottobre 2014

Progettare e realizzare con Raspberry - Lo stretto digitale

  • 1.
    Workshop su «Internetdelle cose» Progettare e realizzare con Raspberry Messina – 11 ottobre 2014
  • 2.
    Workshop su «Internetdelle cose» Raspberry pi: • Single-board computer; • Linuk-based; • General purpose I/O; • +3,5 milioni venduti. Messina – 11 ottobre 2014
  • 3.
    Workshop su «Internetdelle cose» • Prototipizzato nel 2006 da Bate Upton • In vendita dal 2012 Messina – 11 ottobre 2014
  • 4.
    Workshop su «Internetdelle cose» Confronto tra i vari modelli di Raspberry Messina – 11 ottobre 2014 Model A Model B Model B+ RAM 256Mb 512Mb 512Mb USB port 1 2 4 Ethernet NO 1 1 GPIO 26 26 40 Boot SD SD Micro-SD Prezzo €19,25 €32,99 €32,99
  • 5.
    Workshop su «Internetdelle cose» Raspberry pi model B: • 26 GPIO; • Alim. 2 a 3.3v e 2 a 5v; • 5 GND; • 17 I/O. Messina – 11 ottobre 2014
  • 6.
    Workshop su «Internetdelle cose» Raspberry pi model B: • PI sta per python, linguaggio di programmazione principale; • Grazie alla community sono disponibili porting in C, C++, Java, Ruby, Php, ecc.; • GPIO programmabili da linea di comando. Messina – 11 ottobre 2014
  • 7.
    Workshop su «Internetdelle cose» Accessori: • Camera; • Wifi; • Development board; • Sensori; • Display; • http://www.adafruit.com/category/105 Messina – 11 ottobre 2014
  • 8.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web Messina – 11 ottobre 2014
  • 9.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web Tramite un apposito relè è possibile aprire e chiudere un circuito utilizzando i 3.3v di tensione forniti dal pin 1 del raspberry. Applicazioni: • Controllo lampadine; • Controllo tapparelle motorizzate; • Controllo apertura cancelli/garage; • Controllo di tutti gli apparecchi elettronici. Messina – 11 ottobre 2014
  • 10.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web Per il controllo dei pin GPIO del raspberry utilizziamo raspberry-gpio, un’interfaccia web-based sviluppata da drcurzon, reperibile all’url https://code.google.com/p/raspberrypi-gpio/ e configurabile tramite http://www.instructables.com/id/Web- Control-of-Raspberry-Pi-GPIO/?ALLSTEPS. Alternativa semplificata al più famoso WebIOPi https://code.google.com/p/webiopi Messina – 11 ottobre 2014
  • 11.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web La semplicità del funzionamento dell’interfaccia consiste nel salvare lo stato desiderato in un database mysql e delegare ad uno script shell la gestione effettiva dei pin del raspberry. Per completare questa interfaccia, mancava l’inversione dello stato dei pin. I più comuni moduli relè sono «active low», ovvero attivi quando non si fornisce tensione, stato logico 0. Messina – 11 ottobre 2014
  • 12.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web Messina – 11 ottobre 2014
  • 13.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web Per controllare i pin GPIO da linea di comando il kernel offre l’interfaccia «GPIO Sysfs» Per controllare un pin bisogna informare il kernel di esportarne il controllo nello userspace, scrivendo il numero corrispondente nel file echo 18 > /sys/class/gpio/export Così verrà creata la directory /sys/class/gpio/gpio18 che conterrà i file per impostare direzione ( in – out ) e valori del pin ( 0 – 1 ): echo out >/sys/class/gpio/gpio18/direction echo 1 > /sys/class/gpio/gpio18/value Messina – 11 ottobre 2014
  • 14.
    Workshop su «Internetdelle cose» Esempio applicativo: Controllare una lampada tramite web Tramite interfaccia web non faremo altro che scrivere sul database il valore logico desiderato per il pin. Lo script temporizzato si occuperà di leggere questo valore dal database e impostarlo al pin. Messina – 11 ottobre 2014
  • 15.
    Workshop su «Internetdelle cose» Estensione esempio applicativo: Facebook rss notifications: Messina – 11 ottobre 2014
  • 16.
    Workshop su «Internetdelle cose» Estensione esempio applicativo: Funzionamento: • Utilizzando cUrl si ottiene il primo feed rss; • Si conserva la data dell’ultima notifica, ricercando il contenuto del tag LastBuildDate; • Ad ogni intervallo (30 secondi) si confronta la data dell’ultimo aggiornamento con quella conservata precedentemente; • Nel caso in cui sia cambiata si accende la lampada, indicando la presenza di nuove notifiche. Messina – 11 ottobre 2014
  • 17.
    Workshop su «Internetdelle cose» Grazie Elio Merlino elio.merlino@gmail.com https://www.facebook.com/merlino.elio https://plus.google.com/u/0/+ElioMerlino Messina – 11 ottobre 2014