Progettare e realizzare con Raspberry - Lo stretto digitale
1. Workshop su «Internet delle cose»
Progettare e realizzare con Raspberry
Messina – 11 ottobre 2014
2. Workshop su «Internet delle cose»
Raspberry pi:
• Single-board computer;
• Linuk-based;
• General purpose I/O;
• +3,5 milioni venduti.
Messina – 11 ottobre 2014
3. Workshop su «Internet delle cose»
• Prototipizzato nel 2006 da Bate Upton
• In vendita dal 2012
Messina – 11 ottobre 2014
4. 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
5. 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
6. 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
7. Workshop su «Internet delle cose»
Accessori:
• Camera;
• Wifi;
• Development board;
• Sensori;
• Display;
• http://www.adafruit.com/category/105
Messina – 11 ottobre 2014
8. Workshop su «Internet delle cose»
Esempio applicativo:
Controllare una lampada tramite web
Messina – 11 ottobre 2014
9. 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
10. 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
11. 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
12. Workshop su «Internet delle cose»
Esempio applicativo:
Controllare una lampada tramite web
Messina – 11 ottobre 2014
13. 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
14. 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
15. Workshop su «Internet delle cose»
Estensione esempio applicativo:
Facebook rss notifications:
Messina – 11 ottobre 2014
16. 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
17. 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