#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Alamat I2C LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Konfigurasi pin untuk DS18B20
const int DRY_ZONE_ONEWIRE = 33; // Pin untuk sensor DS18B20 pertama
const int ROLL_ONEWIRE = 32; // Pin untuk sensor DS18B20 kedua
OneWire DRY_ZONE(DRY_ZONE_ONEWIRE);
OneWire ROLL(ROLL_ONEWIRE);
DallasTemperature DRY_ZONE_SENSOR(&DRY_ZONE);
DallasTemperature ROLL_SENSOR(&ROLL);
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
// Inisialisasi sensor DS18B20
DRY_ZONE_SENSOR.begin();
ROLL_SENSOR.begin();
}
void loop() {
// Membaca suhu dari sensor 1
DRY_ZONE_SENSOR.requestTemperatures();
float DRY_ZONE_TEMP = DRY_ZONE_SENSOR.getTempCByIndex(0);
// Membaca suhu dari sensor 2
ROLL_SENSOR.requestTemperatures();
float ROLL_TEMP = ROLL_SENSOR.getTempCByIndex(0);
// Menampilkan suhu dari sensor 1 dan sensor 2 pada LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("D Z: ");
lcd.setCursor(0, 1);
lcd.print(DRY_ZONE_TEMP, 2); // Tampilkan 2 angka di belakang koma
lcd.print(" C");
lcd.setCursor(9, 0);
lcd.print("ROLL: ");
lcd.setCursor(9, 1);
lcd.print(ROLL_TEMP, 2); // Tampilkan 2 angka di belakang koma
lcd.print(" C");
// Menampilkan data pada Serial Monitor
Serial.printf("Suhu Dry Zone: %d C\n", DRY_ZONE_TEMP, 2);
// Serial.print(DRY_ZONE_TEMP, 2); // Tampilkan 2 angka di belakang koma
// Serial.println(" C");
Serial.printf("Suhu Roll: %d C\n", ROLL_TEMP, 2);
// Serial.print(ROLL_TEMP, 2); // Tampilkan 2 angka di belakang koma
// Serial.println(" C");
Serial.println("-------------------"); // Pembatas antar pembacaan
delay(1000); // Delay sebelum pembaruan berikutnya
}