SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Streaming LIVE
Massimiliano D’Ambrosio
google.com/+MassimilianoDAmbrosio
@iv3unm
plus.hacklabudine.it
(Community BBB Italia)
plus.gdgudine.it
Arduino e sensori in ambito medico
Arduino e sensori in ambito medico
e-Health Sensor Platform V2.0 by Cooking Hacks
Tra i progetti in questo abito e` interessante la piattaforma e-Health Sensor Platform V2.
0 della Cooking Hacks. Nasce per Arduino ma può essere usata anche con altre board.
È una shield Arduino in grado di gestire un
vasto numeri di sensori:
● Patient Position Sensor
● Glucometer Sensor
● Body Temperature Sensor
● Blood Pressure Sensor
(Sphygmomanometer) V2.0
● Pulse and Oxygen in Blood Sensor
(SPO2)Airflow Sensor (Breathing)
● Galvanic Skin Response Sensor (GSR
- Sweating)
● Electrocardiogram Sensor (ECG)
● Electromyography Sensor (EMG)
e-Health Sensor Platform V2.0 by Cooking Hacks
e-Health Sensor Platform V2.0 by Cooking Hacks
● è disponibile in kit oppure acquistando la shield ed i sensori che ci
interessano singolarmente.
● lo schema elettrico è disponibile in formato pdf.
● ci sono i file sorgenti sia per Arduino che per la Raspberry Pi
● per usarla sulla raspi dovete usare una board bridge tra il pin delle GPIO
Arduino ed il pin della raspi.
Vediamo le caratteristiche sul sito della
http://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-
sensor-platform-arduino-raspberry-pi-medical
Arduino
Yùn
Arduino Yùn
AVR Arduino
microcontroller
Microcontroller ATmega32u4
Operating Voltage 5V
Input Voltage 5V
Digital I/O Pins 20
PWM Channels 7
Analog Input Channels 12
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (of which 4 KB used by bootloader)
SRAM 2.5 KB
EEPROM 1 KB
Clock Speed 16 MHz
Arduino Leonardo + Linux embedded
http://arduino.
cc/en/Main/ArduinoBoardYun
Arduino Yùn
Linux microprocessor
Processor Atheros AR9331
Architecture MIPS @400MHz
Operating Voltage 3.3V
Ethernet IEEE 802.3
10/100Mbit/s
WiFi IEEE 802.11b/g/n
USB Type-A 2.0 Host
Card Reader Micro-SD only
RAM 64 MB DDR2
Flash Memory 16 MB
PoE compatible 802.3af card support (see
the note below)
Arduino Leonardo + Linux embedded
http://arduino.
cc/en/Main/ArduinoBoardYun
Arduino Yùn
Arduino Yùn
● WEB Services
● Internet Services (Google, Twitter, Facebook, NetFlix… MySQL, MongoHQ, NOAA….
) con Temboo
○ https://www.temboo.com/
arduino.cc/en/Guide/ArduinoYun
Google Fusion Table API
Google Fusion Table
Google Fusion Tables permette di archiviare, condividere, eseguire query e
visualizzare tabelle di dati e grafici. Tramite delle API REST per gestire tabelle,
info modelli finestre e stili. Con delle query sui dati possiamo inserimento.
Possiamo importare/esportare i dati formato CSV o JSON, o utilizzarli con API
di Google Maps o Google Chart Tools
Possiamo usarlo anche da Google Drive
● https://support.google.com/fusiontable
Google Fusion Table
In Google Drive abbiamo una webapp con cui potere creare la nostra
tabella, visualizzare i dati, inserirli e modificali. Possiamo anche creare
grafici e rappresentazioni su mappe dei nostri dai. Tutto questo partendo
da Google Drive.
Usando le API possiamo accedere dal nostro codice che possiamo
sviluppare.
Questo permettono di creare, modificare… la tabella , mentre per
inserirmento/modifica/cancellazione... dei record si utilizza SQL-like
queries
https://developers.google.com/fusiontables/
https://google-api-client-libraries.appspot.
com/documentation/fusiontables/v1/python/latest/index.html
Google Fusion Table
● Vediamo come si crea una tabella FT sotto Drive
● ricavare ricavare ID del database FT.
● ID è indentificativo univoco della tabella e va indicato quando usciamo
le API.
:
Google Fusion Table
Per usare le API cosa dobbiamo sapere:
● Google Accounts Authentication and Authorization
○ Google+ Sing In provides a simple way to let people use their Google
credentials to sign-in to your site. It includes a set of tools that are easy to
integrate across different devices.
○ oAuth2 is an authorization protocol for all Google APIs. OAuth 2.0 relies
on SSL for security instead of requiring your application to do
cryptographic signing directly. This protocol allows your application to
request access to data associated with a user's Google Account.
■ https://developers.google.com/accounts/docs/OAuth2
○ https://developers.google.com/accounts/
OAuth2 fornisce un metodo ai client di accedere ai servizi del server (applicazione,
database...) per conto del proprietario della risorsa.
● https://developers.google.com/api-client-library/python/guide/aaa_oauth
● http://oauth.net/2/
● http://en.wikipedia.org/wiki/OAuth
● https://developers.google.com/oauthplayground/
Google Fusion Table
SQL (Structured Query Language) è un linguaggio standard per database basati sul
modello relazionale (RDBMS) progettato per:
● creare e modificare schemi di database (DDL - Data Definition Language);
● inserire, modificare e gestire dati memorizzati (DML - Data Manipulation Language);
● interrogare i dati memorizzati (DQL - Data Query Language);
● creare e gestire strumenti di controllo ed accesso ai dati (DCL - Data Control
Language).
Nonostante il nome, non si tratta dunque solo di un semplice linguaggio di interrogazione,
ma alcuni suoi sottoinsiemi si occupano della creazione, della gestione e
dell'amministrazione del database.
Fonte: http://it.wikipedia.org/wiki/SQL
Links:
● Tutorial http://www.w3schools.com/sql/
Google Fusion Table
Il tool APIs Explorer permette di prendere conoscenza con le varie API di
Google.
● https://developers.google.com/apis-explorer
Google Fusion Table
Python e OAuth2
Il tool APIs Explorer permette di prendere conoscenza con le varie API di Google
avete visto che avete dovuto fare un click su OFF/ON per l’autorizzazione per usare
le API di FT. Questo lo dovete fare anche dalla vostra applicazione. Vediamo come
fare nel nostro caso che uscimo Python.
Google mette a disposizione le Google APIs Client Library for Python ch e ne
installiamo sulla nostra board come la Arduino Yùn
Diamo un occhiata alla documentazione su
https://developers.google.com/api-client-library/python/start/installation troviamo
anche una gradevole sorpresa.
Oltre alla descrizione su come funzionano queste API, abbiamo un tool che
permette di:
● attivare le API per il servizio che ci serve
● preparaci i file di configurazione con per la oAuth e l’uso delle API del servizio
richiesto.
Google Fusion Table
● Scarichiamo sul nostro pc i file preparati dal tool.
● Prima di passarli sulla board, proviamo se funzionano in locale ed
otteniamo i “file di autenticazione”
● se non avete Python 2.x installato, ora dove installarlo → http://python.org
● installiamo le Google API Python Client come indicato.
● decomprimere i due file in una cartella.
● dalla cartella che contengono i due file decompressi prima, eseguite
○ python sample.py
Google Fusion Table
● viene aperto il browser e siete indirizzati alla pagina per autorizzare la vostra
applicazione.
● l’applicazione una volta autorizzata salva le credenziali in un file locale chiamato
sample.dat
Arduino Yùn + Google API Python Client
Torniamo sulla Yùn e dalla console Linux installiamo le Google API Python Client
root@Arduino:~# opkg install distribute python-openssl
root@Arduino:~# easy_install --upgrade google-api-python-client
Ora che abbiamo installato la libreria delle API copiamo tutta la cartella dal nostro PC e
proviamo:
root@Arduino:/tmp/ft# python sample.py
Success! Now add code here.
Arduino Yùn + Google API Python Client
tableid="ID_TABLE"
Location="46.061663, 13.235883"
dt = time.strftime("%Y-%m-%d %H:%M:%S")
#update Fusion Tables
service.query().sql(sql="INSERT INTO %s (Date,Location) VALUES ('%s','%s')" % (tableid,dt,Location)).execute()
massimiliano@beaglebone:~$ cat contact.json
{
"Name":"Massimiliano D'Ambrosio",
"G+":"google.com/+MassimilianoDAmbrosio",
"Twitter":"@iv3unm",
"HackLab Udine": {
"Site":"www.hacklabudine.it",
"G+":"plus.hacklabudine.it",
"Twitter":"@hacklabudine",
"memo":"unOfficial Community BeagleBone Italia"
},
"Google Developer Group Udine": {
"Site":"www.gdgudine.it",
"G+":"plus.gdgudine.it",
"Twitter":"@gdgudine"
}
}
massimiliano@beaglebone:~$ sudo shutdown now
[sudo] password for massimiliano:
Broadcast message from root@beaglebone (pts/0) (Sat May 10 20:33:39
2014):
The system is going down to maintenance mode NOW!

Weitere ähnliche Inhalte

Ähnlich wie Arduino - Massimiliano D'Ambrosio

Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteMirco Sbrollini
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoWireless
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Andrea Marchetti
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Andrea Marchetti
 
Come essere produttivi nel lavoro grazie agli strumenti di google
Come essere produttivi nel lavoro grazie agli strumenti di googleCome essere produttivi nel lavoro grazie agli strumenti di google
Come essere produttivi nel lavoro grazie agli strumenti di googleRaul Cafini
 
Data Analysis & Machine Learning
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine LearningCaffeina
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Andrea Tosato
 
Introduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIntroduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
 
Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007jekil
 
Depliant Archivia Plus TeamSystem
Depliant Archivia Plus TeamSystemDepliant Archivia Plus TeamSystem
Depliant Archivia Plus TeamSystemGiuseppe Torre
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiMarco Gasparetto
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidOpen Makers Italy
 
Strumenti online prima lezione 15 maggio
Strumenti online prima lezione 15 maggioStrumenti online prima lezione 15 maggio
Strumenti online prima lezione 15 maggioAntonio Todaro
 
Installazione Qt/Qt Quick per target Android
Installazione Qt/Qt Quick  per target AndroidInstallazione Qt/Qt Quick  per target Android
Installazione Qt/Qt Quick per target AndroidPaolo Sereno
 

Ähnlich wie Arduino - Massimiliano D'Ambrosio (20)

Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobili
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
 
Come essere produttivi nel lavoro grazie agli strumenti di google
Come essere produttivi nel lavoro grazie agli strumenti di googleCome essere produttivi nel lavoro grazie agli strumenti di google
Come essere produttivi nel lavoro grazie agli strumenti di google
 
Data Analysis & Machine Learning
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine Learning
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018
 
Introduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIntroduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulug
 
Android
AndroidAndroid
Android
 
Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007
 
Erlug
ErlugErlug
Erlug
 
Depliant Archivia Plus TeamSystem
Depliant Archivia Plus TeamSystemDepliant Archivia Plus TeamSystem
Depliant Archivia Plus TeamSystem
 
Google Drive in pillole
Google Drive in pilloleGoogle Drive in pillole
Google Drive in pillole
 
Smart api
Smart apiSmart api
Smart api
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessi
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile Android
 
Strumenti online prima lezione 15 maggio
Strumenti online prima lezione 15 maggioStrumenti online prima lezione 15 maggio
Strumenti online prima lezione 15 maggio
 
Installazione Qt/Qt Quick per target Android
Installazione Qt/Qt Quick  per target AndroidInstallazione Qt/Qt Quick  per target Android
Installazione Qt/Qt Quick per target Android
 

Mehr von firenze-gtug

Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT orientedfirenze-gtug
 
Android ndk - ottimizzazione su dispositivi Intel
Android ndk - ottimizzazione su dispositivi IntelAndroid ndk - ottimizzazione su dispositivi Intel
Android ndk - ottimizzazione su dispositivi Intelfirenze-gtug
 
Gwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca TosiGwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca Tosifirenze-gtug
 
Youtube broadcast live - Massimiliano D'Ambrosio
Youtube broadcast live - Massimiliano D'AmbrosioYoutube broadcast live - Massimiliano D'Ambrosio
Youtube broadcast live - Massimiliano D'Ambrosiofirenze-gtug
 
Intro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'AmbrosioIntro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'Ambrosiofirenze-gtug
 
RFID: What & Why - Stefano Coluccini
RFID: What & Why - Stefano ColucciniRFID: What & Why - Stefano Coluccini
RFID: What & Why - Stefano Coluccinifirenze-gtug
 
GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)firenze-gtug
 
Presentazione Google App Engine
Presentazione Google App EnginePresentazione Google App Engine
Presentazione Google App Enginefirenze-gtug
 
Android chat in the cloud
Android chat in the cloudAndroid chat in the cloud
Android chat in the cloudfirenze-gtug
 
Clean android code
Clean android codeClean android code
Clean android codefirenze-gtug
 
Intel ndk - a few Benchmarks
Intel ndk - a few BenchmarksIntel ndk - a few Benchmarks
Intel ndk - a few Benchmarksfirenze-gtug
 
EE Incremental Store
EE Incremental StoreEE Incremental Store
EE Incremental Storefirenze-gtug
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with androidfirenze-gtug
 
Apertura "Mobile & Embedded" - 13 febbraio 2014
Apertura "Mobile & Embedded" - 13 febbraio 2014Apertura "Mobile & Embedded" - 13 febbraio 2014
Apertura "Mobile & Embedded" - 13 febbraio 2014firenze-gtug
 
Maven from dummies
Maven from dummiesMaven from dummies
Maven from dummiesfirenze-gtug
 
Dev fest android application case study
Dev fest android application   case studyDev fest android application   case study
Dev fest android application case studyfirenze-gtug
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdkfirenze-gtug
 
You tube api overview
You tube api overviewYou tube api overview
You tube api overviewfirenze-gtug
 

Mehr von firenze-gtug (20)

Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT oriented
 
Android ndk - ottimizzazione su dispositivi Intel
Android ndk - ottimizzazione su dispositivi IntelAndroid ndk - ottimizzazione su dispositivi Intel
Android ndk - ottimizzazione su dispositivi Intel
 
Gwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca TosiGwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca Tosi
 
Youtube broadcast live - Massimiliano D'Ambrosio
Youtube broadcast live - Massimiliano D'AmbrosioYoutube broadcast live - Massimiliano D'Ambrosio
Youtube broadcast live - Massimiliano D'Ambrosio
 
Intro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'AmbrosioIntro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'Ambrosio
 
RFID: What & Why - Stefano Coluccini
RFID: What & Why - Stefano ColucciniRFID: What & Why - Stefano Coluccini
RFID: What & Why - Stefano Coluccini
 
GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)
 
Presentazione Google App Engine
Presentazione Google App EnginePresentazione Google App Engine
Presentazione Google App Engine
 
Android chat in the cloud
Android chat in the cloudAndroid chat in the cloud
Android chat in the cloud
 
Clean android code
Clean android codeClean android code
Clean android code
 
#Html2Native
#Html2Native#Html2Native
#Html2Native
 
Intel ndk - a few Benchmarks
Intel ndk - a few BenchmarksIntel ndk - a few Benchmarks
Intel ndk - a few Benchmarks
 
EE Incremental Store
EE Incremental StoreEE Incremental Store
EE Incremental Store
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with android
 
Apertura "Mobile & Embedded" - 13 febbraio 2014
Apertura "Mobile & Embedded" - 13 febbraio 2014Apertura "Mobile & Embedded" - 13 febbraio 2014
Apertura "Mobile & Embedded" - 13 febbraio 2014
 
Maven from dummies
Maven from dummiesMaven from dummies
Maven from dummies
 
Apps fuel oct2012
Apps fuel oct2012Apps fuel oct2012
Apps fuel oct2012
 
Dev fest android application case study
Dev fest android application   case studyDev fest android application   case study
Dev fest android application case study
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdk
 
You tube api overview
You tube api overviewYou tube api overview
You tube api overview
 

Arduino - Massimiliano D'Ambrosio

  • 2. Arduino e sensori in ambito medico
  • 3. e-Health Sensor Platform V2.0 by Cooking Hacks Tra i progetti in questo abito e` interessante la piattaforma e-Health Sensor Platform V2. 0 della Cooking Hacks. Nasce per Arduino ma può essere usata anche con altre board. È una shield Arduino in grado di gestire un vasto numeri di sensori: ● Patient Position Sensor ● Glucometer Sensor ● Body Temperature Sensor ● Blood Pressure Sensor (Sphygmomanometer) V2.0 ● Pulse and Oxygen in Blood Sensor (SPO2)Airflow Sensor (Breathing) ● Galvanic Skin Response Sensor (GSR - Sweating) ● Electrocardiogram Sensor (ECG) ● Electromyography Sensor (EMG)
  • 4. e-Health Sensor Platform V2.0 by Cooking Hacks
  • 5. e-Health Sensor Platform V2.0 by Cooking Hacks ● è disponibile in kit oppure acquistando la shield ed i sensori che ci interessano singolarmente. ● lo schema elettrico è disponibile in formato pdf. ● ci sono i file sorgenti sia per Arduino che per la Raspberry Pi ● per usarla sulla raspi dovete usare una board bridge tra il pin delle GPIO Arduino ed il pin della raspi. Vediamo le caratteristiche sul sito della http://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric- sensor-platform-arduino-raspberry-pi-medical
  • 7. Arduino Yùn AVR Arduino microcontroller Microcontroller ATmega32u4 Operating Voltage 5V Input Voltage 5V Digital I/O Pins 20 PWM Channels 7 Analog Input Channels 12 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (of which 4 KB used by bootloader) SRAM 2.5 KB EEPROM 1 KB Clock Speed 16 MHz Arduino Leonardo + Linux embedded http://arduino. cc/en/Main/ArduinoBoardYun
  • 8. Arduino Yùn Linux microprocessor Processor Atheros AR9331 Architecture MIPS @400MHz Operating Voltage 3.3V Ethernet IEEE 802.3 10/100Mbit/s WiFi IEEE 802.11b/g/n USB Type-A 2.0 Host Card Reader Micro-SD only RAM 64 MB DDR2 Flash Memory 16 MB PoE compatible 802.3af card support (see the note below) Arduino Leonardo + Linux embedded http://arduino. cc/en/Main/ArduinoBoardYun
  • 10. Arduino Yùn ● WEB Services ● Internet Services (Google, Twitter, Facebook, NetFlix… MySQL, MongoHQ, NOAA…. ) con Temboo ○ https://www.temboo.com/ arduino.cc/en/Guide/ArduinoYun
  • 12. Google Fusion Table Google Fusion Tables permette di archiviare, condividere, eseguire query e visualizzare tabelle di dati e grafici. Tramite delle API REST per gestire tabelle, info modelli finestre e stili. Con delle query sui dati possiamo inserimento. Possiamo importare/esportare i dati formato CSV o JSON, o utilizzarli con API di Google Maps o Google Chart Tools Possiamo usarlo anche da Google Drive ● https://support.google.com/fusiontable
  • 13. Google Fusion Table In Google Drive abbiamo una webapp con cui potere creare la nostra tabella, visualizzare i dati, inserirli e modificali. Possiamo anche creare grafici e rappresentazioni su mappe dei nostri dai. Tutto questo partendo da Google Drive. Usando le API possiamo accedere dal nostro codice che possiamo sviluppare. Questo permettono di creare, modificare… la tabella , mentre per inserirmento/modifica/cancellazione... dei record si utilizza SQL-like queries https://developers.google.com/fusiontables/ https://google-api-client-libraries.appspot. com/documentation/fusiontables/v1/python/latest/index.html
  • 14. Google Fusion Table ● Vediamo come si crea una tabella FT sotto Drive ● ricavare ricavare ID del database FT. ● ID è indentificativo univoco della tabella e va indicato quando usciamo le API. :
  • 15. Google Fusion Table Per usare le API cosa dobbiamo sapere: ● Google Accounts Authentication and Authorization ○ Google+ Sing In provides a simple way to let people use their Google credentials to sign-in to your site. It includes a set of tools that are easy to integrate across different devices. ○ oAuth2 is an authorization protocol for all Google APIs. OAuth 2.0 relies on SSL for security instead of requiring your application to do cryptographic signing directly. This protocol allows your application to request access to data associated with a user's Google Account. ■ https://developers.google.com/accounts/docs/OAuth2 ○ https://developers.google.com/accounts/ OAuth2 fornisce un metodo ai client di accedere ai servizi del server (applicazione, database...) per conto del proprietario della risorsa. ● https://developers.google.com/api-client-library/python/guide/aaa_oauth ● http://oauth.net/2/ ● http://en.wikipedia.org/wiki/OAuth ● https://developers.google.com/oauthplayground/
  • 16. Google Fusion Table SQL (Structured Query Language) è un linguaggio standard per database basati sul modello relazionale (RDBMS) progettato per: ● creare e modificare schemi di database (DDL - Data Definition Language); ● inserire, modificare e gestire dati memorizzati (DML - Data Manipulation Language); ● interrogare i dati memorizzati (DQL - Data Query Language); ● creare e gestire strumenti di controllo ed accesso ai dati (DCL - Data Control Language). Nonostante il nome, non si tratta dunque solo di un semplice linguaggio di interrogazione, ma alcuni suoi sottoinsiemi si occupano della creazione, della gestione e dell'amministrazione del database. Fonte: http://it.wikipedia.org/wiki/SQL Links: ● Tutorial http://www.w3schools.com/sql/
  • 17. Google Fusion Table Il tool APIs Explorer permette di prendere conoscenza con le varie API di Google. ● https://developers.google.com/apis-explorer
  • 18. Google Fusion Table Python e OAuth2 Il tool APIs Explorer permette di prendere conoscenza con le varie API di Google avete visto che avete dovuto fare un click su OFF/ON per l’autorizzazione per usare le API di FT. Questo lo dovete fare anche dalla vostra applicazione. Vediamo come fare nel nostro caso che uscimo Python. Google mette a disposizione le Google APIs Client Library for Python ch e ne installiamo sulla nostra board come la Arduino Yùn Diamo un occhiata alla documentazione su https://developers.google.com/api-client-library/python/start/installation troviamo anche una gradevole sorpresa. Oltre alla descrizione su come funzionano queste API, abbiamo un tool che permette di: ● attivare le API per il servizio che ci serve ● preparaci i file di configurazione con per la oAuth e l’uso delle API del servizio richiesto.
  • 19. Google Fusion Table ● Scarichiamo sul nostro pc i file preparati dal tool. ● Prima di passarli sulla board, proviamo se funzionano in locale ed otteniamo i “file di autenticazione” ● se non avete Python 2.x installato, ora dove installarlo → http://python.org ● installiamo le Google API Python Client come indicato. ● decomprimere i due file in una cartella. ● dalla cartella che contengono i due file decompressi prima, eseguite ○ python sample.py
  • 20. Google Fusion Table ● viene aperto il browser e siete indirizzati alla pagina per autorizzare la vostra applicazione. ● l’applicazione una volta autorizzata salva le credenziali in un file locale chiamato sample.dat
  • 21. Arduino Yùn + Google API Python Client Torniamo sulla Yùn e dalla console Linux installiamo le Google API Python Client root@Arduino:~# opkg install distribute python-openssl root@Arduino:~# easy_install --upgrade google-api-python-client Ora che abbiamo installato la libreria delle API copiamo tutta la cartella dal nostro PC e proviamo: root@Arduino:/tmp/ft# python sample.py Success! Now add code here.
  • 22. Arduino Yùn + Google API Python Client tableid="ID_TABLE" Location="46.061663, 13.235883" dt = time.strftime("%Y-%m-%d %H:%M:%S") #update Fusion Tables service.query().sql(sql="INSERT INTO %s (Date,Location) VALUES ('%s','%s')" % (tableid,dt,Location)).execute()
  • 23. massimiliano@beaglebone:~$ cat contact.json { "Name":"Massimiliano D'Ambrosio", "G+":"google.com/+MassimilianoDAmbrosio", "Twitter":"@iv3unm", "HackLab Udine": { "Site":"www.hacklabudine.it", "G+":"plus.hacklabudine.it", "Twitter":"@hacklabudine", "memo":"unOfficial Community BeagleBone Italia" }, "Google Developer Group Udine": { "Site":"www.gdgudine.it", "G+":"plus.gdgudine.it", "Twitter":"@gdgudine" } } massimiliano@beaglebone:~$ sudo shutdown now [sudo] password for massimiliano: Broadcast message from root@beaglebone (pts/0) (Sat May 10 20:33:39 2014): The system is going down to maintenance mode NOW!