#include <TFT_eSPI.h> // Library TFT_eSPI
#include <SPI.h>
// Membuat instance objek TFT_eSPI
TFT_eSPI tft = TFT_eSPI();
// Variabel global untuk lebar layar bagian kiri dan kanan
int leftWidth;
int rightWidth;
void setup() {
// Inisialisasi layar TFT
tft.init();
tft.setRotation(1); // Atur rotasi layar, sesuaikan dengan kebutuhan Anda
// Menghitung lebar bagian kiri dan kanan
int screenWidth = tft.width();
int screenHeight = tft.height();
leftWidth = screenWidth * 0.5;
rightWidth = screenWidth * 0.5;
// Membagi layar menjadi dua bagian dengan proporsi 70% dan 30%
// Mengisi bagian kiri layar dengan warna merah
tft.fillRect(0, 0, leftWidth, screenHeight, TFT_NAVY);
// Mengisi bagian kanan layar dengan warna biru
tft.fillRect(leftWidth, 0, rightWidth, screenHeight, TFT_BLUE);
// Menampilkan label tetap di bagian kiri
tft.setTextSize(2);
tft.setTextColor(TFT_WHITE, TFT_RED);
tft.drawString("Sensor Data", 10, 10, 2); // Gambar teks dengan ukuran font 2
tft.setTextSize(2);
tft.drawString("Tegangan:", 10, 50, 2);
tft.drawString("Arus:", 10, 90, 2);
tft.drawString("Daya:", 10, 130, 2);
tft.drawString("Energi:", 10, 170, 2);
}
void loop() {
// Membuat nilai random untuk Tegangan, Arus, Daya, dan Energi
float tegangan = random(200, 240) / 10.0;
float arus = random(10, 100) / 10.0;
float daya = tegangan * arus;
float energi = daya * random(1, 1000) / 1000.0;
// Mengonversi nilai ke string untuk menampilkan data
String str_tegangan = String(tegangan, 1) + " V";
String str_arus = String(arus, 1) + " A";
String str_daya = String(daya, 1) + " W";
String str_energi = String(energi, 3) + " kWh";
// Menampilkan data pada layar TFT di bagian kanan
tft.setTextColor(TFT_WHITE, TFT_BLUE);
tft.fillRect(leftWidth + 10, 50, rightWidth - 20, 20, TFT_BLUE); // Hapus teks sebelumnya
tft.fillRect(leftWidth + 10, 90, rightWidth - 20, 20, TFT_BLUE); // Hapus teks sebelumnya
tft.fillRect(leftWidth + 10, 130, rightWidth - 20, 20, TFT_BLUE); // Hapus teks sebelumnya
tft.fillRect(leftWidth + 10, 170, rightWidth - 20, 20, TFT_BLUE); // Hapus teks sebelumnya
tft.drawString(str_tegangan, leftWidth + 10, 50, 2);
tft.drawString(str_arus, leftWidth + 10, 90, 2);
tft.drawString(str_daya, leftWidth + 10, 130, 2);
tft.drawString(str_energi, leftWidth + 10, 170, 2);
// Delay sebelum memperbarui nilai
delay(2000);
}