#include <DHT.h> // Library untuk sensor DHT
int nilaiAnalog; // Variabel untuk menyimpan hasil pembacaan analog
int pinSensor = A0; // Variabel untuk PIN analog yang disambungkan ke sensor
float volts; // Variabel untuk menyimpan hasil dalam satuan Volts
float suhuCelsius; // Variabel untuk menyimpan nilai suhu dalam satuan Celsius
float suhuFahrenheit; // Variabel untuk menyimpan nilai suhu dalam satuan Fahrenheit
float suhuKelvin; // Variabel untuk menyimpan nilai suhu dalam satuan Kelvin
#include <LiquidCrystal_I2C.h> // Library untuk Liquid Crystal
// Pin yang terhubung ke sensor DHT22
#define DHTPIN 2
// Jenis sensor yang digunakan adalah DHT22
#define DHTTYPE DHT22
// Inisialisasi sensor DHT22
DHT dht(DHTPIN, DHTTYPE);
// Inisialisasi objek LCD dengan alamat I2C dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600); // Memulai komunikasi serial pada baudrate 9600
dht.begin(); // Memulai sensor DHT22
}
void loop() {
// Membaca suhu dalam Celsius dari sensor DHT22
float suhuCelsius = dht.readTemperature();
// Jika pembacaan gagal, maka kembalikan nilai NAN
if (isnan(suhuCelsius)) {
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
// Membaca nilai analog dari PIN sensor menjadi skala 10 Bit ADC
nilaiAnalog = analogRead(pinSensor);
volts = nilaiAnalog/1024.0*5000;
// Menghitung suhu dalam Fahrenheit (menggunakan rumus konversi Celsius ke Fahrenheit)
float suhuFahrenheit = (suhuCelsius * 9.0 / 5.0) + 32.0;
// Menghitung suhu dalam Kelvin (menggunakan rumus konversi Celsius ke Kelvin)
float suhuKelvin = suhuCelsius + 273.15;
// Menampilkan suhu dalam Celsius, Fahrenheit, dan Kelvin
Serial.print("Suhu Celsius: ");
Serial.print(suhuCelsius);
Serial.println(" °C");
Serial.print("Suhu Fahrenheit: ");
Serial.print(suhuFahrenheit);
Serial.println(" °F");
Serial.print("Suhu Kelvin: ");
Serial.print(suhuKelvin);
Serial.println(" K");
// Hasil pembacaan ditampilkan melalui LCD 16x2 I2C
lcd.init(); // Menyalakan tampilan LCD
lcd.backlight(); // Menyalakan lampu belakang LCD
lcd.clear(); // Bersihkan tampilan LCD
lcd.setCursor(0,0); // Set posisi kursor LCD baris 1
lcd.print("Suhu : "); // Menampilkan teks Suhu
lcd.setCursor(7,0); // Set posisi kursor LCD baris 7
lcd.print(suhuCelsius); // Menampilkan nilai celcius
lcd.setCursor(12,0); // Set posisi kursor LCD baris 12
lcd.print((char)223); // Menampilkan simbol derajat
lcd.setCursor(13,0); // Set posisi kursor LCD baris 13
lcd.print("C"); // Menampilkan simbol Celsius
delay(2000); // Menunggu 2 detik sebelum pembacaan berikutnya
lcd.clear(); // Bersihkan tampilan LCD
lcd.setCursor(0,0); // Set posisi kursor LCD baris 1
lcd.print("Suhu : "); // Menampilkan teks Suhu
lcd.setCursor(7,0); // Set posisi kursor LCD baris 7
lcd.print(suhuFahrenheit); // Menampilkan nilai Fahrenheit
lcd.setCursor(12,0); // Set posisi kursor LCD baris 12
lcd.print((char)223); // Menampilkan simbol derajat
lcd.setCursor(13,0); // Set posisi kursor LCD baris 13
lcd.print("F"); // Menampilkan simbol Fahrenheit
delay(2000); // Menunggu 2 detik sebelum pembacaan berikutnya
lcd.clear(); // Bersihkan tampilan LCD
lcd.setCursor(0,0); // Set posisi kursor LCD baris 1
lcd.print("Suhu : "); // Menampilkan teks Suhu
lcd.setCursor(7,0); // Set posisi kursor LCD baris 7
lcd.print(suhuKelvin); // Menampilkan nilai Kelvin
lcd.setCursor(12,0); // Set posisi kursor LCD baris 12
lcd.print((char)223); // Menampilkan simbol derajat
lcd.setCursor(13,0); // Set posisi kursor LCD baris 13
lcd.print("K"); // Menampilkan simbol Kelvin
delay(2000); // Menunggu 2 detik sebelum pembacaan berikutnya
}