arduino - massimiliano d'ambrosio

23
Streaming LIVE Massimiliano D’Ambrosio google.com/+MassimilianoDAmbrosio @iv3unm plus.hacklabudine.it (Community BBB Italia) plus.gdgudine.it Arduino e sensori in ambito medico

Upload: firenze-gtug

Post on 07-Nov-2014

343 views

Category:

Technology


0 download

DESCRIPTION

Arduino - Massimiliano D'Ambrosio 05/07/2014 - Outlet dell'elettronica Cecina GDG Firenze

TRANSCRIPT

Page 1: Arduino - Massimiliano D'Ambrosio

Streaming LIVE

Massimiliano D’Ambrosiogoogle.com/[email protected](Community BBB Italia)plus.gdgudine.it

Arduino e sensori in ambito medico

Page 2: Arduino - Massimiliano D'Ambrosio

Arduino e sensori in ambito medico

Page 3: Arduino - Massimiliano D'Ambrosio

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)

Page 4: Arduino - Massimiliano D'Ambrosio

e-Health Sensor Platform V2.0 by Cooking Hacks

Page 5: Arduino - Massimiliano D'Ambrosio

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 dellahttp://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical

Page 6: Arduino - Massimiliano D'Ambrosio

Arduino Yùn

Page 7: Arduino - Massimiliano D'Ambrosio

Arduino YùnAVR 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 embeddedhttp://arduino.

cc/en/Main/ArduinoBoardYun

Page 8: Arduino - Massimiliano D'Ambrosio

Arduino YùnLinux 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 embeddedhttp://arduino.

cc/en/Main/ArduinoBoardYun

Page 9: Arduino - Massimiliano D'Ambrosio

Arduino Yùn

Page 10: Arduino - Massimiliano D'Ambrosio

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

Page 11: Arduino - Massimiliano D'Ambrosio

Google Fusion Table API

Page 12: Arduino - Massimiliano D'Ambrosio

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 ToolsPossiamo usarlo anche da Google Drive

● https://support.google.com/fusiontable

Page 13: Arduino - Massimiliano D'Ambrosio

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

Page 14: Arduino - Massimiliano D'Ambrosio

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.:

Page 15: Arduino - Massimiliano D'Ambrosio

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/

Page 16: Arduino - Massimiliano D'Ambrosio

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/

Page 17: Arduino - Massimiliano D'Ambrosio

Google Fusion Table

Il tool APIs Explorer permette di prendere conoscenza con le varie API di Google.

● https://developers.google.com/apis-explorer

Page 18: Arduino - Massimiliano D'Ambrosio

Google Fusion Table

Python e OAuth2Il tool APIs Explorer permette di prendere conoscenza con le varie API di Googleavete 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ùnDiamo 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.

Page 19: Arduino - Massimiliano D'Ambrosio

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

Page 20: Arduino - Massimiliano D'Ambrosio

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

Page 21: Arduino - Massimiliano D'Ambrosio

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.

Page 22: Arduino - Massimiliano D'Ambrosio

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()

Page 23: Arduino - Massimiliano D'Ambrosio

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!