• 082226375801
  • alfianmaarif@ee.uad.ac.id
  • Yogyakarta
Materi
Tutorial ESP32: Cara Membuat Smart Baby Room Monitor & Lampu Tidur Otomatis Berbasis Sensor DHT22, LDR, RGB LED & Blynk IoT pada WOKWI

Tutorial ESP32: Cara Membuat Smart Baby Room Monitor & Lampu Tidur Otomatis Berbasis Sensor DHT22, LDR, RGB LED & Blynk IoT pada WOKWI

Pada bagian ini akan dibahas pembuatan sistem pemantau kenyamanan kamar bayi pintar (Smart Baby Room Monitor) berbasis mikrokontroler ESP32, sensor suhu dan kelembapan DHT22, sensor intensitas cahaya LDR, lampu indikator LED RGB, buzzer alarm, layar LCD 16×2 I2C, serta platform Blynk IoT pada software simulasi WOKWI. Skematik rangkaian ditunjukkan pada Gambar 1, program Arduino pada Kode 1, dan video pembuatan pada tautan Video 1. Sistem memantau kondisi kenyamanan ganda (Dual Comfort) secara real-time berdasarkan parameter suhu ideal (22°C – 27°C) dan kelembapan ideal (40% – 60% RH). Apabila suhu atau kelembapan di luar batas aman, sistem akan mengaktifkan alarm buzzer dan mengirimkan event peringatan darurat ke aplikasi Blynk. Selain itu, sistem dilengkapi dengan kontrol lampu tidur RGB otomatis berbasis sensor LDR (mode Auto) serta opsi override manual melalui dashboard Blynk IoT.

Gambar 1. Skematik rangkaian sistem

List Pin:

  • Sensor Suhu & Kelembapan (DHT22)
    VCC => 3.3V / 5V
    GND => GND
    Data => GPIO 15 (DHTPIN)
  • Sensor Cahaya (LDR)
    AO (Analog Output) => GPIO 34 (LDR_PIN)
    VCC => 3.3V
    GND => GND
  • Display LCD 16×2 I2C (Alamat: 0x27)
    GND => GND
    VCC => 5V / 3.3V
    SDA => GPIO 21
    SCL => GPIO 22
  • Indikator LED RGB & Buzzer Alarm
    LED Red (Anode) => GPIO 4 (LED_RED)
    LED Green (Anode) => GPIO 2 (LED_GREEN)
    LED Blue (Anode) => GPIO 16 (LED_BLUE)
    Buzzer Alarm => GPIO 13 (BUZZER_PIN)

List Virtual PIN:

  • V0 => Temperature (°C) – Datastream Nilai Suhu Ruangan dari Sensor DHT22
  • V1 => Humidity (% RH) – Datastream Nilai Kelembapan Udara dari Sensor DHT22
  • V2 => Comfort Status (String) – Menampilkan Status Kenyamanan Ruangan (“PERFECT COMFORT”, “TOO HOT!”, “TOO COLD!”, “AIR TOO DRY!”, atau “AIR TOO HUMID!”)
  • V3 => Alarm State (Integer 0/255) – Indikator Widget Status Bahaya / Peringatan Suhu & Kelembapan Tidak Ideal
  • V4 => Light Status & Lux (String) – Menampilkan Status Lampu Tidur Beserta Nilai Intensitas Cahaya (Lux)
  • V5 => Manual Night Light Mode (Integer 0/1/2) – Sakelar Kontrol Lampu Tidur dari Aplikasi Blynk (0 = Auto LDR, 1 = OFF Paksa, 2 = ON Paksa)

Kode Arduino 1. Kode Program

// ============================= 
// ALFIAN CENTER 
// SUBSCRIBE 
// Smart Baby Room Monitor ESP32 + Lampu Tidur Otomatis Sensor LDR Blynk Wokwi
// PROGRAM BAKAL AKU KIRIM DENGAN SYARAT DIBAWAH 
// LIKE 50, KOMEN 30 DAN * WAJIB SUBSCRIBE *
// PROGRAM DIKIRIM VIA KOMENTAR 
// =============================

#define BLYNK_TEMPLATE_ID "TMPL6U7BoxR29"
#define BLYNK_TEMPLATE_NAME "SMART BABY ROOM"
#define BLYNK_AUTH_TOKEN "s0LOeR0AQBugmKkQcFS5U-iHr11Kg56j"

#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"

#define DHTPIN 15
#define DHTTYPE DHT22
#define LDR_PIN 34

#define LED_RED 4
#define LED_GREEN 2
#define LED_BLUE 16
#define BUZZER_PIN 13

// Konstanta Perhitungan LDR Wokwi
const float GAMMA = 0.7;
const float RL10 = 33.0;

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer;

int nightLightMode = 0; // 0 = Auto LDR, 1 = OFF Paksa, 2 = ON Paksa

BLYNK_WRITE(V5) {
  nightLightMode = param.asInt();
}

float readLux() {
  int analogValue = analogRead(LDR_PIN);
  float voltage = analogValue / 4096.0 * 3.3;
  if (voltage >= 3.29) voltage = 3.29;
  float resistance = 2000.0 * voltage / (1.0 - voltage / 3.3);
  float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1.0 / GAMMA));
  return lux;
}

void setRGB(bool red, bool green, bool blue) {
  digitalWrite(LED_RED, red ? HIGH : LOW);
  digitalWrite(LED_GREEN, green ? HIGH : LOW);
  digitalWrite(LED_BLUE, blue ? HIGH : LOW);
}

void checkBabyRoom() {
  float temp = dht.readTemperature();
  float hum = dht.readHumidity();
  float lux = readLux();

  if (isnan(temp) || isnan(hum)) {
    lcd.setCursor(0, 0);
    lcd.print("Sensor Error!!  ");
    return;
  }

  String comfortStatus = "";
  bool isAlarm = false;

  // 1. LOGIKA DUAL COMFORT (SUHU & KELEMBAPAN)
  bool tempOK = (temp >= 22.0 && temp <= 27.0);
  bool humOK  = (hum >= 40.0 && hum <= 60.0);

  if (temp < 22.0) {
    comfortStatus = "TOO COLD!";
    isAlarm = true;
  } else if (temp > 27.0) {
    comfortStatus = "TOO HOT!";
    isAlarm = true;
  } else if (hum < 40.0) {
    comfortStatus = "AIR TOO DRY!";
    isAlarm = true;
  } else if (hum > 60.0) {
    comfortStatus = "AIR TOO HUMID!";
    isAlarm = true;
  } else {
    comfortStatus = "PERFECT COMFORT";
    isAlarm = false;
  }

  // 2. LOGIKA INDIKATOR LED & BUZZER (SUHU/KELEMBAPAN)
  if (isAlarm) {
    if (temp > 27.0) {
      tone(BUZZER_PIN, 1000, 100); // Beep intermiten jika terlalu panas
    } else {
      noTone(BUZZER_PIN);
    }
    Blynk.logEvent("room_warning", "Kamar Bayi Tidak Ideal! Status: " + comfortStatus);
  } else {
    noTone(BUZZER_PIN);
  }

  // 3. LOGIKA LAMPU TIDUR / RGB NIGHT LIGHT (LDR & KONTROL HP)
  String lightStatus = "";
  bool turnOnNightLight = false;

  if (nightLightMode == 1) {
    turnOnNightLight = false;
    lightStatus = "MANUAL OFF";
  } else if (nightLightMode == 2) {
    turnOnNightLight = true;
    lightStatus = "MANUAL ON";
  } else {
    // Mode Auto (LDR)
    if (lux < 30.0) { // Gelap
      turnOnNightLight = true;
      lightStatus = "AUTO NIGHT LIGHT";
    } else {
      turnOnNightLight = false;
      lightStatus = "DAYLIGHT (OFF)";
    }
  }

  // Output Warna RGB
  if (turnOnNightLight) {
    // Lampu Tidur Warm/Kuning (Merah + Hijau)
    setRGB(true, true, false);
  } else {
    if (isAlarm) {
      if (temp < 22.0) setRGB(false, false, true); // Biru
      else setRGB(true, false, false);             // Merah
    } else {
      setRGB(false, true, false);                  // Hijau Ideal
    }
  }

  // 4. UPDATE DATA KE BLYNK IOT
  Blynk.virtualWrite(V0, temp);
  Blynk.virtualWrite(V1, hum);
  Blynk.virtualWrite(V2, comfortStatus);
  Blynk.virtualWrite(V3, isAlarm ? 255 : 0);
  Blynk.virtualWrite(V4, lightStatus + " (" + String(lux, 0) + " Lux)");

  // 5. UPDATE DISPLAY LCD 16x2
  lcd.setCursor(0, 0);
  lcd.print("T:"); lcd.print(temp, 1); lcd.print("C H:"); lcd.print(hum, 0); lcd.print("%   ");

  lcd.setCursor(0, 1);
  lcd.print(comfortStatus); lcd.print("        ");
}

