Introduction: Smart Home IoT Dengan ESP8266 – Fardigi Education Kit
Proyek ini merupakan puncak dari seri Fardigi Education IoT Prototype Kit, di mana kita akan menggabungkan berbagai sensor yang sudah digunakan sebelumnya menjadi satu sistem Smart Home.
Dengan ESP8266 (NodeMCU) sebagai otak, sistem ini akan memantau:
- 🌡️ Suhu & kelembapan (DHT11)
- 💧 Ketinggian air (Water Level)
- 🚶♂️ Gerakan (PIR)
- 🌞 Intensitas cahaya (LDR)
- 📏 Jarak atau deteksi objek (Ultrasonic HC-SR04)
Semua data akan ditampilkan melalui Serial Monitor, dan sistem ini bisa dikembangkan menjadi dashboard web atau aplikasi mobile IoT.
Supplies
- ESP8266 (NodeMCU)
- Sensor DHT11
- Sensor Ultrasonik HC-SR04
- Sensor PIR HC-SR501
- Sensor LDR + resistor 10kΩ
- Sensor Water Level
- Breadboard dan kabel jumper
- Kabel USB untuk koneksi ke laptop
Step 1: Koneksi Rangkaian
💡 Gunakan 3V3 dan GND dari ESP8266 untuk semua sensor.
Step 2: Kode Program Smart Home
Salin kode di bawah ini ke Arduino IDE, pastikan kamu sudah menginstal library DHT dari Adafruit.
#include <DHT.h>
#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define PIR_PIN D5
#define TRIG_PIN D6
#define ECHO_PIN D7
#define LDR_PIN A0
#define WATER_PIN D1
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(PIR_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(WATER_PIN, INPUT);
Serial.println("=== Sistem Smart Home Fardigi Education ===");
delay(1000);
}
void loop() {
// --- Sensor PIR ---
int gerakan = digitalRead(PIR_PIN);
// --- Sensor Ultrasonic ---
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long durasi = pulseIn(ECHO_PIN, HIGH);
int jarak = durasi * 0.034 / 2;
// --- Sensor DHT11 ---
float suhu = dht.readTemperature();
float kelembapan = dht.readHumidity();
// --- Sensor LDR ---
int cahaya = analogRead(LDR_PIN);
// --- Sensor Water Level (Digital) ---
int air = digitalRead(WATER_PIN);
// --- Tampilkan di Serial Monitor ---
Serial.println("====================================");
Serial.print("Gerakan: "); Serial.println(gerakan == HIGH ? "Terdeteksi!" : "Tidak ada");
Serial.print("Jarak: "); Serial.print(jarak); Serial.println(" cm");
Serial.print("Suhu: "); Serial.print(suhu); Serial.println(" °C");
Serial.print("Kelembapan: "); Serial.print(kelembapan); Serial.println(" %");
Serial.print("Cahaya: "); Serial.println(cahaya);
Serial.print("Ketinggian Air: "); Serial.println(air == HIGH ? "TINGGI" : "RENDAH");
Serial.println("====================================");
delay(2000);
}
Step 3: Cara Uji Coba
Hubungkan ESP8266 ke laptop dan upload kode di atas.
Buka Serial Monitor dengan baud rate 115200.
Uji setiap sensor:
- PIR: Gerakkan tangan di depan sensor, baca hasilnya.
- Ultrasonic: Dekatkan objek, jarak akan berubah.
- DHT11: Tiup perlahan sensor, suhu & kelembapan akan berubah.
- LDR: Tutup sensor dengan tangan, nilai cahaya menurun.
- Water Level Digital: Celupkan sensor ke air, status berubah menjadi “TINGGI”.

