#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "HX711.h"
// Khởi tạo đối tượng LiquidCrystal_I2C cho màn hình LCD
LiquidCrystal_I2C lcd(0x27, 16, 2); // Địa chỉ I2C mặc định của LCD là 0x27, màn hình 16x2
// Khai báo load cell và hệ số hiệu chỉnh
HX711 scale;
#define CALIBRATION_FACTOR 928 / 2.21
void setup() {
// Khởi tạo Serial để debug
Serial.begin(115200);
// Khởi tạo load cell
Serial.println("Initializing the scale");
scale.begin(5, 18); // Kết nối HX711: DT -> GPIO5, SCK -> GPIO18
scale.set_scale(CALIBRATION_FACTOR);
scale.tare(); // Đặt trọng lượng hiện tại về 0 (tare)
// Khởi tạo màn hình LCD
Wire.begin(9,8);
lcd.init(); // Khởi tạo LCD
lcd.backlight(); // Bật đèn nền LCD
lcd.setCursor(0, 0); // Đặt con trỏ LCD vào dòng đầu tiên
lcd.print("Load Cell Init"); // Hiển thị thông báo khởi tạo
delay(2000);
lcd.clear();
}
void loop() {
float weight = scale.get_units() * 1000; // Chuyển đổi từ kg sang gram
// Hiển thị kết quả trên Serial Monitor
Serial.print("Weight: ");
Serial.print(weight, 1);
Serial.println(" kg");
// Hiển thị trên LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Weight:");
lcd.setCursor(0, 1);
lcd.print(weight, 1);
lcd.print(" kg");
delay(1000);
}