Streaming LIVE
Massimiliano D’Ambrosiogoogle.com/[email protected](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 dellahttp://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical
Arduino Yùn
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
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
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 ToolsPossiamo 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 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.
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!