E-Health Glove detects all your body vitals through various sensors interfaced to it and displays the readings on the a small LCD display on the glove. The glove also logs all the data onto Intel's IoT Dashboard. The idea of this project was to design a device through which your doctor can analyze your body vitals remotely. Although today's ambulances are very well advanced, we came up with a cheaper solution to monitor body vitals even before the ambulance reaches the patient and can be used even in the ambulance so that the doctor will be informed about the patient's condition for better treatment.
Step 1: Edison and Libelium Kit Board and Sensor Setup
We used the Intel Edison Kit (which is Galileo-2 and Arduino compatible) and E-Health's Libelium Kit. We interfaced sensors like Temperature sensor, Heart Rate sensor, Pressure sensor, and SPO2 sensor to the board.
Sensor data was pushed onto Intel's Analytics Dashboard for viewing in real time. We were able to show real time data captured by the glove which can be viewed and analysed. For example, the attached images show variations in body temperature over time charted in real time.
socket.io was used to create client-server communication platform.
temp.js, contains code used to read data from the temperature sensor connected to the board. Other mathematical calculations and conversions can be referenced from main.js. The touch sensor, buzzer, and LED were also hooked up to the board.
Step 2: Analytics Dashboard Setup and Data Logging (Power of Analytics)
The software modules used at the hackathon is available at GitHub
Once you have your device added to your account, you'll need to define in the Dashboard what sensors you're going to be using with your Edison.
This is done under the Account > Catalog tab on Dashboard.
There are a few there by default, but of course you'll be adding more. I'll add be adding another Pushbutton component named "button2".
Click "Add Component" on the catalog page and fill in the info page that comes up (shown in my second picture). It's fairly straightforward, but here's a few things I've found so far: --- Booleans aren't displayed on a graph as well as numbers (if at all), but you can easily use them for buttons and some other sensors - it depends on their purpose which one you choose. --- You'll need the name of the component in the command line later, so try not to use_spaces.
Now to get into the Edison itself.
Assuming you've registered your device, from the command line you can run iotkit-admin catalog to get a list of all the components you have registered under your account. You should see the one you've just added somewhere in the list.
You can also use iotkit-admin components to see which components of the catalog are actually being used in your device.
At this point the component you've just added probably isn't in the components list, so type iotkit-admin register where is the name you used in the last step to add the component to the catalog, and is the name that comes up on the Dashboard's catalog screen. If this last part worked the new component should now show up in the device's components list.
Note that using a 3rd party login service to create your account in the Analytics Dashboard will not work. You will need to create an entirely new account for yourself on the Dashboard.
Step 3: Essential Hacks...
- Sandwich the Edison breakout board between the main board and the libelium breakout board. They are pin compatible. This is a simple hardware hack... but did require some guts on our part to do it in the heat of the hackathon to use both the Groove it sensors and the libelium kit sensors.
- Make sure the clock in Edison is synced with the clock on your development PC/laptop. Otherwise, the time-stamps of your data points will go haywire. Sometimes, data is not sent to the Analytics Dashboard if the time-stamps are wrong!
- Do not use a 3rd party login service on the Dashboard. The APIs provided in the iot-admin-kit will not be able to authenticate you when using a 3rd party service. Create a new login id and password on the Dashboard and use its credentials when sending data.
- If using the Intel provided sample REST APIs to push data to the Dashboard, you will have delete and create the device id for each NEW session. This is probably a bug/limitation in the sample code and should be a quick software fix.
(The above hacks were needed in the hackthon in Nov 2014. Some may not be necessary if you are replicating the project with newer versions of hardware/software)
Happy hacking :)