Online Heart Rate Monitor Using NodeMCU and Cayenne




The background of this project is to monitoring human body heart rate and send an alert to email when heart rate above normal condition (in this case I set 200, because it's very noisy).

Will try to add something like capasitor to decrease the noise and make it wearable.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Bill of Materials

This the tools needed to do this project.

Hardware Required :

1. NodeMCU ESP-12E

2. Pulse Sensor

3. SSD1306 0.96 inch OLED Display

4. Jumper Cable

Software Required :

1. Arduino IDE

2. Cayenne for iOS/Android/Web Browser

3. Modified Pulse Sensor for ESP very big thanks to the creatore

4. Adafruit SSD1306 Library for Arduino

Step 2: Connecting NodeMCU to Pulse Sensor and OLED


3.3V____________ +_______________VCC

GND____________-_______________ GND

A0 _____________S_______________ Not Connected

D2_____________Not connected____SDA

D1_____________Not connected____ SCL

Note : If you use ESP8266 not NodeMCU don't try to direct connect signal from sensor to A0. You must add 2.2 KOhm beetwen Signal and A0, and 10KOhm beetwen A0 to GND.

Step 3: Upload Code to NodeMCU

In this step we will program the NodeMCU with Arduino IDE.

You need to import library from step two to make this code work.

Download two available file in this step

And then open ESP_OLED, edit your Cayenne token, SSID, password, and then connect your NodeMCU with USB Cable to your computer and upload the code to NodeMCU. Now your OLED should display something, this is the sign if your project worked. And now your NodeMCU is connected to Cayenne, but litlle step again to setting up Cayenne Dashboard that will display your BPM and give an alert if BPM to high.

Step 4: Setting Up Cayenne

Do this step on Cayenne :

  • Login to Cayenne Dashboard
  • Add graph custom widget from Cayenne Dashboard, and select Virtual Pin 13 that contain BPM value from NodeMCU.
  • Add triggers and set if widget value above the value as you need (in my case I set 200, but refer to many source on internet 160 is enough to give us alert) then Cayenne will send alert to email.

Be the First to Share


    • Instrument Contest

      Instrument Contest
    • Make it Glow Contest

      Make it Glow Contest
    • STEM Contest

      STEM Contest

    9 Discussions

    Karuppasamy NJunezRiyaz

    Reply 14 hours ago

    Bro,please help me complete my project.there are many problems occurs during compiling program.My project is online heart rate monitor using nodemcu .Please tell in step wise manner.please send it quickly


    12 months ago

    I'm sorry but the steps to build the project is not clear, also some libraries to build this project not described here.


    1 year ago

    please put clear steps to build the project


    1 year ago

    Ticker.h: No such file or directory


    Question 1 year ago on Step 3

    Can I have the code for the 7pin OLED display


    Question 1 year ago on Step 2

    I have OLED display with 7 pins. What should I do now?

    Yvanle terrible

    3 years ago

    Hello - should be good, but i'm stuck with the sketch not working :

    credential toke, ssid, and pwd filled, ...but....

    Instruction cayenne.begin activating "wdt reset" on my nodemcu (several boards tested)

    I can not find why. any clues ?