Remote Heart Rate and Blood Oxygen Detector

This project was done by Radu-George Dumitru. ACES 2021


This project's goal is to implement a fully-functional heart rate and blood oxygen detector, using the GY-MAX30100 pulse oximeter, and the ESP-WROOM-32 microcontroller. This project is done through the Arduino IDE. The data coming from the sensor can be observed both through the serial monitor available through Arduino, but also through a local web server, using Wi-Fi.

Hardware Bill of Materials

  • ESP-WROOM-32 microcontroller with Bluetooth and Wi-Fi.
  • GY-MAX30100 Pulse Oximeter.
  • Wires, breadboard and a micro-USB cable.

Schematic & Breadboard implementation

 Schematic of the project

  • This is the schematic representative of the circuit implemented.

 Breadboard implementation of the project

  • This is the breadboard implementation of the project.

 Breadboard implementation of the project

  • In this photo we can see the physical implementation of the circuit in the proximity of South Africa.

Software implementation

 Software results

  • Above we can see the real-time readouts of the pulse oximeter sensor through the web server.

This project transmits the sensor information through the Wi-Fi module implemented inside the microcontroller. It needs access to a Wi-Fi connection, and the credentials are hardcoded in Arduino. The Wi-Fi connection itself is done through the WiFi.h header library, which tries to connect the microcontroller with the credentials provided.

Once connected to Wi-Fi, the program sends the data to the web server though the WebServer.h library, which is responsible for HTTP requests. In order to view the data, I created an HTML page using Aynchronous JavaScript and XML (AJAX). Using this language, it is possible to update values asynchronously, without the need of refreshing the whole page.

Problems encountered

Even though this project seems pretty simple in hardware terms, the hardware itself was a nightmare to deal with. I initially ordered a variant of the GY-MAX30100, namely RCWL-0530 MAX30100, but when I tried to route it to the microcontroller, it failed to connect. While reading online, I came across this article, which outlined the problem with the sensor that I had. Because of this, I would be required to remove three resistors from its surface, or buy its variant, which I ultimately had to do. This sensor ultimately had no problems, and I managed to work through the project just fine.


Seeing the sensor do its job and present data as advertised is something of great impact. Not only do you see real life sensors come into play, but you also have the opportunity to interact directly with them. This project was a window of opportunity for me to delve deeper into the IoT world. Already working for clients in the IoT space, it was an opportunity to get more hands-on work with the actual sensors themselves, and this was a satisfying experience.

iothings/proiecte/2021/remote-heart-rate-and-blood-oxygen-detector.txt · Last modified: 2022/01/28 10:51 by radu_george.dumitru
CC Attribution-Share Alike 3.0 Unported Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0