Un talk tenuto all'Università di Genova Disi/DIbris, il 3 Giugno 2014 per parlare di possibli interfacciamenti tra un arduino UNO/YUN e uno smartphone.
1. Arduino & Smartphone
Andrea De Gaetano
Emanuele Poggi
@dega1999
!
http://pestohacks.blogspot.com
https://groups.google.com/forum/#!forum/
genovamobiledevs
2. Queste slide saranno graficamente orribili!
Non sono un grafico/designer ne “laureato in powerpoint”.
!
Fatevene una ragione ;D
effetti collaterali: intorpidimento, mal di stomaco, labirintite, sonno. Tenere lontano dalle donne incinta.
3. • Arduino Uno
• Accenni di Bluetooth (ci vorrebbero min. 2 ore..
eh!)
• Android e Bluetooth (…e BlackBerry)
• Arduino Yun
• Html5 / Bootstrap
Argomenti
4. Arduino Uno
Microcontrollore + circuiteria di controllo, italiano
!
8-bit CPU, 16MHz clock speed, 2KB SRAM, 32KB flash
storage
!
Utilizzato per scopi didattici e per creare prototipi
hardware
!
Opensource
!
Il software di programmazione (in C) è multipiattaforma
(win,linux,mac)
!
Un’infinità di progetti “DIY” da copiare o da cui imparare
!
Può essere esteso con“shield” (ma a che prezzo!)
!
Lo smartwatch “Pebble” è stato prototipato con Arduino
!
( Ogni istituto tecnico superiore, dovrebbe usarlo :P )
5. Componenti
- Fotoresistenza (volevamo “tanto” usarla)
- DHT11: sensore digitale che fornisce temperatura e umidità
- un “tamarrissimo” led RGB
!
Il circuito permette di:
- rendere disponibili all’esterno i dati dal sensore DHT11
- cambiare lo stato del led RGB in : Rosso, Verde, Blu, Spento
- leggere il valore di “luce” nella stanza
8. Comunicazione
Funziona ma, solo su seriale
!
Devo attaccare un cavo USB e leggere il dato con
un monitor seriale …
!
Vogliamo leggere il dato dallo smartphone
!
Oh, se solo ci fosse qualche tecnologia che
permettesse di far comunicare l’Arduino con lo
smartphone
10. RN-42
• Chip Bluetooth, basso costo (circa 12 euro)
• Espone su RFCOMM il collegamento seriale di Arduino
• 5 collegamenti da effettuare: TX,RX,VDD(3.3v),GND, CTS con RTS
• Programmabile con comandi AT “like” (cambio proprietà es. nome
visualizzato)
11. Pairing
• Un dispositivo si mette in modalità “visibile”
e imposta un PIN
• Un secondo dispositivo effettua la ricerca
dei dispositivi bluetooth nelle vicinanze, fino
100 m. (Operazione lenta)
• Si stabilisce una connessione: master/slave,
utilizzando il PIN come password
• Dispositivi che hanno fatto pairing tra loro
non devono rifarlo le volte successive
• L’RN-42 è sempre visibile, quindi sarà il
telefono a connettersi a lui
12. Premessa:
• Non considero il caso in cui il device utilizzato non
ha bluetooth
• Ho già fatto accoppiare i due dispositivi (Pairing)
• Cerco solo tra i dispositivi accoppiati
• So già che il servizio RFCOMM è presente nel
dispositivo di destinazione
• Sono a conoscenza del nome dell’RN-42: “yoyo”
Android’s Time!
13. Bello eh il bluetooth… ma,
!
se volessimo leggere
il dato via
internet?
!
se usassi un iphone?
14. Arduino Yun
(tciu is megl che uan)
• 2 schede in 1: un arduino leonardo, una scheda
linux chiamata “Linino”
• Linino contiene una versione modificata di
openwrt: distro per sistemi embedded/router
• Espande la sua “didatticità”
• Ha una scheda di rete ethernet e una wifi che
permette di essere usata in modalità Access Point
• + CPU(400 mhz) e compatibile con quasi tutti gli
shield di UNO
• Stesso form factor dell’UNO: facile estensione
verso internet di progetti già realizzati
• Costa di più: circa 64 euro ma..sempre meglio che
shield ethernet+arduino uno
• e… Temboo
15. “Under” The Bridge
• Linino e Arduino comunicano tra loro tramite Bridge che
alla fine è un collegamento seriale, interno. (Con le sue
latenze…)
• Lato Arduino è possibile lanciare comandi sulla parte Linux
• Un webserver lato Linino, espone i dati ricevuti lato
arduino(tramite opportuna libreria)
16. Yun vs Uno
I collegamenti del circuito rimangono gli stessi!
0 sbatti!
!
Lo sketch invece deve essere modificato
!
Va configurata la rete
18. Il client per Yun
• Con tecnologie WEB: HTML/JS/CSS
• Multipiattaforma: Android, IOS, BlackBerry, Windows
Phone, Firefox OS, Tizen, XYZ, blabla!
• Impachettabile con Cordova/Phonegap
• Utilizza Bootstrap per l’interfaccia
• Funziona anche da desktop/smartTv/qualcosa con un
browser
• Semplifica la vita