#include "HX711.h"
#include <Wire.h>
#include <U8g2lib.h> // ไลบรารีสำหรับ OLED ที่รองรับภาษาไทย
#define DOUT 12
#define CLK 13
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
HX711 scale;
float calibration_factor = 420;
int displayCount = 0;
// ใช้ U8g2 ในโหมด I2C สำหรับ SSD1306
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup() {
Serial.begin(115200);
scale.begin(DOUT, CLK);
scale.set_scale(calibration_factor);
scale.tare();
// เริ่มต้น OLED
u8g2.begin();
u8g2.enableUTF8Print(); // เปิดใช้งาน UTF-8
u8g2.setFont(u8g2_font_sarabun_16_t); // ใช้ฟอนต์ภาษาไทย
}
void loop() {
float weight = scale.get_units(5);
String message = "น้ำหนัก: " + String(weight, 2) + " กก.";
Serial.println(message);
u8g2.clearBuffer();
u8g2.setCursor(0, 20);
u8g2.print(message);
u8g2.sendBuffer();
displayCount++;
Serial.print("จำนวนครั้งที่แสดง: ");
Serial.println(displayCount);
delay(500);
}
LAB XIII-III
Load cell