void setup() {
  Serial.begin(115200);

  pinMode(LED_RED, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_BLUE, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(LDR_PIN, INPUT);

  dht.begin();
  lcd.init();
  lcd.backlight();

  lcd.print("Smart Baby Room");
  lcd.setCursor(0, 1);
  lcd.print("Dual Comfort System");
  delay(1500);

  Blynk.begin(auth, ssid, pass);
  lcd.clear();

  timer.setInterval(2000L, checkBabyRoom);
}

void loop() {
  Blynk.run();
  timer.run();
}

Video 1. Video tutorial pembuatan

TAG:

smart baby room esp32, monitor kamar bayi iot, pengontrol suhu kamar bayi, dht22 esp32 blynk, sensor ldr lampu tidur, blynk iot baby monitor, simulasi wokwi esp32, tutorial esp32 blynk, smart nursery iot, pemantau suhu kamar anak, lampu tidur otomatis ldr, rgb led indicator esp32, lcd 16×2 i2c esp32, alarm buzzer baby room, blynk logevent room warning, dual comfort system esp32, tutorial blynk iot esp32, library dht sensor esp32, library liquidcrystal i2c, gpio 15 dht22 esp32, gpio 34 ldr esp32, gpio 4 2 16 rgb led, gpio 13 buzzer esp32, proyek iot esp32 kesehatan, tutorial wokwi indonesia, simulasi iot kamar bayi, pemantauan bayi jarak jauh, blynk iot app baby room, datastream blynk dht22 ldr, virtual pin blynk baby monitor, smart home iot esp32, proyek teknik elektro iot, mekatronika kesehatan keluarga, tugas akhir iot baby room, skripsi iot smart nursery, ide proyek esp32 iot, skematik baby room esp32, diagram rangkaian dht22 rgb lcd, source code monitor kamar bayi, program arduino blynk baby, simulasi iot tanpa hardware, platform simulasi wokwi, wokwi esp32 smart baby room, blynk auth token esp32, pengaman kamar bayi berbasis iot, telemetry data dht22 ldr, proyek sains iot elektro, portofolio iot esp32, praktikum mikrokontroler esp32, modul esp32 wroom 32, pinout esp32 dht22 ldr rgb, gpio esp32 sensor lcd, indikator rgb blynk, grafik suhu kelembapan blynk, smart nursery esp32, efisiensi kenyamanan kamar tidur, panduan iot baby room esp32, belajar mikrokontroler online, simulator komponen elektronik, wokwi custom chip esp32, blynk iot platform nursery, internet of things indonesia, iot smk elektro, iot universitas elektro, prototipe kamar bayi pintar, alat pengontrol suhu kelembapan bayi, iot smart home health, esp32 arduino ide blynk, tutorial iot pemula, proyek elektro smart nursery, panduan lengkap wokwi blynk, sensor dht22 suhu kelembapan, sistem alarm kamar bayi, logika dual comfort dht22, notifikasi blynk logevent, sistem mikroklimat kamar tidur, otomatisasi rumah tangga pintar, proyek mekatronika elektro, simulasi hardware smart nursery, sistem kamar bayi esp32, proyek iot populer, kodingan baby monitor otomatis, sensor dht22 digital esp32, rangkaian rgb led dan lcd, tutorial mikrokontroler iot, wawasan iot teknik elektro, aplikasi iot smart home health, baby room cerdas esp32, koding logika comfort status, pemantauan kondisi bayi real time, iot nursery management system

Leave a Reply

Your email address will not be published. Required fields are marked *