#include <Arduino.h>
#include <HX711.h>
#define DT 4
#define SCK 5
HX711 scale;
float calibration_factor = 8350;
// LED
#define LED_HABIS 16
#define LED_HAMPIR 17
#define LED_FULL 18
void setup() {
Serial.begin(115200);
delay(500);
scale.begin(DT, SCK);
if (!scale.is_ready()) {
Serial.println("HX711 tidak terdeteksi!");
while (1);
}
scale.set_scale(calibration_factor);
scale.tare();
pinMode(LED_HABIS, OUTPUT);
pinMode(LED_HAMPIR, OUTPUT);
pinMode(LED_FULL, OUTPUT);
Serial.println("Monitoring Berat Air...");
}
void loop() {
if (!scale.is_ready()) {
Serial.println("HX711 tidak siap!");
return;
}
float berat = scale.get_units(15);
if (berat < 0) berat = 0;
// Serial.print("Berat Sekarang: ");
Serial.print(berat, 2);
Serial.println(" kg");
// Semua LED mati dulu
digitalWrite(LED_HABIS, LOW);
digitalWrite(LED_HAMPIR, LOW);
digitalWrite(LED_FULL, LOW);
// LED nyala sesuai berat asli
if (berat < 0.01) {
digitalWrite(LED_HABIS, HIGH);
Serial.println("Air habis!!");
}
else if (berat < 0.04) {
digitalWrite(LED_HAMPIR, HIGH);
Serial.println("Air sedang terpakai");
}
else {
digitalWrite(LED_FULL, HIGH);
Serial.println("Air masih Full");
}
Serial.println("--------------------");
delay(1000);
}