44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
#include <Wire.h>
|
|
#include <LiquidCrystal_I2C.h>
|
|
#include <OneWire.h>
|
|
#include <DallasTemperature.h>
|
|
|
|
// Pin data dari sensor DS18B20
|
|
#define ONE_WIRE_BUS 32 // GPIO32
|
|
|
|
// Setup oneWire dan DallasTemperature
|
|
OneWire oneWire(ONE_WIRE_BUS);
|
|
DallasTemperature sensors(&oneWire);
|
|
|
|
// Inisialisasi LCD I2C (alamat 0x27, ukuran 16x2)
|
|
LiquidCrystal_I2C lcd(0x27, 16, 2);
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
sensors.begin(); // Inisialisasi sensor suhu
|
|
lcd.begin(16, 2); // Inisialisasi LCD
|
|
lcd.backlight(); // Nyalakan lampu latar LCD
|
|
lcd.setCursor(0, 0);
|
|
lcd.print("Inisialisasi...");
|
|
delay(1000);
|
|
}
|
|
|
|
void loop() {
|
|
sensors.requestTemperatures(); // Minta pembacaan suhu
|
|
float tempC = sensors.getTempCByIndex(0); // Ambil suhu dari sensor pertama
|
|
|
|
Serial.print("Suhu: ");
|
|
Serial.print(tempC);
|
|
Serial.println(" °C");
|
|
|
|
// Tampilkan suhu di LCD
|
|
lcd.clear();
|
|
lcd.setCursor(0, 0);
|
|
lcd.print("Suhu: ");
|
|
lcd.print(tempC, 1); // 1 digit desimal
|
|
lcd.print((char)223); // Simbol derajat
|
|
lcd.print("C");
|
|
|
|
delay(2000); // Tunggu 2 detik sebelum pembacaan berikutnya
|
|
}
|