Sistem Kontrol Ruangan Pintar
Ringkasan
Latar Belakang
Penggunaan perangkat listrik seperti lampu dan kipas di dalam ruangan masih dilakukan secara manual, sehingga sering terjadi pemborosan energi akibat kelalaian pengguna, seperti lampu yang tetap menyala saat ruangan kosong atau kipas yang tetap bekerja meskipun suhu ruangan sudah nyaman. Hal ini tidak hanya berdampak pada meningkatnya konsumsi listrik, tetapi juga dapat memperpendek umur perangkat elektronik.
Tujuan
Implementasi sistem kontrol ruangan pintar menggunakan ESP32 bertujuan utama untuk menciptakan lingkungan yang lebih efisien, aman, dan nyaman melalui integrasi teknologi Internet of Things (IoT). Dengan memanfaatkan konektivitas Wi-Fi dan Bluetooth bawaan pada ESP32, sistem ini memungkinkan pengguna untuk melakukan kontrol jarak jauh dan otomatisasi terhadap berbagai perangkat elektronik seperti lampu, AC, dan kunci pintu secara real-time. Selain meningkatkan kenyamanan melalui pengaturan parameter lingkungan yang otomatis berdasarkan data sensor suhu atau cahaya, sistem ini juga sangat krusial dalam menekan pemborosan energi dengan memastikan perangkat hanya beroperasi saat dibutuhkan.
Manfaat
Manfaat dari alat ini adalah untuk memudahkan pengguna ketika masuk kedalam ruangan yang panas dan secara otomatis kipas menyala untuk mendinginkan ruangan dan ketika ruangan menjadi dingin maka kipas akan mati.
Alat dan Bahan
Alat :
Sensor
1. Sensor Suhu & Kelembaban (DHT11 / DHT22)
2. Sensor Gerak (PIR Sensor)
3. Sensor Cahaya (LDR)
Akuator
1. Lampu (LED / Lampu AC via Relay)
2. Kipas / Fan (via Relay)
Bahan :
Metodologi
Penelitian ini menggunakan metode perancangan dan eksperimen dalam pengembangan sistem kontrol ruangan pintar berbasis mikrokontroler ESP32 DevKit. Tahapan penelitian dimulai dari studi literatur untuk memahami konsep IoT, sensor, dan sistem kontrol otomatis. Selanjutnya dilakukan perancangan sistem yang mencakup desain hardware (sensor PIR, LDR, dan DHT11) serta software berupa algoritma pengendalian perangkat.
Tahap implementasi dilakukan dengan merakit komponen dan mengembangkan program menggunakan ESP32. Sistem kemudian diuji melalui beberapa skenario, seperti kondisi ruangan gelap, adanya pergerakan, dan peningkatan suhu. Data hasil pengujian dianalisis secara deskriptif untuk mengevaluasi kinerja sistem dalam mengontrol lampu dan kipas secara otomatis serta efisiensi penggunaan energi.
Desain Sistem

Skenario Pengujian
Hasil Pengujian
hasil pengujian kami pada wokwi adalah ketika program di run tidak semua komponen berjalan dengan semestinya.
Kesimpulan
smart room berhasil dibuat dengan memanfaatkan sensor untuk mengontol kondisi ruangan secara otomatis. sistem ini mampu meningkatkan efisiensi energi dan kenyamanan pengguna.
Source Code / Pseudocode
#include <DHT.h>
// ================= PIN SETUP =================
#define DHTPIN 4
#define DHTTYPE DHT22
#define PIR_PIN 27
#define LDR_PIN 34
#define MQ_PIN 35
#define RELAY_LAMP 26
#define RELAY_FAN 25
#define BUZZER 33
// ================= OBJECT =================
DHT dht(DHTPIN, DHTTYPE);
// ================= VARIABEL =================
int ldrValue = 0;
int mqValue = 0;
bool motion = false;
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
pinMode(RELAY_LAMP, OUTPUT);
pinMode(RELAY_FAN, OUTPUT);
pinMode(BUZZER, OUTPUT);
digitalWrite(RELAY_LAMP, HIGH); // relay OFF
digitalWrite(RELAY_FAN, HIGH);
digitalWrite(BUZZER, LOW);
dht.begin();
}
void loop() {
// ===== BACA SENSOR =====
float suhu = dht.readTemperature();
ldrValue = analogRead(LDR_PIN);
mqValue = analogRead(MQ_PIN);
motion = digitalRead(PIR_PIN);
// ===== TAMPIL SERIAL =====
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print(" | LDR: ");
Serial.print(ldrValue);
Serial.print(" | MQ: ");
Serial.print(mqValue);
Serial.print(" | PIR: ");
Serial.println(motion);
// ===== LOGIKA PIR (ADA ORANG) =====
if (motion == HIGH) {
// Lampu (berdasarkan cahaya)
if (ldrValue < 500) {
digitalWrite(RELAY_LAMP, LOW); // ON
} else {
digitalWrite(RELAY_LAMP, HIGH); // OFF
}
// Kipas (berdasarkan suhu)
if (suhu > 30) {
digitalWrite(RELAY_FAN, LOW); // ON
} else {
digitalWrite(RELAY_FAN, HIGH); // OFF
}
} else {
// Tidak ada orang → semua mati
digitalWrite(RELAY_LAMP, HIGH);
digitalWrite(RELAY_FAN, HIGH);
}
// ===== SENSOR GAS (MQ) =====
if (mqValue > 1000) {
digitalWrite(BUZZER, HIGH); // Alarm nyala
digitalWrite(RELAY_FAN, LOW); // Kipas bantu sirkulasi
} else {
digitalWrite(BUZZER, LOW);
}
delay(2000);
}