Arduino ProjectsESP32 ProjectsIOT Projects

ECG Monitoring system using AD8232 with Arduino or ESP32 IOT Based

Learn how to interface AD8232 ECG sensor module with Arduino or ESP 32 to monitor live Electro Cardio Gram graph over Internet and Bluetooth

In this Detailed tutorial we are going to explain how you can interface ECG sensor module (AD8232) with Arduino development board or ESP 32 Bluetooth and WiFi board to get the ECG(Electro Cardio Gram) of a person on the serial Plotter, or over the internet and Bluetooth connection with the help of ESP 32 and add few more sensors to build an IoT health monitoring system project .

Before getting started lets learn and clear the basic questions like

What is ECG and How the ECG sensor works?

What is ECG and how to check?


The EKG or ECG (Electrocardiogram) is a non-invasive diagnostic test that assesses heart rhythm and function through a recording of the electrical activity of the heart that occurs with each heartbeat. This electrical activity is recorded from the patient’s body surface and is drawn on a paper using a graphical representation or tracing, where different waves are observed that represent the electrical stimuli of the atria and ventricles. The device with which the electrocardiogram is obtained is called an electrocardiograph.

Also Read: Build Digital Thermometer using LM35 and Arduino

Features of AD8232 ECG sensor and its working principle

The AD8232 module allows recording  the electrical activity of the heart, by obtaining an electrocardiogram or ECG.

ECG sensor obtain signals from heart beats because electrical signals are transmitted through specific pathways within the heart, causing the heartbeat. This electrical activity can be collected through electrodes placed on the skin, specifically on the front of the chest, on the arms and legs.

The AD8232 sensor module is integrated with specially calibrated signal amplifiers and noise filters for ECG signals. The module suppresses the 60Hz noise generated by household electricity. As the output of the module is analog type, it is necessary to solder the header pins and connect the module to a microcontroller which has analog input pins like Arduino, ESP32, ESP8266 NodeMCU, or others. Within the program we must perform the analog to digital conversion, So we can observe the ECG on the Arduino IDE plotter.

It is recommended for patient safety to power the module using a battery and not from a source connected to the household power supply.

Note: This is not a medically certified device, so it should be used for experiments only and not for clinical use.

Related article: DIY Pulse Oximeter by interfacing MAX30100 sensor with Arduino

How to Read an ECG:

The normal rhythm of an ECG is formed by a P wave, a QRS complex and a T wave. To interpret an electrocardiogram, the presence of these waves, their shape and duration, as well as the ST segment (time that elapses between the end of depolarization and the beginning of repolarization of the ventricles, measures less than 1 mm, if it is greater than 1 mm it indicates infarction or ischemia).

ECG reading from wave formatThe P waves allow us to know the time between the heartbeats, it is represented as a straight line between the lowest and the highest point. The T wave represents the small perceptible beat after the first and marks the end of the heartbeat. The time elapsed between one and the other must be fairly regular throughout the entire test, if on the contrary, during the test we see that the elapsed time is variable, this indicates an irregularity in the heartbeat.

Required Components(Bill of Materials):

Now lets take a look at what are the components required for this project.

Product NameQuantityamazon logoamazon logo india
AD8232 ECG sensor Module Kit1
Arduino Uno development Board (Method 1)1
ESP 32 WiFi and Bluetooth Board (Method 2 only)(IOT)1
Few Connecting Wires
You can buy the required components from the given best buy links. We choose the components according to value for money.

AD8232 Pinout Diagram:

AD8232 ecg sensor Pinout Diagram

For more details about this sensor, refer to the detailed Datasheet here.  AD8232 Datasheet

Technical Specifications of ECG sensor

  • Analog type output
  • Operating voltage: 3.3V DC
  • Low current consumption: 170 uA
  • Noise rejection at 60Hz: 80dB
  • High gain (G = 100), with DC current blocking
  • Integrated Right Leg Amplifier (RLD)
  • RFI filtering
  • Shutdown pin
  • Electrode input: Mini Plug 3.5mm
  • Configurations: 2 or 3 electrodes

We are interfacing the components in 3 methods to show the ECG graph on

  • Serial Plotter, 
  • Over Bluetooth and
  • Over the internet.

So you can choose the development board according to the requirement.

Method 1:  Interfacing AD8232 ECG sensor with Arduino to show the graph on Serial plotter

In this method we are connecting ECG sensor to Arduino with the help of few connecting wire as shown in the below Schematic diagram.

circuit diagram of interfacing ad8232 with arduinoAs per the above connection diagram the sensor just has the hole pads, so we need to solder wires to it. The best practice is to solder headers on the board. so, you can use it bread board or with female jumper wires.

Here we connected the 3.3v & GND for sensor to 3.3v &GND of Arduino respectively, OUTPUT pin of sensor to A0 of Arduino and Finally LO- & LO+ are connected to 11 & 10 respectively.

