Wearable Heart Beat Sensor ESP8266+Pulse Sensor
by yakirmalka in Circuits > Sensors
45106 Views, 46 Favorites, 0 Comments
Wearable Heart Beat Sensor ESP8266+Pulse Sensor
As part of a desire to learn about ESP8266 as standalone
I thought about a project to connect pulse sensor and transmit the BPM to the computer by TCP connection.
During the construction i came across some problems.
The problems by my opinion, will help some of you to build your next project.
Components
List of all components:
1. esp8266 (wifi transmmiter) any esp will be good, i am using esp8266-12.
http://www.banggood.com/ESP8266-ESP-201-Remote-Ser...
2. Pulse sensor: http://pulsesensor.com/
the sensor cost is 25$.
diy heart pulse sensor(cheap)
http://embedded-lab.com/blog/?p=5508
3. battery housing X2:
http://www.banggood.com/CR2032-2025-Half-Round-But...
4. 2 resistors : 4.7K,10K.
5. 1 - capacitor :
6. 1 voltage regulators:http://www.ebay.com/itm/QTY-15-MIC2940A-12BT-MICRE...
7. usb ttl for programming the esp http://www.banggood.com/New-Upgrade-PL2303HX-USB-T...
Programming Environment
Comfortable environment in my opinion is the best way to succeed in what you are trying to achieve.
i came accross few environment and tutorials (LUA script).
i didnt find any nice and easy environment until i found
"Arduino-compatible IDE with ESP8266 support".
https://github.com/esp8266/Arduino
all the data i was needed is ther with a loving and helping commuinty.
1. download the IDE. grab your copy
linux : https://github.com/esp8266/Arduino/releases/downlo...
windows : https://github.com/igrr/Arduino/releases/download/...
osx: https://github.com/esp8266/Arduino/releases/downlo...
calibrate your ide to burn the esp8266:
next STEP!
Prepare Your ESP to Burn Your Code
ESP8266 is a Heavy consumer of current and very sensitive to the input voltage.
To run it correctly you will need to provide him 3.3 v the current can be 250mAh max.
arduino will not provide him Enough current.
I recommend connecting it to the benefit of the trials and burn to a stabilized power supply or alternatively connect it through a voltage regulator.
minimal wiring for burn:
esp:
vcc - > stabilized power supply
ch_pd -> stabilized power supply (High)
GND-> usb ttl GND & stabilized power supply GND.
RX -> TX on usb ttl
TX -> RX on usb ttl
gpio0 -> GND
after your burn your ESP the minimal wiring needed is:
vcc-> stabilized power supply VCC OR battery with voltage regulator VCC/VOUT
ch_pd -> vcc
gnd -> stabilized power supply GND OR battery with voltage regulator GND.
GPIO15-> GND;
Pulse Sensor With Analog (adc) in ESP8266
the pulse sensor have analog output.
the output voltage is Depending on the Input voltage.
the pulse sensor input voltage range is 3-5 volt.
in this tutorial input voltage = 3.3 (connected to ESP vcc)
the output range is 0-3.3 volt.
ESP8266 ADC: (10bit value range 0-1024)
ESP8266 have 1 analog input, the problem is the range, Between 0-1 volt.
it cant damage your ESP to provide values between 0-3.3v but every pulse above 1 volt will be the same as 3 volt.
to fix that issue i will connect the sensor output to voltage divider to ensure the the max range will be 0-1 volt.
after i set the voltage divider i was getting wrong value/heart BPM.
the pulse was very Noisy and my code didnt understant if its noise or heart pulse.
i hade to add capacitor as low-Pass filter to decrease the noise.
How Its Work?!
the esp8266 can be standalone chip with wifi.
1. the esp is set to find Specific wifi router.
2. Connecting Success.
3.every 2ms a timer is taking sample from ADC(pulse sensor)
4.calculate BPM (the code for the calc is the original code from the pulse sensor website).
5. every 2 sec the bpm is sent via tcp/ip protocol to my_pc.
6.my pc is wating in port number 80 to recive the data from the esp.
7. my pc get avg bpm and show it.
Code.
CODE:
ESP CODE:
filename: wificlient.ino;
dont forget to set you ssid(routher name) & password
dont forget to your pc ip address.
heartBeat.rar
c# project, create tcp/ip server (port:80) and wait for the BPM from the esp.
heartBeat.exe
a runnig server that work without any think else (mabey .net if its missing from your pc)
note: to close the application click on the BPM number in black.