#include <HX711.h>
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DT 3
#define SCK 2
HX711 scale;
Servo gate;
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Calibration factor
float calibration_factor = -7050;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
gate.attach(9);
scale.begin(DT, SCK);
scale.set_scale(calibration_factor);
scale.tare();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Smart Bridge");
delay(200);
}
void loop()
{
float weight = scale.get_units(10);
if(weight < 0)
weight = 0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Wt:");
lcd.print(weight,1);
lcd.print("kg");
if(weight < 5.0)
{
gate.write(90); // Open gate
lcd.setCursor(0,1);
lcd.print("ACCESS GRANTED");
}
else
{
gate.write(0); // Close gate
lcd.setCursor(0,1);
lcd.print("ACCESS DENIED ");
}
Serial.print("Weight: ");
Serial.println(weight);
delay(10);
}