Heart Rate Monitor on ThingSpeak IoT Platform

0 18001 Medium

Heart beat monitoring system using Arduino that will detect the heart beat using the DFRobot's heart rate sensor.

Heart Rate Monitor on ThingSpeak IoT Platform

Things used in this project


Hardware components

1 DFRobot Arduino UNO Rev 3
1 DFRobot I/O Expansion Shield
1 DFRobot ESP8266 WiFi Bee
1 DFRobot Heart Rate Sensor Module

Software apps and online services


Arduino IDE


ThingSpeak API



In this project we are going to make a heart beat detection and onitoring system using Arduino that will detect the heart beat using the pulse sensor and will show the readings in BPM (Beats Per Minute). It will also send the readings to ThingSpeak server using the WiFi Bee module ESP8266, so that heart beats can be monitored from anywhere in the world over the internet. ThingSpeak is a great source for displaying the data online and you can access the data from ThingSpeak at any time and at any place.


Components Required




Arduino UNO Rev3I/O Expansion Shield for ArduinoHeart Rate SensorESP8266 WiFi Bee 

Software or online services:


Arduino IDEThingspeak API




Setting up the ThingSpeak


ThingSpeak.com Homepage


Working of ThingSpeak


ThingSpeak provides very good tool for IoT based projects. By using ThingSpeak site, we can monitor our data and control our system over the Internet, using the Channels and webpages provided by ThingSpeak. ThingSpeak ‘Collects’ the data from the sensors, ‘Analyze and Visualize’ the data and ‘Acts’ by triggering a reaction. We have previously used ThingSpeak in Weather station project using Raspberry Pi and using Arduino, check them to learn more about ThingSpeak. Here we are briefly explaining to use ThingSpeak for this beat detection and monitoring system. The ThingSpeak service is operated by MathWorks.


First of all, user needs to Create a Account on ThingSpeak.com, then Sign In and click on Get Started.After creating an account, go to channels and create a new channel. Now write the name of the Channel and name of the Fields. Also tick the check box for ‘Make Public’ option below in the form and finally Save the Channel. Now your new channel has been created. 

Creating the channel.


Creating the channel.


After this go to API keys and copy your Write API key. You will need this in the code. Check the Full Code at the end. 

Note the API Key of the channel.


Note the API Key of the channel.



Circuit and Explanation


ESP8266 WiFi Bee


WiFi Bee-ESP8266 is a Serial-to-WiFi module using XBee design in a compact size, compatible with XBee slot, applicable to a variety of 3.3V single-chip system. It can be used for Arduino, wireless data transfer, remote control. On-board switch can be used to easily select the Startup module or Upgrade firmware. ESP8266 arduino module has a powerful on-chip processing and storage capacity, built-in 32-bit processor, built-in Lwip protocol stack. Support AP+STA mode co-exist.


Heart Rate Sensor Module


The DFRobot heart rate sensor is a thumb-sized heart rate monitor designed for Arduino microcontrollers.

This heart rate monitor sensor is a pulse sensor which is developed based on PPG techniques. This is a simple and low-cost optical technique that can be used to detect blood volume changing in the microvascular bed of tissues. It is relatively easy to detect the pulsatile component of the cardiac cycle according to this theory.



The sensor has two holes that you can use to attach to your belt. You can wrap on your finger, wrist, earlobe or other areas where it has contact with your skin.


I/O Expansion Shield


To connect these components with the Arduino, we need the expansion shield which can connect them with the microcontroller with ease.




Stack the I/O Expansion Shield on the Arduino UNO.Take the Heart Rate Sensor Module and put the strap through the holes in the modules so that you can wrap on your finger, wrist, earlobe or other areas where it has contact with your skin.Connect the Heart Rate Sensor Module to A1 pin on the analog headers on the expansion shield. Mind the colors of headers to the wires, that is, red to red, etc.In the Wifi Bee slot on the shield, put the ESP8266 WiFi Bee.



Uploading and testing


Wrap the strap around your finger or wrist.Put the switch on the module to 'A' for analog mode.Now, upload the sketch for testing the module for the first time.Open serial plotter and wait for 5 seconds and stay calm.You will see the graph of the heart beats.Try to block the blood flow through using another hand.The graph line will become straight for some time and will come to normal stage as the blood finds way for circulation if all the capillaries aren't blocked properly. 



1. This product is NOT a professional medical device and should not be used to diagnose or treat medical conditions.


2. This sensor is designed to work when the user is not moving. If used while moving it will give inaccurate results.

Now, upload the main code to the Arduino. Remember to change the API key, SSID (WiFi name) and PASS (Password) for your project. Use the heart rate sensor on your self again. 

The ESP8266 will then communicate with the Arduino and will send the data to ThingSpeak. The ESP8266 will connect the network of your router that you will provide in the code and will send the data of the sensor online. This data on the ThingSpeak will be shown in a graph form showing the past readings too and can be accessed from anywhere over internet.

The article was first published in hackster, October 5, 2017

cr: https://www.hackster.io/techmirtz/heart-rate-monitor-on-thingspeak-iot-platform-4977a8

author: Naman Chauhan

All Rights