Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #include <DHT.h>
- #define DHTPIN 2 // Pin sensor DHT11
- #define DHTTYPE DHT11 // Tipe sensor DHT11
- #define relayKipas 7 // Pin relay untuk kipas
- #define relayLampu 6 // Pin relay untuk lampu
- DHT dht(DHTPIN, DHTTYPE);
- // Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2
- LiquidCrystal_I2C lcd(0x27, 16, 2);
- void setup() {
- Serial.begin(9600);
- dht.begin();
- // Set pin relay sebagai output
- pinMode(relayKipas, OUTPUT);
- pinMode(relayLampu, OUTPUT);
- // Matikan kipas dan lampu di awal
- digitalWrite(relayKipas, HIGH); // HIGH = relay tidak aktif
- digitalWrite(relayLampu, HIGH);
- // Inisialisasi LCD
- lcd.init();
- lcd.backlight(); // Nyalakan backlight LCD
- // Tampilkan pesan awal di LCD
- lcd.setCursor(0, 0);
- lcd.print("Sistem mulai");
- lcd.setCursor(0, 1);
- lcd.print("Kipas Lampu OFF");
- delay(2000); // Tunda 2 detik sebelum memulai loop
- }
- void loop() {
- float suhu = dht.readTemperature(); // Baca suhu
- float kelembaban = dht.readHumidity(); // Baca kelembaban
- // Cek apakah pembacaan valid
- if (isnan(suhu) || isnan(kelembaban)) {
- Serial.println("Gagal membaca dari sensor DHT!");
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Error baca DHT");
- return;
- }
- // Tampilkan data suhu dan kelembaban di Serial Monitor
- Serial.print("Suhu: ");
- Serial.print(suhu);
- Serial.print(" *C, Kelembaban: ");
- Serial.print(kelembaban);
- Serial.println(" %");
- // Tampilkan suhu dan kelembaban di LCD
- lcd.clear(); // Bersihkan layar sebelum menampilkan data baru
- lcd.setCursor(0, 0);
- lcd.print("S:");
- lcd.print(suhu);
- lcd.print("C ");
- lcd.setCursor(9, 0);
- lcd.print("K:");
- lcd.print(kelembaban);
- lcd.print("%");
- // Logika kontrol kipas
- if (suhu > 31) { // Suhu lebih dari 30°C, nyalakan kipas
- digitalWrite(relayKipas, LOW); // LOW = relay aktif
- Serial.println("Kps:ON"); // Tampilkan status kipas
- lcd.setCursor(0, 1);
- lcd.print("Kps:ON "); // Tampilkan di LCD
- } else {
- digitalWrite(relayKipas, HIGH); // Matikan kipas
- Serial.println("Kps:OFF"); // Tampilkan status kipas
- lcd.setCursor(0, 1);
- lcd.print("Kps:OFF"); // Tampilkan di LCD
- }
- // Logika kontrol lampu
- if (kelembaban < 40) { // Kelembaban kurang dari 40%, nyalakan lampu
- digitalWrite(relayLampu, LOW); // Nyalakan lampu
- Serial.println("Lmp:ON"); // Tampilkan status lampu
- lcd.setCursor(9, 1); // Tampilkan di LCD pada posisi yang berbeda
- lcd.print("Lmp:ON");
- } else {
- digitalWrite(relayLampu, HIGH); // Matikan lampu
- Serial.println("Lmp:OFF"); // Tampilkan status lampu
- lcd.setCursor(9, 1);
- lcd.print("Lmp:OFF");
- }
- delay(2000); // Tunggu 2 detik sebelum membaca lagi
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement