Smart Home IoT Dengan ESP8266 – Fardigi Education Kit

by Fardigi in Circuits > Arduino

24 Views, 0 Favorites, 0 Comments

Smart Home IoT Dengan ESP8266 – Fardigi Education Kit

Screenshot 2025-10-23 172509.png

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:

  1. 🌑️ Suhu & kelembapan (DHT11)
  2. πŸ’§ Ketinggian air (Water Level)
  3. πŸšΆβ€β™‚οΈ Gerakan (PIR)
  4. 🌞 Intensitas cahaya (LDR)
  5. πŸ“ 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

Screenshot 2025-10-23 174617.png
  1. ESP8266 (NodeMCU)
  2. Sensor DHT11
  3. Sensor Ultrasonik HC-SR04
  4. Sensor PIR HC-SR501
  5. Sensor LDR + resistor 10kΞ©
  6. Sensor Water Level
  7. Breadboard dan kabel jumper
  8. Kabel USB untuk koneksi ke laptop

Koneksi Rangkaian

Screenshot 2025-10-23 174802.png

πŸ’‘ Gunakan 3V3 dan GND dari ESP8266 untuk semua sensor.

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);
}


Cara Uji Coba

Hubungkan ESP8266 ke laptop dan upload kode di atas.

Buka Serial Monitor dengan baud rate 115200.

Uji setiap sensor:

  1. PIR: Gerakkan tangan di depan sensor, baca hasilnya.
  2. Ultrasonic: Dekatkan objek, jarak akan berubah.
  3. DHT11: Tiup perlahan sensor, suhu & kelembapan akan berubah.
  4. LDR: Tutup sensor dengan tangan, nilai cahaya menurun.
  5. Water Level Digital: Celupkan sensor ke air, status berubah menjadi β€œTINGGI”.