
Tutorial ESP32: Cara Membuat Mesin Penetas Telur Otomatis Versi 4 dengan Kontrol 3 Kondisi (Heater, Humidifier, Exhaust), Motor Servo Pemutar Otomatis & Blynk IoT pada WOKWI
Pada bagian ini akan dibahas pembuatan sistem otomatisasi mesin penetas telur pintar versi 4 (Egg Incubator Version 4) berbasis mikrokontroler ESP32, sensor suhu dan kelembapan DHT22, layar LCD 16×2 I2C, motor servo untuk mekanisme pemutar telur otomatis, relay pemanas (heater), pelembap (humidifier), kipas exhaust sirkulasi, buzzer alarm peringatan, 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 mengontrol kestabilan suhu inkubator (37.0°C – 39.0°C) dan kelembapan udara (50% – 60% RH) secara presisi serta dilengkapi fitur pemutaran posisi rak telur secara otomatis setiap 3 jam sekali menggunakan motor servo (atau dapat diuji secara manual via tombol virtual di aplikasi Blynk). Sistem juga memicu alarm buzzer dan notifikasi darurat ke aplikasi Blynk jika terjadi kondisi overheat atau kelembapan ekstrem.
Gambar 1. Skematik rangkaian sistem
List Pin:
- Sensor Suhu & Kelembapan (DHT22)
VCC => 3.3V / 5V
GND => GND
Data => GPIO 15 (DHTPIN) - Display LCD 16×2 I2C (Alamat: 0x27)
GND => GND
VCC => 5V / 3.3V
SDA => GPIO 21
SCL => GPIO 22 - Motor Servo Pemutar Telur
Signal => GPIO 19 (SERVO_PIN)
VCC => 5V
GND => GND - Aktuator Relay & Output Indikator (Simulasi LED / Relay Module)
HEATER_PIN (Relay 1 / Pemanas) => GPIO 2 (LED Kuning)
HUMIDIFIER_PIN (Relay 2 / Pelembap) => GPIO 5 (LED Biru)
EXHAUST_PIN (Relay 3 / Kipas Sirkulasi) => GPIO 18 (LED Hijau)
BUZZER_PIN (Alarm Peringatan) => GPIO 4
List Virtual PIN:
- V0 => Temperature (°C) – Datastream Nilai Suhu Inkubator dari Sensor DHT22
- V1 => Humidity (% RH) – Datastream Nilai Kelembapan Udara dari Sensor DHT22
- V2 => Status Sistem (String) – Menampilkan Status Operasional Inkubator (“KONDISI IDEAL”, “SUHU DINGIN”, “OVERHEAT!!”, “UDARA KERING”, “TERLALU BASAH”, “PEMUTARAN TELUR”, atau “OFF LINE (HP)”)
- V3 => Heater Status (Integer 0/1) – Indikator Widget LED Status Pemanas Aktif/Mati
- V4 => Humidifier Status (Integer 0/1) – Indikator Widget LED Status Pelembap Aktif/Mati
- V5 => Exhaust Status (Integer 0/1) – Indikator Widget LED Status Kipas Exhaust Aktif/Mati
- V6 => Manual Override Switch (Integer 0/1) – Sakelar Kontrol Mode Manual/Offline dari Aplikasi Blynk
- V7 => Servo Position (Integer 0/90) – Indikator Posisi Sudut Motor Servo Pemutar Telur dalam Derajat
- V8 => Manual Button Test Servo (Integer Push 1) – Tombol Simulasi / Demo Uji Putar Rak Telur dari Aplikasi Blynk
Kode Arduino 1. Kode Program
// =============================
// ALFIAN CENTER
// SUBSCRIBE
// Membuat Mesin Penetas Telur Otomatis Versi 4 IoT Kontrol 3 Kondisi dan Servo Pemutar Otomatis Simulasi Wokwi
// PROGRAM BAKAL AKU KIRIM DENGAN SYARAT DIBAWAH
// LIKE 50, KOMEN 30 DAN * WAJIB SUBSCRIBE *
// PROGRAM DIKIRIM VIA KOMENTAR
// =============================
#define BLYNK_TEMPLATE_ID "ID"
#define BLYNK_TEMPLATE_NAME "NAME"
#define BLYNK_AUTH_TOKEN "TOKEN"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
#define HEATER_PIN 2
#define HUMIDIFIER_PIN 5
#define EXHAUST_PIN 18
#define SERVO_PIN 19 // Servo Motor
#define BUZZER_PIN 4
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo eggServo;
BlynkTimer timer;
// Variabel Kontrol
int manualOverride = 0;
unsigned long waktuBeep = 0;
bool statusBuzzer = false;
bool isNotifSent = false;
// Variabel Servo Pemutar Telur
int posisiServo = 0; // Mulai dari 0 derajat
unsigned long waktuTerakhirPutar = 0;
// 3 Jam = 3 * 60 * 60 * 1000 milidetik = 10800000
const unsigned long INTERVAL_PUTAR_TELUR = 10800000;
BLYNK_WRITE(V6) {
manualOverride = param.asInt();
}
// Tombol Demo / Manual Test Putar Telur dari HP (V8)
BLYNK_WRITE(V8) {
int buttonState = param.asInt();
if (buttonState == 1) { // Jika tombol di aplikasi ditekan
putarTelur();
}
}
void putarTelur() {
if (posisiServo == 0) {
posisiServo = 90; // Putar ke posisi 90 derajat
} else {
posisiServo = 0; // Kembalikan ke posisi 0 derajat
}
eggServo.write(posisiServo);
// Update info ke Blynk & LCD
Blynk.virtualWrite(V7, posisiServo);
Blynk.virtualWrite(V2, "PEMUTARAN TELUR");
lcd.setCursor(0, 1);
lcd.print("SRV MOVE TO: "); lcd.print(posisiServo); lcd.print("deg ");
delay(1500); // Beri jeda visual di LCD
}
void kontrolSistemInkubator() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
lcd.setCursor(0, 0);
lcd.print("Sensor Error! ");
return;
}
// ---- Logika Timer Otomatis Tiap 3 Jam ----
if (millis() - waktuTerakhirPutar >= INTERVAL_PUTAR_TELUR) {
waktuTerakhirPutar = millis();
putarTelur();
}
String statusSistem = "";
bool exhaustActive = false;
if (manualOverride == 1) {
statusSistem = "OFF LINE (HP)";
digitalWrite(HEATER_PIN, LOW);
digitalWrite(HUMIDIFIER_PIN, LOW);
digitalWrite(EXHAUST_PIN, LOW);
noTone(BUZZER_PIN);
}
else {
// ---- KONTROL HEATER ----
if (t < 37.0) {
digitalWrite(HEATER_PIN, HIGH);
statusSistem = "SUHU DINGIN";
} else if (t > 39.0) {
digitalWrite(HEATER_PIN, LOW);
exhaustActive = true;
statusSistem = "OVERHEAT!!";
if (!isNotifSent) {
Blynk.logEvent("suhu_overheat", "Bahaya! Inkubator Overheat: " + String(t, 1) + "°C");
isNotifSent = true;
}
} else {
digitalWrite(HEATER_PIN, LOW);
}
// ---- KONTROL HUMIDIFIER ----
if (h < 50.0) {
digitalWrite(HUMIDIFIER_PIN, HIGH);
if(statusSistem == "") statusSistem = "UDARA KERING";
} else if (h > 65.0) {
digitalWrite(HUMIDIFIER_PIN, LOW);
exhaustActive = true;
if(statusSistem == "") statusSistem = "TERLALU BASAH";
} else {
digitalWrite(HUMIDIFIER_PIN, LOW);
}
// ---- KONTROL EXHAUST ----
if (exhaustActive) digitalWrite(EXHAUST_PIN, HIGH);
else digitalWrite(EXHAUST_PIN, LOW);
// ---- KONTROL ALARM ----
if (t > 39.0 || h < 40.0) {
if (millis() - waktuBeep > 300) {
waktuBeep = millis();
statusBuzzer = !statusBuzzer;
if (statusBuzzer) tone(BUZZER_PIN, 1500);
else noTone(BUZZER_PIN);
}
} else {
noTone(BUZZER_PIN);
isNotifSent = false;
}
if (t >= 37.0 && t <= 39.0 && h >= 50.0 && h <= 60.0) {
statusSistem = "KONDISI IDEAL";
}
}
// Kirim Data Ke Dashboard Blynk
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V2, statusSistem);
Blynk.virtualWrite(V3, digitalRead(HEATER_PIN));
Blynk.virtualWrite(V4, digitalRead(HUMIDIFIER_PIN));
Blynk.virtualWrite(V5, digitalRead(EXHAUST_PIN));
Blynk.virtualWrite(V7, posisiServo);
// Update LCD 16x2 Lokal
lcd.setCursor(0, 0);
lcd.print("T:"); lcd.print(t, 1); lcd.print("C ");
lcd.print("H:"); lcd.print(h, 0); lcd.print("% ");
lcd.setCursor(0, 1);
lcd.print("R:");
lcd.print(digitalRead(HEATER_PIN) ? "1" : "0");
lcd.print(digitalRead(HUMIDIFIER_PIN) ? "1" : "0");
lcd.print(digitalRead(EXHAUST_PIN) ? "1" : "0");
lcd.print(" SV:"); lcd.print(posisiServo); lcd.print("deg ");
}
void setup() {
Serial.begin(115200);
pinMode(HEATER_PIN, OUTPUT);
pinMode(HUMIDIFIER_PIN, OUTPUT);
pinMode(EXHAUST_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
eggServo.attach(SERVO_PIN);
eggServo.write(posisiServo); // Set posisi awal (0 derajat)
dht.begin();
lcd.init();
lcd.backlight();
lcd.print("Inkubator Final");
Blynk.begin(auth, ssid, pass);
lcd.clear();
timer.setInterval(500L, kontrolSistemInkubator);
}
void loop() {
Blynk.run();
timer.run();
}

Video 1. Video tutorial pembuatan
TAG:
mesin penetas telur v4 esp32, inkubator telur otomatis servo, pengontrol suhu kelembapan penetas telur, dht22 esp32 blynk, blynk iot egg incubator servo, pemutar telur otomatis wokwi, tutorial esp32 blynk, iot peternakan modern, mesin penetas telur blynk iot, dht22 kelembapan inkubator, deteksi overheat penetas telur, relay heater esp32, relay humidifier esp32, relay exhaust esp32, servo motor pemutar telur, lcd 16×2 i2c esp32, alarm buzzer penetas telur, blynk logevent suhu overheat, kontrol 3 kondisi penetas telur, tutorial blynk iot esp32, library dht sensor esp32, library liquidcrystal i2c, library esp32servo, gpio 15 dht22 esp32, gpio 2 heater esp32, gpio 5 humidifier esp32, gpio 18 exhaust esp32, gpio 19 servo pemutar, gpio 4 buzzer esp32, proyek iot esp32 peternakan, tutorial wokwi indonesia, simulasi iot mesin penetas telur, pemantauan inkubator jarak jauh, blynk iot app egg incubator, datastream blynk dht22 servo, virtual pin blynk incubator v6 v8, smart farming iot esp32, proyek teknik elektro iot, mekatronika peternakan modern, tugas akhir iot penetas telur, skripsi iot egg incubator, ide proyek esp32 iot, skematik mesin penetas esp32, diagram rangkaian dht22 relay servo lcd, source code penetas telur esp32 v4, program arduino blynk incubator, simulasi iot tanpa hardware, platform simulasi wokwi, wokwi esp32 egg incubator servo, blynk auth token esp32, penetas telur otomatis berbasis iot, telemetry data dht22 incubator, proyek sains iot elektro, portofolio iot esp32, praktikum mikrokontroler esp32, modul esp32 wroom 32, pinout esp32 dht22 relay servo, gpio esp32 sensor lcd, indikator relay blynk, grafik suhu kelembapan blynk, smart incubator esp32, efisiensi penetasan telur otomatis, panduan iot penetas telur esp32, belajar mikrokontroler online, simulator komponen elektronik, wokwi custom chip esp32, blynk iot platform livestock, internet of things indonesia, iot smk peternakan, iot universitas elektro, prototipe penetas telur esp32, alat pengontrol suhu kelembapan otomatis, iot smart agriculture, esp32 arduino ide blynk, tutorial iot pemula, proyek elektro smart farming, panduan lengkap wokwi blynk, sensor dht22 suhu kelembapan, sistem alarm overheat, timer otomatis pemutar telur 3 jam, logika kontrol relay inkubator, notifikasi blynk logevent, sistem mikroklimat telur, otomatisasi peternakan modern, proyek mekatronika elektro, simulasi hardware smart incubator, sistem mesin penetas esp32 v4, proyek iot populer, kodingan penetas telur otomatis, sensor dht22 digital esp32, rangkaian relay servo dan lcd, tutorial mikrokontroler iot, wawasan teknik elektro, aplikasi iot smart farming, mesin penetas cerdas esp32, koding logika pemanas exhaust servo, pemantauan kondisi telur real time, iot incubator management system
