You are on page 1of 4

BODY MASS INDEX

SUBMITTED BY :
MARIA SOHAIL
2018-BM-053
SANA HUSSAIN
2018-BM-069

[FEASIBILITY REPORT]
The BMI Calculator is a software application which avoids more manual hours that need to spend in
personally calculate and find
Body mass index can approximately calculate the total fat of the person present in the body. BMI is
based on two variables such as eaight and weight of a person.BMI is weidely used method compared to
other body fat detection technique

This study was conducted by sana hussain and maria sohailon .The aim of the project was to design
automated Body Mass Index (BMI)calculator with LCD display, which calculates the body mass index
using the two basic parameters that are weight and height.

The hardware of the project consists of a load cell or a weighing mechanism, which is used to calculate
the body weight of a person, and a built in height calculating mechanism, which is used to calculate the
height of a person. The weight of the person is calculated in kilograms and the height in meters in
accordance of the BMI standard formula.

The microcontroller based automated Body Mass Index calculator is a useful device when it comes to
controlling your weight and maintaining a healthy lifestyle. The calculated weight of the person through
load cell converts the mechanical force into electrical signals that can be easily obtain after processing
through microcontroller. While the height of the person is calculated by the ultrasound sensor with
built-in transmit and receive circuitry as when it transits the ultrasound signal by transmitter, it reflect
back to the receiver after striking the object or person and height is then calculated.

Uses:

A BMI calculator which playsa major role in alerting the risk of diseases due to overweight.BMI stands
for “Body Mass Index” a ratio between weight and height. BMI is astandard “tool” for helping you judge
your body weight and the amount of body fat you have

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

#define DT A0
#define SCK A1
#define sw 2

long sample=0;
float val=0;
long count=0;

unsigned long readCount(void)


{
unsigned long Count;
unsigned char i;
pinMode(DT, OUTPUT);
digitalWrite(DT,HIGH);
digitalWrite(SCK,LOW);
Count=0;
pinMode(DT, INPUT);
while(digitalRead(DT));
for (i=0;i<24;i++)
{
digitalWrite(SCK,HIGH);
Count=Count<<1;
digitalWrite(SCK,LOW);
if(digitalRead(DT))
Count++;
}
digitalWrite(SCK,HIGH);
Count=Count^0x800000;
digitalWrite(SCK,LOW);
return(Count);
}

void setup()
{
Serial.begin(9600);
pinMode(SCK, OUTPUT);
pinMode(sw, INPUT_PULLUP);
lcd.begin(16, 2);
lcd.print(" Weight ");
lcd.setCursor(0,1);
lcd.print(" Measurement ");
delay(1000);
lcd.clear();
calibrate();
}

void loop()
{
count= readCount();
int w=(((count-sample)/val)-2*((count-sample)/val));
Serial.print("weight:");
Serial.print((int)w);
Serial.println("g");
lcd.setCursor(0,0);
lcd.print("Weight ");
lcd.setCursor(0,1);
lcd.print(w);
lcd.print("g ");

if(digitalRead(sw)==0)
{
val=0;
sample=0;
w=0;
count=0;
calibrate();
}
}

void calibrate()
{
lcd.clear();
lcd.print("Calibrating...");
lcd.setCursor(0,1);
lcd.print("Please Wait...");
for(int i=0;i<100;i++)
{
count=readCount();
sample+=count;
Serial.println(count);
}
sample/=100;
Serial.print("Avg:");
Serial.println(sample);
lcd.clear();
lcd.print("Put 100g & wait");
count=0;
while(count<1000)
{
count=readCount();
count=sample-count;
Serial.println(count);
}
lcd.clear();
lcd.print("Please Wait....");
delay(2000);
for(int i=0;i<100;i++)
{
count=readCount();
val+=sample-count;
Serial.println(sample-count);
}
val=val/100.0;
val=val/100.0; // put here your calibrating weight
lcd.clear();
}

You might also like