Skip to content

ejramirez525/Automated-Height-Weight-and-Body-Mass-Index-Measurement-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Automated Height, Weight, and Body Mass Index Measurement System 📏

📌 Project Overview

This project is an automated health kiosk designed to measure a user's height and weight, calculate their Body Mass Index (BMI), and classify their health category. It utilizes a combination of load cells for mass measurement and a Time-of-Flight (ToF) laser sensor for height detection.

The system operates asynchronously, ensuring a responsive user interface, and includes a power-efficiency mode that automatically turns off the display and indicators when the scale is not in use.

✨ Features

  • Accurate Weight Measurement: Utilizes four load cells in a Wheatstone bridge configuration with an HX711 amplifier.
  • Laser Height Sensing: Employs a TOF10120 laser range sensor for contactless height measurement.
  • Real-time BMI Calculation: Automatically calculates and classifies BMI (Underweight, Normal, Overweight, Obesity).
  • Environmental Monitoring: Displays ambient temperature and humidity using a DHT11 sensor.
  • Power Efficiency Mode: Enters a sleep state after 15 seconds of inactivity (weight < 2kg) and wakes up instantly when stepped on.
  • Asynchronous Operations: Non-blocking I2C communication and sensor polling prevent UI freezing.
  • Manual Tare/Reset: A dedicated hardware button allows for safe, software-level taring without hard-resetting the microcontroller.

🛠️ Hardware

Hardware Components Wiring Diagram
Fig. 1 Components diagram


  1. Arduino Uno (or compatible microcontroller)
  2. Breadboard & Jumper Wires
  3. DHT11 Temperature and Humidity Sensor
  4. TOF10120 Laser Range Sensor
  5. Active Buzzer
  6. Red LED
  7. Blue LED
  8. Yellow LED
  9. Tactile Push Button
  10. 3x 220k $\Omega$ resistor
  11. 10k $\Omega$ resistor
  12. I2C Module
  13. 20x4 I2C LCD Display
  14. HX711 Load Cell Amplifier Module
  15. 4x 50kg Half-Bridge Load Cells

🔌 Pin Connections & Wiring Diagram

Component Arduino Pin Notes
I2C LCD (20x4) A4 (SDA), A5 (SCL) I2C Address: 0x27
TOF10120 Sensor A4 (SDA), A5 (SCL) I2C Address: 0x52 (82 decimal)
HX711 Amplifier D4 (DT/DOUT), D5 (SCK) Ensure load cells are wired correctly to E+/E-/A+/A-
DHT11 Sensor D7 (DATA) Requires a 10k pull-up resistor if not on a breakout board
Push Button D2 Connect to GND (uses internal pull-up INPUT_PULLUP)
Green LED D13 Includes inline current-limiting resistor
Blue LED D12 Includes inline current-limiting resistor
Red LED D11 Includes inline current-limiting resistor
Yellow LED D10 Includes inline current-limiting resistor
Active Buzzer D9 Connect negative pin to GND

📚 Required Libraries

Before compiling the code, ensure the following libraries are installed in your Arduino IDE:

  1. LiquidCrystal I2C by Frank de Brabander (For the 20x4 LCD).
  2. HX711_ADC by Olav Kallhovd (Provides advanced, non-blocking load cell functions).
  3. dht (Standard DHT11/DHT22 library for temperature and humidity).

Note: You can install these via the Arduino IDE Library Manager (Sketch -> Include Library -> Manage Libraries...).

🚀 Installation & Setup

  1. Assemble the hardware according to the pin wiring table above.
  2. Ensure the laser sensor is mounted perfectly parallel to the ground, facing downward.
  3. Open the provided .ino file in the Arduino IDE.
  4. Update the SENSOR_HEIGHT_CM constant in the code to match the exact physical height (in centimeters) from the floor/scale base to the lens of the TOF10120 sensor.
  5. Calibrate your scale:
    • Run a standard HX711 calibration sketch to find your specific calibration factor.
    • Update the CALIBRATION_VALUE constant in the code (currently set to 696.0).
  6. Compile and upload the code to your Arduino Uno.

👤 Author

EJ S. Ramirez


Working Prototype
Fig. 2 Working prototype


About

An automated health kiosk built with Arduino that measures height (ToF laser) and weight (load cells) to calculate and classify Body Mass Index (BMI) in real-time. Features power-saving sleep modes and environmental monitoring.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages