DIY Smart Push-Up Counter

Job ID: 40545654

Budget: $250 – $750 USD

I want to build a pocket-sized fitness sensor that I can stick onto any wall—wood or metal—and have it automatically count push-ups or pull-ups, then send those numbers to my phone so they’re stored in an app.

You’ll guide me from zero to working prototype: choosing readily available parts at my local tech store, wiring everything up, flashing the code, and testing. I prefer an ultrasonic sensor for rep detection, so please base the design around that. Keep the parts list inexpensive and compact; an Arduino-class board or a tiny ESP32 is fine as long as it stays small, battery-friendly, and easy to assemble with hand tools.

What I need from you
• A concise bill of materials I can buy locally (microcontroller, HC-SR04 or similar ultrasonic module, power circuit, mounting hardware, enclosure suggestions)
• Step-by-step build instructions—including any soldering, 3D-printing, or off-the-shelf case mods—to secure the unit flush to the wall without wobble
• Well-commented starter firmware (Arduino IDE/C++ or MicroPython) that initializes the ultrasonic sensor, detects the chest/hand distance change, debounces the signal, and increments a rep counter
• Code snippets or libraries for sending the count to a smartphone (Bluetooth LE or your recommended approach) and a minimal companion app or demo script that logs the date, time, and total reps
• Quick calibration routine so the user can stick the device, press a button, and start exercising without extra setup
• Tips on power management and charging so the unit can run several sessions on one charge

Acceptance Criteria
A working prototype on my bench that reliably detects at least 95 % of reps during a one-minute push-ups test, displays or transmits the running total in real time, and stores each session in the demo app.

I’m looking for clear explanations and rock-solid starter code so I can iterate and refine the hardware later. If you’re confident you can walk me through this build, let’s get started!