smart health & arduino

20
Smart Health Arduino &

Upload: lorenzo-travagliati

Post on 26-Jan-2017

170 views

Category:

Healthcare


0 download

TRANSCRIPT

Smart HealthArduino &

1.problem

andopportunity

1.5 billionsof elders expected in 2050

257.3 billionsdollars of healthcare costs only for the U.S. market

22%They will correspond to the

of the worldwide population

But there are also a large number of non-elder people committed tohospitals for chronicdiseases

▣ diabetes▣ renal failures▣ cardiovascular diseases

Healthcare IoTMonitoring a patient’s therapy can drastically

reduce the social cost for the medical treatments

How?

Arduino!▣ Good for prototyping▣ Affordable▣ Easy to program▣ Extendable in functionalities (i.e. Arduino

Shields)

Prepared kits for health monitoring

e-Health Sensor Platform V1.0 for Arduino

Homemade solutions:

Heart-Rate monitoring and graphic visualization via Processing.

Requirements:

▣ 2 RC Filters▣ 1 IR Led Emitter▣ 1 IR Led Receiver▣ LM386 Amplifier

Homemade solutions:

Blood Pressure Monitor.

Requirements:

▣ Arduino LCD▣ Pressure Transducer▣ Air Pump▣ Plastic Tubing▣ TL072 Op Amp▣ 1 RC Filter

The process of thinking with the IoT paradigm in mind, lead us to revolutionary devices that will affectthousands of people’s quality life

▣ Portable dialysis machine▣ Constant pacemaker monitoring▣ Drug adherence monitoring▣ …

2.Bloomia

A Smart PillBox

Bloomia goal was to improve the adherence to medical treatments.

USERS

The elders and people with long term medical prescriptions.

CUSTOMERS

Elder’s relatives, doctors or caregivers.

USAGEThe caregiver loads the weekly dose of the medicine the elders will take. A wearable devices notify the patient when it’s time to take the medicines.

Overviewon thesystemstructure

Low EnergyBluetooth

GSM/GPRSArduino Shield

Internet

A look on the GPRS connection

void gsmConnect(){

// Start GSM shield

// If your SIM has PIN, pass it as a parameter of begin() in quotes

while(notConnected)

{

Serial.println("GSM: trying to connect...");

if((gsmAccess.begin()==GSM_READY) &

(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))

notConnected = false;

else

{

Serial.println("Failed");

delay(1000);

}

}

Serial.println("GSM: connected");

}

#include <GSM.h>

#include <Time.h>

#include <EEPROM.h>

#include "schedules.h"

A look on the GPRS connection

bool getGsmTime(time_t &time){

Serial.println("Getting time...");

// format yy/MM/dd,hh:mm:ss+zz

char date[20];

theGSM3ShieldV1ModemCore.genericCommand_rqc("AT+CCLK?", true);

delay(200);

bool ret = theGSM3ShieldV1ModemCore.theBuffer().extractSubstring("+CCLK: \"",

"\"", date, 20);

if(!ret) return ret;

tmElements_t tmElem;

tmElem.Year = (ctoui(date[0]) * 10) + ctoui(date[1]) + MILLENNIUM_OFFSET;

tmElem.Month = (ctoui(date[3]) * 10) + ctoui(date[4]);

tmElem.Day = (ctoui(date[6]) * 10) + ctoui(date[7]);

tmElem.Hour = (ctoui(date[9]) * 10) + ctoui(date[10]);

tmElem.Minute = (ctoui(date[12]) * 10) + ctoui(date[13]);

tmElem.Second = (ctoui(date[15]) * 10) + ctoui(date[16]);

time = makeTime(tmElem);

return ret;

}

#include <GSM.h>

#include <Time.h>

#include <EEPROM.h>

#include "schedules.h"

Load datas from EEPROM

void loadWeekSch(){

uint8_t size;

EEPROM.get(EEPROM_DOSES_NUM, size);

Serial.print("Doses number retrieved from EEPROM: "); Serial.println(size);

Serial.print("Retrieving doses from EEPROM...");

doses = fetchDoses(size, EEPROM_DOSES_ARR);

Serial.println(" OK");

//Do stuff with the loaded data

}

doseNode_t* fetchDoses(uint8_t num, int addr){

doseNode_t* doseNodes = (doseNode_t*) calloc(num, sizeof(doseNode_t));

//fetch doses from EEPROM to ram

int p = addr;

for(int i=0; i<num; i++){

EEPROM.get(p, doseNodes[i].dose);

doseNodes[i].next = NULL;

p += sizeof(dose_t);

}

return doseNodes;

}

#include <GSM.h>

#include <Time.h>

#include <EEPROM.h>

#include "schedules.h"

ARDUINO LIMITS

Low CPU speed (16 MHz on the Arduino UNO), low internal clock accuracy due to the crystal oscillator and short memory usability.

SECURITY

Secure connections, privacy issues.

Development limits and difficulties

ROYALTIES!

Usage of wearable devices to monitor health parameters may require the payment of royalties to the producer. Consider the possibilities to produce your own device.

(e.g. Lifelog APIs)

HARDWARE LIMITS

Cheap hardware can lead to several problems in the development (even more problems if datasheet are not provided!).

ACCESS

ISO QUALITY STANDARDS

Requirements for a quality management system that can be used by an organization involved in one or more stages of the life-cycle of a medical device, including design and development, production, storage and distribution, installation, servicing and final decommissioning and disposal of medical devices, and design and development, or provision of associated activities (e.g. technical support).

ISO 13485:2016