This project aimed to meet the requirements of the science fair that happened in my city last year, in which it was "My body, my world".
The main idea was to make a device that measures the physical performance of each individual, where the pedometer at each movement, verifies the distance traveled, the number of steps performed, the calories lost, the ambient temperature and humidity measurement.
Most of the data collected comes properly from the board, since it has a library involving the collection of steps, and to determine the rest, I only use math.
The case was printed on a 3D printer. The pedometer is powered by a 9v battery.

Why?
A significant portion of people live in a sedentary way, away from physical activity practices and healthy lifestyle habits.
It is necessary to recognize physical activity as an important element for normal metabolic activities as well as reducing the risks of future diseases.
With this conclusion, I made an prototype device that helps in this matter, collecting data that can be used and analyzed in a more detailed way.
These data, when viewed, start to add to a stimulus to the practice of physical activities, since, the person can monitor their income, understand their body and improve their practice day after day.
If you have any questions regarding this project, please leave a comment below.
You can send me an e-mail message as well.
🛠️ เจาะลึกเบื้องหลังการทำงาน (Deep Dive / Technical Analysis)
Counting heartbeats is optical. Counting human footsteps requires physics. The Arduino Pedometer teaches complex vector mathematics, harnessing a 6-Axis Gyroscope and Accelerometer (like the MPU6050) strapped to a human waist. It forces the microchip to mathematically deduce the difference between a person casually shifting their weight versus taking a hard physical step.
The Accelerometer Vector Math
An MPU6050 generates raw X, Y, and Z acceleration gravity values (e.g., X=1400, Y=-500, Z=16000).
- The Arduino cannot rely entirely on just the Y-axis. The human might install the device tilted!
- The Total Magnitude Vector: The code must calculate the massive 3-Dimensional vector length inside the
loop():float vector = sqrt( (X*X) + (Y*Y) + (Z*Z) ); - This completely normalizes the data regardless of the device's physical orientation.
The Algorithmic Step Threshold
The vector stream constantly fluctuates as the person breathes or turns.
- You must program a rigorous threshold detector.
float BaseGravity = 1.0G;- The Step Wave: When a heel strikes the pavement, the physical shockwave hits the sensor. The math vector violently spikes to
1.8G, then immediately slams into the floor as the knee bends, before re-settling at1.0G. - The code must run:
if (vector > 1.5 && previousVector <= 1.5) { steps++; } - The Debounce Lockout: We must avoid false positives. If the user jumps, the sensor might spike three times during the shockwave.
- You add
if (millis() - lastStepTime > 300) { ... }. This prevents the Arduino from counting two steps in 300 milliseconds, as no human legs can run that fast!
The Wearable Kit
- Arduino Pro Mini or ESP32 (Compact battery-powered operations).
- MPU6050 6-Axis Accelerometer and Gyroscope I2C Module.
- 0.96” or 1.3” SSD1306 OLED Display to track step counts.
- A 3.7V LiPo Battery and TP4056 charge board embedded into a slick, 3D-printed belt-clip case.