Heartbeat Monitor I should cut down on the energy drinks 2026-09-30 2 / 14 Heartbeat Monitor • Have you ever wanted to make something tangible using electronics? • Have you ever wondered how high your heart-rate is? • Do you want to make it go higher? We've got what you need !!! 3 / 14 Kits (give us your money) • We have 30 kits. • €22 per kit. ◦ Partly subsidized by us. • Each should have what you need to make a heartbeat monitor + more. • Contents: ◦ 1 x ESP32 C3 Super Mini (Microcontroller) ▪ Built-in Wi-Fi and Bluetooth ◦ 1 x MAX30102 (Heart-rate Monitor and Pulse Oximeter) ◦ 1 x USB-C to USB-A cable ◦ 1 x 1.3" OLED Screen ◦ 1 x Breadboard ◦ ~8 x Jumper Wires (I've already used up my weekly copper related joke) 4 / 14 What are these words??? • Microcontroller ◦ ESP32 C3 Super Mini is the one we will use today. ▪ You might recognize other ones such as Arduino Uno or Raspberry Pi Pico ◦ Kind of a computer, but small and cheap ▪ Has a CPU, RAM, and Input/Output • MAX30102 ◦ It's a heart-rate monitor and pulse oximeter in one single board ▪ Pulse Oximeter gets your blood-oxygen level ◦ Similar technology to what a smart-watch uses to measure your pulse 5 / 14 Contents Give us your money ─────────────────────────
1 x ESP32 C3 Super Mini 1 x MAX30102 1 x 1.3" OLED Screen • Some of us will go around 1 x Breadboard
selling the kits 8 x Jumper Wires
◦ We take card (and I think 1 x USB-C to USB-A cable
cash?) • €22 per kit. ◦ Partly subsidized by us • If you buy the kit you can take it home and use it for your own projects • We only have 30 kits overall v v v | NEXT WEDNESDAY'S EVENT | v v v • Powerpoint Night 2026-10-07 • Everyone is free to present on a 6 / 14
topic of choice Intro to Breadboards • Not for bread • All of your components have GPIO pins ◦ GPIO = General Purpose Input/Output ◦ Capable of transferring power and data • Your breadboard has holes in it for said GPIO pins and cables • Right 2 and left 2 columns are power rails ◦ Indicated by the red and blue lines ◦ Connected by columns ◦ Useless to us today, but may be useful another time • The rest of the holes are connected by rows ◦ There is a break in the middle ◦ Columns are lettered, rows are numbered ◦ This means if you put a wire in [row 21, column a] and another in [row 21, column e], they will be connected • Queue me putting up a visual example
7 / 14 https://www.losant.com/blog/how-to-use-a-breadboard 8 / 14 Pinouts • Shows you what each GPIO pin on a component corresponds to • Necessary when working with electronics • Easy to find for something unique (microcontrollers, branded boards etc.), harder for replicated components (screens, etc.) ◦ Try to match the components infront of you with those on the pinout if unsure • Use the QR codes below ◦ Alternatively browse for "$COMPONENT_NAME Pinout" 'MAX30102' Pinout + '1.3" OLED Display
'ESP32 C3 Super Mini' Details Screen' Pinout
Pinout qrencode qrencode
qrencode https://lastminuteen https://robu-prod-me
https://lastminuteen gineers.com/max30102 dia.s3.ap-south-1.am
gineers.com/esp32-c3 -pulse-oximeter-hear azonaws.com/uploads/
-super-mini-pinout-r t-rate-sensor-arduin 2019/12/1.3-Inch-I2C
eference/ -t o-tutorial/ -t -IIC-OLED-LCD-Module
ANSIUTF8 ANSIUTF8 -4pin-with-VCC-GND-B
lue-1.pdf -t
ANSIUTF8
snippet +exec_replace is snippet +exec_replace is 9 / 14
disabled, run with -X to disabled, run with -X to
Programming • I recommend you use 'Ardunio IDE v2'. ◦ You can use it to write your code and flash it to the board ◦ Linux, Windows, and MacOS support • You'll need to install some libraries ◦ 'Library Manager' can be found on the left-side of the IDE. Icon looks like a bunch of books ◦ Search and install the following (alongside dependencies if any): ▪ 'Sparkfun MAX3010x Pulse and Proximity Sensor Library' ▪ 'Adafruit SH110X' ▪ 'Adafruit GFX Library' ▪ 'Adafruit BusIO' • You'll also need to install the board package ◦ 'Board Manager' can be found on the left-side above 'Library Manager' ◦ Install the 'esp32' package ◦ Test: Plug the ESP32 into your laptop with the provided cable. ▪ You have to go to Tools > Board > esp32 > ESP32C3 Dev Board ▪ Make sure you have 'python3' installed before trying to upload code ▪ Feel free to look up sample code online to turn the LED on the ESP32 on and off ▪ Ask for assistance if it doesn't work ▪ If it's giving you permission denied errors when trying to upload code: 10 / 14 Wiring • Push your components' GPIO pins into the breadboard. DISCONNECT THE ESP32 FROM
POWER BEFOREHAND
◦ Each pin should have its own row ▪ Rows are the numbered ones ▪ Make sure the ESP32 and the MAX30102 are placed across the break in the middle • Connect pins between different components using your jumper wires ◦ Put one end of the wire on the same row as the 1st pin ◦ Make sure you connect to 3.3V and not 5V ▪ Some pinouts may be backwards. Also, 3.3V and 5V are labelled on the
board
◦ Do the same with the 2nd pin ◦ Follow the tables before ▪ If it's wired wrong, it won't work as intended ▪ If you need the pinout, just look it up using the names below (the display uses a SH1106 chip) ESP32 C3 Super Mini │ MAX30102 ESP32 C3 Super Mini │ 1.3" OLED
────────────────────┼───────── Display
3.3V │ VIN ────────────────────┼─────────────────
GND │ GND ─
GPIO 9 │ SCL 3.3V │ VOC
GPIO 8 │ SDA 11 / 14
GND │ GND PROGRAMMING TIME /* This code works with MAX30102 + 128x32 OLED i2c + Buzzer and
Arduino UNO
* It's displays the Average BPM on the screen, with an animation
and a buzzer sound
* everytime a heart pulse is detected
* It's a modified version of the HeartRate library example
* Refer to www.surtrtech.com for more details or SurtrTech
YouTube channel
*/
#include <Adafruit_GFX.h> //OLED libraries
#include <Adafruit_SH110X.h>
#include <Wire.h>
#include "MAX30105.h" //MAX3010x library
#include "heartRate.h" //Heart rate calculating
algorithm
MAX30105 particleSensor;
const byte RATE_SIZE = 4; //Increase this for more averaging. 4
is good.
byte rates[RATE_SIZE]; //Array of heart rates 12 / 14
byte rateSpot = 0;
Future Ideas Submit your ideas for future events using the below QR code! qrencode
https://nextcloud.skynet.ie/apps/forms/s/fqRQgx6bQPbPNwiN5A6QCQeQ
-t ANSIUTF8
snippet +exec_replace is disabled, run with -X to enable 13 / 14 Event Over?? • I am now going to let you guys do your own thing • Ping me on Discord (.bivol) if you need help • Depending on the availability of other committee members, you may either remain and continue working or leave. • Thanq all for attending!!! 14 / 14