Sensor electrode plate placement on human body

ecg sensor placementsHere it is mandatory to place the sensor adhesive electrode pads as shown in the above image, the colored cables will help you to identify where to place. How closer the pads are to the heart that better the measurements we get.

Next step is to upload the code to the Arduino to make it work. Below are the two codes where one is to display the raw Analog input from sensor, and another one uses Processing IDE.

Source Code for Arduino Serial Plotter:

After uploading the code to Arduino, Open serial plotter at baud rate 9600 to view the ECG as shown below.

Serial plotter Showing ECG as output

Source code for Processing IDE.

Code for ECG graph for Arduino on Processing IDE

If you get an error using the above code edit the below line at line 50. where [2]  is COM port number replace it with the port number of the Arduino connected to your PC.

After Uploading the code the output will be shown as below image.

processing ide ecg using arduino and ecg sensor

Method 2: Interfacing AD8232 ECG sensor with ESP32 to show the graph over Bluetooth on a Android Mobile.

In this method we are connecting the AD8232 Sensor with ESP32 Wi-Fi and Bluetooth development board to get the ECG graph over Bluetooth with the help of Bluetooth Terminal/Graphics android application found in GooglePlay store.

ESP32 Pinout:

ESP 32 pinout diagram

Now Connect the ESP32 with sensor as shown in the below Schematic diagram.

Circuit diagram for interfacing ESP 32 and AD8232 Sensor for Bluetooth connection

interfacing ad8232 with esp32 circuit diagramAs per the above connection diagram, we connected 3.3v & GND of sensor to 3.3v &GND of ESP32 respectively, OUTPUT pin of sensor to VP(A0)(pin5) of ESP32 and Finally LO- & LO+ are connected to pin40(RX0) & pin41(TX0) respectively.

After connecting upload the below code:

Source Code for Graph over Bluetooth:

After uploading download the Bluetooth Terminal/Graphics android application found in GooglePlay store.

Download: link

After downloading open the application and click on side menu and choose connect to device and select “ESP32_ECG”. As you select the device will be connect to application and the ECG graph is shown as the below image.

ecg monitor over bluetooth esp32

Method 3: Interfacing AD8232 ECG sensor with ESP32 to show the graph over Internet.

In this method, learn how to connect the ESP32 with ECG sensor and display the data i.e, ECG graph over internet and can be seen live from anywhere around the world. Here you can use any IOT cloud platforms like Blynk, Thingsboard, Ubidots, AWS, Google cloud. the only technique is to send the data to them using there respective syntax codes.

Before using these you need to keep in mind that as this is over internet there would be small latency delays from device to the cloud to display the data on the graph.

Now connect the Boards ESP32 and ECG sensor as shown in the below Schematic diagram.

Circuit Diagram for data over internet.

interfacing ad8232 with esp32 circuit diagram over internet

In this example we are going to use UbiDots cloud platform to display data over internet.

Now upload the below code and edit few lines of code to change few parameters listed below

  • #define WIFISSID “your wifi name” // Put your WifiSSID here
  • #define PASSWORD “your wifi password” // Put your wifi password here
  • #define TOKEN “your token” // Put your Ubidots’ TOKEN
  • #define MQTT_CLIENT_NAME “1234a5d6798” // MQTT client Name, 

Source Code:

If you get any error regarding PubSubClient update the library from this download link.

After uploading the above code to ESP32 Open UbiDots and login or create a new account to open the dashboard.

after opening

  • click on the “+” sign located at the top right screen to create a new widget.
  • Select  line chart from the widgets
  • Select the variable desired to display the data. Ubidots allows you to customize name, color, period of data to be displayed and much more.
  • After choosing click the green tick mark
  • Select the device and sensor. that’s it

steps procedure ecg ubidotssteps procedure ecg ubidots1After all the setup the line chart will show the ECG graph like below image.

CircuitSchools Staff

We at CircuitSchools publish on basics of electronics and electric components and everything related to evolution of electrical technology with complete analysis of development boards and modules along with latest projects with innovative ideas.

Related Articles


  1. hi can i connect bme280, max30100, ds18b20 and ad8232 all together and display in blutooth app if possible make a video or website with code and app. thank you.

  2. I am trying to do Method 1 but with ESP 32 with 30 pins. But can’t get a decent ECG signal. Can you please help?

  3. Hi I need to get ECG recordings from 3 electrodes using Arduino and AD8232 .I need to compare the output with the original ECG signals to calculate HR,HRV etc., Can u share with me the coding to do so and the procedure how to take the scale readings of the signals obtained.

  4. With serial plotter on PC, in the version with esp32 and bluetooth, the time base is too small, so only 3 pulses appear on the screen. How can I make more pulses appear on the serial plotter?
    Thanks !

Leave a Reply

Your email address will not be published.

Back to top button