My Cart

How To: Acquire physiological signals and measure stress with e-Health Sensor PlatformAugust 5, 2013

This article was developed in the course of a little project in FabLab Pisa. The system described here was called OpenPhysio and is commonly used by FACETeam for the analysis of affective-emotional interaction between humans and robots.


The stress of a person can be estimated through the analysis of parameters related to the heartbeat and the dermal conductance. These signals can now be captured using simple sensors and acquisition platform open source as Arduino.

This kind of system could allow to detect a stress index of subjects that will interact simply by placing his hands on suitable contact points. Imagine your alarm clock when you go to set the system clock tell if you are stressed or not and maybe make you sleep 10 minutes more... (if you do not have to go to work...)

Today we will see how to realize a simple system based on Arduino for reading physiological signals useful to the analysis of the stress level of a subject. We'll also see how to analyze the data acquired with open systems!


Arduino: UNO, Diecimila, duemilanove...

e-Health sensor platform: electronic board that allows the real-time acquisition of physiological data from nine different sensors connected to a person. In this case we have used only two sensors: sensor ECG and GSR sensor. Thanks to these signals is possible to derive the parameters related to the degree of stress of the patient.

ECG sensor: allows to derive the electrocardiogram of the patient. With this system, it is possible to measure the electrical functionality and muscle of the heart. This sensor consists of three electrodes, two of them is measured between the potential difference (positive and negative electrode) and the third acts as a reference (neutral).


From the analysis of the e-health, we noted that the measurement of ECG and GSR creates problems of electrical interference; we decided to use only 2 electrodes then: the positive electrode and the negative..

elettrodi ecg

GSR sensor: measures the electrical conductance of the skin between two points. As you can see from the sensor consists of two electrodes, one is placed on the index finger and on the other the average of the non-dominant hand.

gsr sensor

E-Health sensor by cooking-hacks

What to do

The e-Health platform, equipped with the two sensors must be connected to the Arduino board as a common shield for Arduino (e-Health can also be used with Raspberry PI). This board must be connected to the PC, via USB, and you must verify the correct communication through the serial port.

Firmware ArduinoĀ Arduino_EHealth_ECG_GSR

It is necessary to connect the sensors to the e-health platform as indicated in the documentation and in the figure. In our case the electrode N has not been connected.

The two sensors ECG and GSR can not acquire signals simultaneously when used as described in the card documentation e-Health as they affect one another. As you can see from the graphs, the GSR signal if purchased alone is of good quality (block left of the image), but if you connect the three electrodes of the 'ECG, the signal is noisy, but especially the GSR signal is fixed to zero (central block of the image below). If you acquire the ECG signal by itself this is of good quality. (right side of image).

Note: If only served to acquire the ECG signal is recommended to use the three-channel configuration suggested by cooking-hacks, reconnecting the electrodes N.


Instead acquiring the signals without connecting the neutral electrode, it is possible to measure an ECG signal quite noisy (the central block of the image), but can be used for the purpose of extracting the heart rate. The signal conductance dermal turns instead of good quality.


To analyze the data acquired by the sensors must be saved in a. Txt file and import them into Matlab. In this case was used the serial terminal Putty which allows the direct loging file on the data received through the serial port.


In the figure is shown the result of the analysis.


The dermal conductance can be processed instead importing data in LedaLab free software based on Matlab that allows the extraction of various features from the signal GSR.

Via and Source: FabLab Pisa

6 thoughts on “How To: Acquire physiological signals and measure stress with e-Health Sensor Platform”

  • Lee

    Hello, I don't see any clear ECG signal in the plot you've shown.

    The x axis says it's in units of milliseconds, and it shows maybe 200-300 "pulses" per millisecond. Or maybe that's just noise. In any case, I see no useful ECG signal,..... even in "ECG only" mode

  • Cooking Hacks

    Hello Lee,

    Please visit our Forum. You can post all your questions there..

    Sorry for the delay answering, we didnt notice your comment until today!


  • Abu Ali

    we need the code ehealth sensors for processing for all
    we are students, and we have about this development project project
    Thank you very much
    can u send it to my e mail please

  • SonjaHermann

    Excellent post however , I was wanting to know if you could write a litte more on this topic? I'd be very grateful if you could elaborate a little bit more. Many thanks!

Leave a Reply