IoT Heart Rate Monitoring with ThingSpeak Platform

IoT Heart Rate Monitoring with ThingSpeak Platform

In the IoT Heart Rate Monitoring with ThingSpeak Platform tutorial, we set up the heart rate sensor or pulse sensor using a Wi-Fi board that uses the ESP32 chip. We then transfer the information received from the sensor to the IoT platform. Of course, you have often seen connecting this sensor with different boards, including Arduino. But this project is different from other examples. In this project, using the ESP32 board and the Wi-Fi capability of this chip, we will display all the output values ​​in the IoT platform called ThingSpeak.

Materials Required

ThingSpeak Platform

To monitor and store data in the Internet of Things, we must use the appropriate platform. The ThingSpeak platform is one of the best open source IoT platform. It uses API for storing and retrieving information via HTTP and MQTT protocols over the Internet or over a local area network. The ThingSpeak platform allows you to collect, store and analyze sensor data. Also, using the features available in the IoT dashboard of this site, we can draw graphs based on the values ​​obtained. ThingSpeak is an IoT analysis platform service which gives you option to create your own dash boards. It also allows you to collect, visualize, and analyze live data streams. You can send data to ThingSpeak from your IoT devices and it can be customized to trigger alerts using different web services.

Wi-Fi board ESP32

ESP32 module

We must use Wi-Fi boards in IoT projects. In the heart rate monitoring project , we use the Nodemcu ESP32 board. When we talk about ESP32 boards, we are talking about lower power consumption, better processing power, up-to-date technology, a new generation of WIFI chips that followed the previous generation, the ESP8266. It also supports Bluetooth in addition to WIFI. Auxiliary boards for this chip include NodeMCU and ESP32-CAM. This chip is produced in three types: wroom, wrover and solo.


In the heart rate monitoring project , we used an IoT platform called ThingSpeak. This platform allows us to build a dashboard with the ability to monitor the  values coming from different IoT hardware. And in this project, using this feature, we will measure the heart rate of a person using a relevant sensor and display it as a graph on this dashboard. In this project we have used a pulse sensor. Just place the sensor on the surface of the skin or you can also place a finger on top of this sensor to get the values.

IoT Heart Rate Monitoring with ThingSpeak Platform

Required libraries

To launch the heart rate monitoring project, we first install the PulseSensor and ThingSpeak reference libraries in the Arduino IDE software. Follow these steps:

  • Go to  Sketch  ->  Include Library  ->  Manage Libraries
  • Search for PulseSensor and ThingSpeak

Installing Thingspeak library

Setting Up ThingSpeak Dashboard

This section we are going to create a account in ThingSpeak portal. First go to  and create a new account, then in the Channels section and then, like the image below New Channel, create a channel.

IoT Heart Rate Monitoring with ThingSpeak Platform

Next you will see a page like the one below, fill in the name and description information as desired and select the save channel option at the bottom of the page.

IoT Heart Rate Monitoring with ThingSpeak Platform

Now your Channel is created and it will also display the Channel ID. Keep a note of this channel ID somewhere. It will contain a chart when your channel is ready. Along with this chart lets add widgets to it. Click on Add Widgets

Now enter the details as shown below in widget parameter and click on create.

IoT Heart Rate Monitoring with ThingSpeak Platform

Now we will select Gauge to display the data. So select gauge and click on next.

IoT Heart Rate Monitoring with ThingSpeak Platform

Here you will see the received values from your hardware. You can also add custom elements to display values ​​using the Add Widgets option. Now we have completed the configuration of ThingSpeak channel.

Suggested Reading

ThingSpeak API Keys

In the API keys section and in the box specified, you can find the API required for the project, we will use this API below. This will be a alphanumeric key which will be shown.

IoT Heart Rate Monitoring with ThingSpeak Platform


In this project, we have used only the heart rate sensor and ESP32 board, which can be set up only by connecting the Signal pin from the heart rate sensor to pin D32 to the ESP32 board.

IoT Heart Rate Monitoring with ThingSpeak Platform

Code Analysis

In this project, as mentioned earlier and the necessary training was given, we use the PulseSensorPlayground and ThingSpeak libraries. In this code, we will first display the values ​​received from the heart rate module in the monitor serial and then send the values ​​to the ThingSpeak servers. In this part of the tutorial, we will review parts of the code of this tutorial, in the first section, we will call the libraries.

#include <PulseSensorPlayground.h>
#include <WiFi.h>
#include <ThingSpeak.h>

In the following, we enter the information of the Wi-Fi network to connect the ESP32 board to the Internet.

const char ssid[] = "Your Network SSID";
const char password[] = "Your Wi-Fi password";

In this section, enter the channel ID created. This ID is displayed in the information section of each channel in Thingspeak.

const long CHANNEL = Your ThingSpeak Channel ID;

In the previous steps, you saw the API tutorial. In this step, enter this API in this section.

const char *WRITE_API = "WRITE API KEY";
In this line we receive the pulse values ​​from the pulse sensor.

Complete Code

You can download the complete code from the link below and upload it using Arduino IDE. For uploading the code in ESP32 you can refer to the article below

How to upload code in ESP32 using Arduino IDE

Construction & Testing

We have connected the sensor with ESP32 dev board as per the connection diagram. Once we power up the hardware and keep the finger on top of the sensor, it starts capturing and sending the data to IoT platform.

IoT Heart Rate Monitoring with ThingSpeak Platform

It shows the heart rate pulse data in a chart and also in a Gauge.

IoT Heart Rate Monitoring with ThingSpeak Platform

We can also see the graphical plotting of the heart beat in Arduino Serial Plotter.

IoT Heart Rate Monitoring with ThingSpeak Platform

Leave a Comment