Robotik & Hardware, ELrolumNews — Anda sudah bisa memprogram ESP32, sudah bisa membaca sensor, sudah bisa membuat web server sederhana. Sekarang saatnya naik level: mengubah perangkat rumah biasa menjadi perangkat pintar yang bisa dikontrol dari mana saja.
Artikel ini cocok untuk: Anda yang sudah familiar dengan dasar ESP32 dan ingin membuat proyek IoT nyata—bukan sekadar LED berkedip.
Smart home bukan lagi barang mewah. Dengan ESP32 seharga Rp50-100 ribu, Anda bisa mengontrol lampu, kipas, atau perangkat elektronik lainnya dari smartphone—tanpa membeli perangkat smart home komersial yang mahal .
Di artikel ini, kita akan membangun sistem smart home sederhana dengan ESP32: mengontrol relay (untuk perangkat AC), membaca sensor suhu/kelembapan, dan menampilkan semuanya di web dashboard yang bisa diakses dari browser.
Apa Itu Smart Home dan Mengapa ESP32?
Smart home adalah konsep rumah di mana perangkat elektronik bisa dikontrol secara otomatis atau jarak jauh melalui jaringan internet .
Mengapa ESP32 Cocok untuk Smart Home?
| Keunggulan | Penjelasan |
|---|---|
| WiFi & Bluetooth built-in | Tidak perlu modul tambahan |
| Harga murah | Rp50-100 ribu untuk board dasar |
| GPIO banyak | 34+ pin untuk kontrol banyak perangkat |
| Dukungan komunitas | Ribuan proyek & library tersedia |
| Fleksibel | Bisa pakai Blynk, Firebase, Adafruit IO, atau web server sendiri |
💡 Fakta: ESP32 adalah otak yang bisa mengubah lampu USB biasa menjadi smart lamp, atau kipas biasa menjadi smart fan—hanya dengan beberapa komponen tambahan .
Apa Saja yang Dibutuhkan?
Komponen Hardware
| Komponen | Fungsi | Perkiraan Harga |
|---|---|---|
| ESP32 Dev Board | Mikrokontroler utama | Rp50-100 ribu |
| Modul Relay 4-Channel | Mengontrol perangkat AC (lampu, kipas) | Rp30-50 ribu |
| Sensor DHT22 | Suhu & kelembapan | Rp25-40 ribu |
| Kabel Jumper | Koneksi antar komponen | Rp10-20 ribu |
| Breadboard | Prototyping | Rp15-25 ribu |
Software
| Software | Fungsi |
|---|---|
| Arduino IDE | Memprogram ESP32 |
| Library DHT | Membaca sensor DHT22 |
| Library WebServer | Membuat web server |
⚠️ Peringatan Keamanan: Modul relay digunakan untuk mengontrol perangkat AC (220V). Jangan pernah menyentuh sisi AC saat perangkat terhubung ke listrik. Jika tidak yakin, gunakan LED atau perangkat DC untuk latihan terlebih dahulu.
Langkah 1: Rangkaian Hardware
1.1 Koneksi Relay ke ESP32
| Relay | ESP32 GPIO | Fungsi |
|---|---|---|
| IN1 | GPIO 26 | Lampu |
| IN2 | GPIO 27 | Kipas |
| IN3 | GPIO 25 | Perangkat 3 |
| IN4 | GPIO 33 | Perangkat 4 |
| VCC | 5V | Power relay |
| GND | GND | Ground |
1.2 Koneksi Sensor DHT22
| DHT22 | ESP32 |
|---|---|
| VCC | 3.3V |
| DATA | GPIO 4 |
| GND | GND |
💡 Tips Pro: Jika modul DHT22 Anda tidak memiliki resistor pull-up built-in, tambahkan resistor 4.7kΩ antara VCC dan DATA untuk pembacaan yang stabil .
Langkah 2: Kode Program
2.1 Install Library
Di Arduino IDE, install:
DHT sensor library by Adafruit
Adafruit Unified Sensor
2.2 Kode Lengkap
#include <WiFi.h> #include <WebServer.h> #include <DHT.h> #define DHTPIN 4 #define DHTTYPE DHT22 // Relay pins #define RELAY1 26 #define RELAY2 27 #define RELAY3 25 #define RELAY4 33 DHT dht(DHTPIN, DHTTYPE); const char* ssid = "NAMA_WIFI_ANDA"; const char* password = "PASSWORD_WIFI_ANDA"; WebServer server(80); // Status relay bool relayState[4] = {false, false, false, false}; void handleRoot() { float suhu = dht.readTemperature(); float kelembapan = dht.readHumidity(); String html = "<!DOCTYPE html><html><head>"; html += "<meta name='viewport' content='width=device-width, initial-scale=1'>"; html += "<meta http-equiv='refresh' content='5'>"; html += "<style>body{font-family:Arial;text-align:center;margin:20px;}"; html += ".card{background:#f0f0f0;padding:20px;border-radius:10px;margin:10px;}"; html += ".on{background:#4CAF50;color:white;}"; html += ".off{background:#f44336;color:white;}"; html += "a{display:inline-block;padding:15px 25px;margin:5px;text-decoration:none;border-radius:5px;color:white;}</style>"; html += "</head><body>"; html += "<h1>Smart Home</h1>"; // Sensor data html += "<div class='card'>"; html += "<h2>Sensor DHT22</h2>"; html += "<p>Suhu: " + String(suhu) + " °C</p>"; html += "<p>Kelembapan: " + String(kelembapan) + " %</p>"; html += "</div>"; // Relay control html += "<div class='card'>"; html += "<h2>Kontrol Perangkat</h2>"; const char* names[] = {"Lampu", "Kipas", "Perangkat 3", "Perangkat 4"}; for (int i = 0; i < 4; i++) { String state = relayState[i] ? "ON" : "OFF"; String cls = relayState[i] ? "on" : "off"; html += "<a href='/toggle?relay=" + String(i) + "' class='" + cls + "'>" + String(names[i]) + ": " + state + "</a><br>"; } html += "</div></body></html>"; server.send(200, "text/html", html); } void handleToggle() { if (server.hasArg("relay")) { int relay = server.arg("relay").toInt(); if (relay >= 0 && relay < 4) { relayState[relay] = !relayState[relay]; int pins[] = {RELAY1, RELAY2, RELAY3, RELAY4}; digitalWrite(pins[relay], relayState[relay] ? HIGH : LOW); } } server.sendHeader("Location", "/"); server.send(303); } void setup() { Serial.begin(115200); // Setup relay pins pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); pinMode(RELAY3, OUTPUT); pinMode(RELAY4, OUTPUT); // Pastikan relay OFF saat startup digitalWrite(RELAY1, LOW); digitalWrite(RELAY2, LOW); digitalWrite(RELAY3, LOW); digitalWrite(RELAY4, LOW); dht.begin(); // Koneksi WiFi WiFi.begin(ssid, password); Serial.print("Menghubungkan ke WiFi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi terhubung!"); Serial.print("Buka: http://"); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.on("/toggle", handleToggle); server.begin(); } void loop() { server.handleClient(); }
2.3 Cara Menggunakan
Upload kode ke ESP32
Buka Serial Monitor (baud 115200)
Catat IP Address yang muncul
Buka browser di HP/laptop yang terhubung ke WiFi yang sama
Ketik IP tersebut (contoh:
http://192.168.1.100)Anda akan melihat dashboard dengan sensor data dan tombol kontrol
Langkah 3: Menambahkan Kontrol Otomatis
Sekarang kita tambahkan otomasi sederhana: kipas menyala otomatis jika suhu di atas 30°C.
Kode Tambahan di loop()
void loop() { server.handleClient(); // Baca sensor float suhu = dht.readTemperature(); // Otomasi: kipas nyala jika suhu > 30°C if (suhu > 30.0 && !relayState[1]) { relayState[1] = true; digitalWrite(RELAY2, HIGH); Serial.println("Otomasi: Kipas ON (suhu tinggi)"); } else if (suhu < 28.0 && relayState[1]) { relayState[1] = false; digitalWrite(RELAY2, LOW); Serial.println("Otomasi: Kipas OFF (suhu normal)"); } }
💡 Tips Pro: Tambahkan hysteresis (selisih suhu nyala/mati) untuk mencegah relay berkedip-kedip saat suhu di ambang batas .
Langkah 4: Integrasi dengan Cloud (Opsional)
Jika Anda ingin kontrol dari mana saja—bukan hanya WiFi lokal—integrasikan dengan Blynk atau Adafruit IO.
Menggunakan Blynk
Blynk adalah platform IoT populer yang memungkinkan kontrol via aplikasi smartphone. Penelitian di Universitas Muhammadiyah Indonesia menunjukkan sistem smart home berbasis ESP32 dengan Blynk berhasil memonitor dan mengontrol perangkat secara real-time .
Langkah singkat:
Daftar di blynk.cloud
Buat template & datastream
Install library Blynk di Arduino IDE
Tambahkan kode koneksi Blynk
Kontrol dari aplikasi Blynk di HP
Menggunakan Adafruit IO
Adafruit IO menawarkan free plan dengan 10 feeds dan 30 request/menit—cukup untuk proyek smart home sederhana .
Fitur Adafruit IO:
Dashboard web
Aplikasi mobile
MQTT support
Data retention 30 hari
💡 Rekomendasi: Untuk pemula, Blynk lebih mudah karena antarmukanya intuitif. Untuk yang ingin open-source & fleksibel, Adafruit IO atau Firebase bisa jadi pilihan .
Troubleshooting: Masalah Umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| Relay tidak nyala | Logika trigger salah | Cek apakah relay active LOW atau HIGH |
| Sensor DHT22 gagal baca | Wiring salah | Cek VCC, GND, DATA; tambah pull-up resistor |
| Web tidak bisa diakses | HP & ESP32 beda jaringan | Pastikan terhubung ke WiFi yang sama |
| ESP32 restart terus | Power tidak cukup | Gunakan power supply 5V 2A |
| Relay berkedip-kedip | Tidak ada hysteresis | Tambahkan selisih suhu nyala/mati |
Kesalahan Umum dan Cara Menghindarinya
| Kesalahan | Akibat | Solusi |
|---|---|---|
| Menyentuh sisi AC saat live | Sengatan listrik | Matikan listrik sebelum wiring |
| Relay OFF saat startup | Perangkat nyala tiba-tiba | Set pin LOW di setup() |
| Tidak ada proteksi | Perangkat bisa rusak | Gunakan relay module dengan optocoupler |
| Credentials di kode publik | Risiko keamanan | Gunakan file terpisah & .gitignore |
Kesimpulan
Membuat smart home dengan ESP32 bukan proyek yang mustahil. Kuncinya:
Siapkan hardware — ESP32, relay, sensor DHT22
Rangkai dengan benar — perhatikan pin dan power
Upload kode — web server + kontrol relay
Akses dari browser — kontrol perangkat dari HP/laptop
Tambahkan otomasi — kipas nyala saat suhu tinggi
Integrasi cloud — kontrol dari mana saja (opsional)
Dengan biaya di bawah Rp200 ribu, Anda sudah bisa memiliki sistem smart home yang berfungsi—sesuatu yang biasanya dijual mahal oleh merek komersial .
Ingat: Smart home adalah perjalanan, bukan tujuan. Mulai dari satu perangkat, lalu kembangkan. Setiap perangkat yang berhasil dikontrol adalah kemenangan kecil yang membawa Anda ke proyek berikutnya.
Sudah siap membuat smart home pertama Anda?
💬 Punya proyek smart home? Bagikan di kolom komentar!





