Qi En LoisMTJRVishwandhaltjovank
Published

Heart of The Hustle: Cardio Counts in Pull-Up

Lets make PE teachers' and students' life by making an all in one ID scanner, pull-up counter, and a heart rate measuring device!

IntermediateProtip11 hours127
Heart of The Hustle: Cardio Counts in Pull-Up

Things used in this project

Story

Read more

Schematics

Blocky Code

Blocky Code

Blocky Code

Blocky Code

Blocky Code

Blocky Code

Block Diagram

This is the block diagram that shows the components that are connected

Code

Python Code

Python
This is the python code that allows the program to work
from m5stack import *
from m5ui import *
from uiflow import *
import wifiCfg
import time
import urequests
import unit

setScreenColor(0x222222)
tof_1 = unit.get(unit.TOF, unit.PORTA)
rfid_1 = unit.get(unit.RFID, unit.PORTA)
heart_1 = unit.get(unit.HEART, unit.PORTA)
angle_2 = unit.get(unit.ANGLE, unit.PORTB)


number = None
distance = None
detected = None
count = None
Heartrate = None

wifiCfg.doConnect("Ur mom's eyebrows", 'addpasswordhere')

label0 = M5TextBox(0, 8, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label6 = M5TextBox(0, 78, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label7 = M5TextBox(0, 36, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label8 = M5TextBox(0, 162, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(0, 137, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label9 = M5TextBox(144, 112, "Distance", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(144, 36, "No. of pull ups", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(278, 36, "0", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label10 = M5TextBox(255, 111, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(144, 78, "Heart rate", lcd.FONT_Default, 0xf4f4f4, rotate=0)
circle0 = M5Circle(267, 162, 15, 0xFFFFFF, 0xFFFFFF)
label5 = M5TextBox(259, 78, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label11 = M5TextBox(46, 214, "=<2", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label12 = M5TextBox(123, 214, ">=3,=<5", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label13 = M5TextBox(233, 214, ">=6", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label14 = M5TextBox(46, 187, "Press A,B,C for No. of pull up", lcd.FONT_Default, 0xFFFFFF, rotate=0)

from numbers import Number



def buttonC_wasPressed():
  global number, distance, detected, count, Heartrate
  circle0.setBgColor(0xff99ff)
  wait_ms(500)
  try:
    req = urequests.request(method='GET', url='https://maker.ifttt.com/trigger/ESP32_GoogleSheets/with/key/bJIH8SMHtQtPQwMsUHGC40?value1=>=6')
    circle0.setBgColor(0x3366ff)
    wait_ms(500)
    circle0.setBgColor(0x999999)
  except:
    circle0.setBgColor(0xff0000)
  pass
btnC.wasPressed(buttonC_wasPressed)

def buttonA_wasPressed():
  global number, distance, detected, count, Heartrate
  circle0.setBgColor(0xff99ff)
  wait_ms(500)
  try:
    req = urequests.request(method='GET', url='https://maker.ifttt.com/trigger/ESP32_GoogleSheets/with/key/bJIH8SMHtQtPQwMsUHGC40?value1=<=2')
    circle0.setBgColor(0x3366ff)
    wait_ms(500)
    circle0.setBgColor(0x999999)
  except:
    circle0.setBgColor(0xff0000)
  pass
btnA.wasPressed(buttonA_wasPressed)

def buttonB_wasPressed():
  global number, distance, detected, count, Heartrate
  circle0.setBgColor(0xff99ff)
  wait_ms(500)
  try:
    req = urequests.request(method='GET', url='https://maker.ifttt.com/trigger/ESP32_GoogleSheets/with/key/bJIH8SMHtQtPQwMsUHGC40?value1=>=3,=<5')
    circle0.setBgColor(0x3366ff)
    wait_ms(500)
    circle0.setBgColor(0x999999)
  except:
    circle0.setBgColor(0xff0000)
  pass
btnB.wasPressed(buttonB_wasPressed)


if wifiCfg.wlan_sta.isconnected():
  circle0.setBgColor(0x33ff33)
detected = False
number = 0
while True:
  if (rfid_1.readUid()) == 'a491691945':
    label6.setText(str(rfid_1.readUid()))
    label7.setText('Jovan')
    label8.setText(str(angle_2.read()))
    Heartrate = heart_1.getHeartRate()
    label5.setText(str(Heartrate))
    if (angle_2.read()) == 1024:
      label1.setText('On')
      distance = (tof_1.distance) / 10
      label10.setText(str(distance))
      if distance <= 7:
        detected = True
      if distance > 10 and detected == True:
        detected = False
        number = (number if isinstance(number, Number) else 0) + 1
        label3.setText(str(number))
    else:
      label1.setText('Off')
  else:
    if rfid_1.isCardOn():
      label6.setText(str(rfid_1.readUid()))


label7.setText('New user')
      label8.setText(str(angle_2.read()))
      Heartrate = heart_1.getHeartRate()
      label5.setText(str(Heartrate))
      if (angle_2.read()) == 1024:
        label1.setText('On')
        distance = (tof_1.distance) / 10
        label10.setText(str(distance))
        if distance <= 7:
          detected = True
        if distance > 10 and detected == True:
          detected = False
          number = (number if isinstance(number, Number) else 0) + 1
          label3.setText(str(number))
      else:
        label1.setText('Off')
    else:
      label0.setText('Please tap a card')
  wait_ms(2)

Credits

Qi En Lois
1 project • 0 followers
Contact
MTJR
1 project • 0 followers
Contact
Vishwandh
1 project • 0 followers
Contact
altjovank
1 project • 0 followers
Contact

Comments

Please log in or sign up to comment.