#include "HX711.h"
const int pinDOUT = 2;
const int pinSCK = 4;
const int BUZZER_PIN = 5;  // Gantilah dengan pin yang Anda gunakan untuk buzzer
HX711 scale;

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(115200);
  scale.begin(pinDOUT, pinSCK);
  scale.set_scale(0.42);
  scale.tare();

  pinMode(BUZZER_PIN, OUTPUT);  // Inisialisasi pin buzzer sebagai OUTPUT
  digitalWrite(BUZZER_PIN, LOW);  // Pastikan buzzer dimatikan saat awal

  lcd.init();
  lcd.backlight();
}

void loop() {
  if (scale.is_ready()) {
    long reading = scale.get_units(3);
    float kg = float(reading) / 1000;
    Serial.print("Berat: ");
    Serial.print(kg, 2);
    Serial.println(" kg");

    lcd.setCursor(0,0);
    lcd.print("Timbangan Digital");
    lcd.setCursor(0,1);

    if (kg > 39.0) {
      digitalWrite(BUZZER_PIN, HIGH);  // Aktifkan buzzer
      lcd.print("ERROR: Overload!");  // Tampilkan pesan error pada LCD
    } else {
      digitalWrite(BUZZER_PIN, LOW);  // Matikan buzzer
      lcd.print("Berat: " + String(kg, 2) + "kg     ");
    }
  }
  delay(100);
}