● online
- Motor servo MG996R TowerPro Metal Gear....
- ESR Meter Digital LCR-T4 Tester Transistor Diode M....
- TP5100 4.2v 8.4v 1S 2S Single / Double Cell Lithiu....
- Power module DC DC 9A 300W Step Down Buck Converte....
- Raspberry Pi 4 Model B - 2GB RAM Raspberry Pi 4B....
- LCD CHARACTER 16X2 1602 5V GREEN HIJAU BACKLIGHT M....
- Push Button Tactile Switch Saklar Tombol Tinggi - ....
- Raspberry Pi 4 Model B 8GB Original UK E14 Raspi 4....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Sistem Kendali Suhu pada Inkubator Penetasan Telur Berbasis PID Diskrit Menggunakan Sensor DHT11 dan Aktuator Lampu Pijar
Menetaskan telur pakai inkubator jadi salah satu cara yang cukup praktis buat membantu proses penetasan. Tapi, ada satu hal yang nggak boleh disepelekan, yaitu suhu di dalam inkubator. Telur ayam, bebek, maupun puyuh butuh suhu yang stabil, biasanya di kisaran 37–38°C. Kalau suhunya naik atau turun terlalu jauh, meskipun cuma beda 1–2°C dalam waktu tertentu, proses penetasan bisa terganggu dan bahkan bikin embrio nggak berkembang dengan baik. Masalahnya, sistem pemanas biasa yang cuma pakai metode nyala-mati sering bikin suhu di dalam inkubator jadi naik turun dan kurang stabil.
Nah, di proyek ini masalah tersebut diatasi dengan sistem kontrol PID berbasis Arduino Uno. Sistem ini bisa ngatur daya pemanas sesuai kondisi suhu di dalam inkubator, jadi nggak cuma sekadar nyala atau mati. Inkubatornya dibuat dari kaleng biskuit logam, lalu suhu dibaca menggunakan sensor DHT11. Sebagai sumber panas, digunakan lampu pijar 12V yang dikontrol lewat modul MOSFET dengan sinyal PWM. Hasilnya, daya lampu bisa diatur secara bertahap sehingga suhu bisa naik lebih halus dan stabil. Biar makin gampang dipantau, data suhu dan daya pemanas juga ditampilkan secara real-time lewat tampilan HMI berbasis HTML yang terhubung ke Arduino.
Alat dan Bahan
Buat bikin sistem inkubator ini, komponen yang digunakan cukup simpel dan total budget-nya juga masih aman di bawah Rp100.000.
| No. | Alat dan Bahan | Jumlah | Estimasi Harga |
|---|---|---|---|
| 1 | Arduino Uno R3 | 1 buah | Rp53.000 |
| 2 | Sensor Suhu DHT11 | 1 buah | Rp8.000 |
| 3 | Modul Driver MOSFET Dual Channel (IRFZ44N) | 1 buah | Rp7.000 |
| 4 | Lampu Pijar 12V 0,5A sebagai pemanas | 2 buah | Rp8.000 |
| 5 | Kabel Jumper | 1 set | Rp5.000 |
| 6 | Adaptor 12V DC | 1 buah | Rp5.000 |
| 7 | Kaleng biskuit logam sebagai badan inkubator | 1 buah | Sudah tersedia |
| 8 | Kabel USB tipe A-B untuk koneksi Arduino ke PC | 1 buah | Sudah tersedia |
| 9 | PC/Laptop dengan Google Chrome untuk HMI | 1 unit | Sudah tersedia |
| Total Biaya Komponen yang Dibeli | Rp86.000 |
Jadi, total biaya komponen yang perlu dibeli cuma sekitar Rp86.000, jadi masih aman dan nggak lewat dari budget Rp100.000.
Topologi Sistem
Sistem inkubator ini bekerja menggunakan sistem loop tertutup, jadi suhu di dalam inkubator terus dipantau dan otomatis disesuaikan kalau mulai berubah dari suhu yang diinginkan. Ada empat bagian utama yang terlibat, yaitu sensor suhu, Arduino sebagai kontroler PID, aktuator pemanas, dan inkubator sebagai plant. Sensor DHT11 bertugas membaca suhu aktual di dalam inkubator, lalu datanya dikirim ke Arduino. Setelah itu, Arduino membandingkan suhu tersebut dengan setpoint yang sudah ditentukan, yaitu 37,5°C.
Kalau ada perbedaan suhu, sistem PID akan menghitung seberapa besar daya pemanas yang dibutuhkan. Arduino kemudian mengirimkan sinyal PWM dengan nilai 0–255 ke modul MOSFET untuk mengatur tingkat daya lampu pijar. Lampu akan menghasilkan panas dan menaikkan suhu di dalam inkubator, lalu sensor DHT11 membaca kembali suhu terbaru. Proses ini terus berulang supaya suhu tetap stabil di sekitar setpoint. Selain itu, data suhu dan nilai PWM juga dikirim ke PC melalui komunikasi serial dan ditampilkan secara real-time pada dashboard HMI berbasis HTML.
Secara sederhana, alur sistemnya seperti ini:
Setpoint → PID (Arduino) → PWM → MOSFET → Lampu Pijar → Inkubator → Sensor DHT11 → kembali ke PID
Dengan adanya feedback dari sensor DHT11, sistem bisa langsung tahu kalau suhu terlalu rendah atau terlalu tinggi, lalu PID akan menyesuaikan daya lampu pada proses berikutnya. Jadi, sistemnya nggak cuma sekadar nyalain dan matiin pemanas, tapi bisa ngatur panas secara lebih halus sesuai kondisi di dalam inkubator.


Skematik rangkaian: Arduino Uno, sensor DHT11, modul MOSFET dual, lampu pijar 12VDC, dan adaptor 12VDC
Cara Kerja
Sistem inkubator ini bekerja dengan konsep loop tertutup dan melakukan pengecekan suhu setiap 2 detik. Jadi, sistem terus membaca suhu di dalam inkubator, membandingkannya dengan suhu target, lalu menyesuaikan daya pemanas sesuai kebutuhan. Prosesnya kurang lebih seperti ini:
a) Pembacaan Sensor
Setiap 2 detik, sensor DHT11 membaca suhu di dalam inkubator dan mengirimkan datanya ke Arduino melalui pin D2. Arduino kemudian membandingkan suhu yang terbaca dengan setpoint 37,5°C. Selisih antara suhu target dan suhu aktual ini disebut error. Kalau suhu masih di bawah 37,5°C, sistem akan menambah daya pemanas. Sebaliknya, kalau suhunya sudah terlalu tinggi, daya pemanas akan dikurangi.
b) Proses PID
Nilai error tadi kemudian diproses oleh kontrol PID (Proportional, Integral, Derivative). Secara sederhana, PID bekerja dengan mengatur output berdasarkan kondisi error supaya sistem bisa mencapai target dengan lebih stabil. Bagian P merespons error saat ini, bagian I membantu mengatasi error yang masih tersisa, sedangkan bagian D melihat perubahan error untuk membantu mengurangi overshoot. Kalau ingin memahami konsep PID lebih lanjut, kamu bisa melihat referensi tentang PID control.
Nilai Kp, Ki, dan Kd tidak perlu diubah langsung di program Arduino. Parameter tersebut dikirim dari HMI melalui komunikasi serial, sehingga proses tuning bisa dilakukan langsung dari komputer tanpa harus upload ulang program. Untuk mencegah output PID terlalu besar, hasil perhitungan dibatasi pada rentang 0–255, sesuai dengan nilai PWM 8-bit Arduino.
c) Pengaturan Pemanas
Hasil perhitungan PID kemudian dikirim ke pin D3 Arduino dalam bentuk sinyal PWM. Sinyal ini masuk ke modul MOSFET yang bertugas mengatur arus menuju dua lampu pijar 12V. Nilai PWM menentukan seberapa besar daya yang diberikan ke lampu. Semakin tinggi nilai PWM, semakin besar daya lampu dan semakin panas kondisi di dalam inkubator.
Jadi, pemanas nggak cuma bekerja dengan sistem nyala atau mati. Daya lampu bisa dinaikkan atau diturunkan secara bertahap sesuai kebutuhan suhu. Cara ini membuat proses pemanasan jadi lebih halus dan membantu menjaga suhu tetap stabil di sekitar 37,5°C.
d) Komunikasi Serial dan HMI
Setelah satu siklus kontrol selesai, Arduino mengirim data ke PC melalui komunikasi serial dengan baud rate 9600. Data yang dikirim berisi waktu, setpoint, suhu aktual, dan nilai PWM. Data tersebut kemudian ditampilkan pada dashboard HMI berbasis HTML yang berjalan di Google Chrome menggunakan Web Serial API.
Lewat dashboard ini, pengguna bisa melihat grafik suhu secara real-time, membandingkan suhu aktual dengan setpoint, serta memantau nilai PWM. Yang lebih praktis, parameter Kp, Ki, Kd, dan setpoint juga bisa diubah langsung dari HMI tanpa perlu mengupload ulang program Arduino.
e) Hasil Percobaan
Pada pengujian, suhu awal di dalam inkubator berada di sekitar 30°C, kemudian setpoint ditentukan pada 37,5°C. Parameter PID yang digunakan yaitu Kp = 55,0, Ki = 0,20, dan Kd = 4,2. Setelah sistem dijalankan, suhu naik secara bertahap dan berhasil mencapai 37,5°C dalam waktu sekitar 216 detik, dengan overshoot yang tidak terlalu signifikan.
Inkubator yang digunakan dibuat dari kaleng biskuit logam sebagai ruang tertutup. Sensor DHT11 dipasang di bagian atas tutup untuk membaca suhu di dalam ruang inkubator, sedangkan Arduino dan modul MOSFET ditempatkan di bagian luar kaleng. Dari hasil pengujian tersebut, sistem PID mampu mengatur daya pemanas secara otomatis sehingga suhu bisa mendekati dan bertahan di sekitar suhu target.

Perangkat Lunak
Software yang digunakan di proyek ini dibagi menjadi dua bagian utama. Pertama, ada firmware Arduino yang bertugas membaca sensor, menjalankan perhitungan PID, dan mengatur daya pemanas. Kedua, ada HMI berbasis HTML yang berjalan di browser untuk menampilkan data suhu dan mengontrol parameter sistem secara real-time.
Firmware Arduino
Berikut adalah kode lengkap firmware Arduino yang digunakan pada proyek ini. Nilai awal Kp, Ki, dan Kd dibuat 0 karena parameter tersebut nantinya diatur melalui HMI sebelum pengujian dimulai.
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
#define PWM_PIN 3
DHT dht(DHTPIN, DHTTYPE);
// Parameter PID
float Kp = 0;
float Ki = 0;
float Kd = 0;
// Setpoint suhu
float setpoint = 37.5;
// Variabel PID
float error = 0;
float previousError = 0;
float integral = 0;
float derivative = 0;
float pidOutput = 0;
// Sampling setiap 2 detik
unsigned long previousMillis = 0;
const unsigned long sampleTime = 2000;
// Batas integral untuk mencegah wind-up
const float integralMax = 60.0;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(PWM_PIN, OUTPUT);
// Pemanas awal dalam kondisi mati
analogWrite(PWM_PIN, 0);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= sampleTime) {
previousMillis = currentMillis;
// Membaca suhu
float temperature = dht.readTemperature();
// Cek apakah pembacaan sensor valid
if (isnan(temperature)) {
analogWrite(PWM_PIN, 0);
return;
}
// Menghitung error
error = setpoint - temperature;
// Komponen Integral
integral += error * (sampleTime / 1000.0);
// Anti-Windup
if (integral > integralMax) {
integral = integralMax;
}
if (integral < -integralMax) {
integral = -integralMax;
}
// Komponen Derivative
derivative = (error - previousError)
/ (sampleTime / 1000.0);
// Perhitungan PID
pidOutput =
(Kp * error) +
(Ki * integral) +
(Kd * derivative);
// Membatasi output PID ke rentang PWM Arduino
if (pidOutput > 255) {
pidOutput = 255;
}
if (pidOutput < 0) {
pidOutput = 0;
}
// Mengirim output PWM ke MOSFET
analogWrite(PWM_PIN, (int)pidOutput);
// Menyimpan error untuk perhitungan berikutnya
previousError = error;
// Mengirim data ke HMI
Serial.print(currentMillis / 1000.0);
Serial.print("\t");
Serial.print(setpoint);
Serial.print("\t");
Serial.print(temperature);
Serial.print("\t");
Serial.println((int)pidOutput);
}
// Membaca perintah dari HMI
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
command.trim();
// Format:
// P:55.0,I:0.20,D:4.2
if (command.startsWith("P:")) {
int pIndex = command.indexOf("P:");
int iIndex = command.indexOf(",I:");
int dIndex = command.indexOf(",D:");
if (pIndex >= 0 && iIndex >= 0 && dIndex >= 0) {
Kp = command.substring(pIndex + 2, iIndex).toFloat();
Ki = command.substring(iIndex + 3, dIndex).toFloat();
Kd = command.substring(dIndex + 3).toFloat();
// Reset integral
integral = 0;
}
}
// Format:
// S:37.5
else if (command.startsWith("S:")) {
setpoint = command.substring(2).toFloat();
// Reset integral saat setpoint berubah
integral = 0;
}
}
}
Kode tersebut mengatur sistem kontrol suhu inkubator menggunakan Arduino Uno, sensor DHT11, dan PWM. Arduino membaca suhu setiap 2 detik, lalu membandingkannya dengan setpoint 37,5°C untuk mendapatkan nilai error. Error tersebut diproses oleh kontrol PID melalui parameter Kp, Ki, dan Kd untuk menentukan seberapa besar daya pemanas yang dibutuhkan. Hasil perhitungan PID kemudian diubah menjadi nilai PWM 0–255 dan dikirim ke pin D3 untuk mengatur MOSFET dan lampu pemanas. Kode juga sudah dilengkapi anti-windup untuk membatasi nilai integral serta komunikasi serial dengan HMI, sehingga pengguna bisa mengubah parameter PID dan setpoint secara langsung tanpa perlu upload ulang program.
Kesimpulan
Dari proyek yang sudah dibuat dan diuji, sistem kontrol suhu inkubator menggunakan Arduino Uno dan PID berhasil menjaga suhu di sekitar setpoint 37,5°C. Sensor DHT11 digunakan untuk membaca suhu, kemudian Arduino mengolah data tersebut dengan algoritma PID dan mengatur daya lampu pemanas melalui PWM dan MOSFET. Dengan cara ini, pemanas nggak cuma bekerja dengan sistem nyala atau mati, tapi bisa menyesuaikan daya sesuai kondisi suhu sehingga proses pemanasan jadi lebih halus dan stabil.
Hasil pengujian menunjukkan suhu awal sekitar 30°C bisa mencapai suhu target dalam waktu kurang lebih 216 detik dengan overshoot yang tidak terlalu signifikan. Ditambah HMI berbasis HTML, kondisi suhu dan daya pemanas juga bisa dipantau secara real-time sekaligus digunakan untuk mengatur parameter PID tanpa perlu upload ulang program Arduino. Kalau kamu juga lagi ngulik proyek mikrokontroler yang menggunakan PWM, kamu bisa lanjut baca artikel Cara Menghubungkan TB6612FNG dengan Raspberry Pi untuk Mengontrol Arah Motor DC untuk melihat contoh penggunaan PWM dan motor driver pada proyek lainnya.
Sistem Kendali Suhu pada Inkubator Penetasan Telur Berbasis PID Diskrit Menggunakan Sensor DHT11 dan Aktuator Lampu Pijar
Blynk merupakan sebuah platform aplikasi android yang diperuntukan untuk berbagai kontroler hardware seperti arduino, esp8266, raspberry dsb untuk mengendalikan,... selengkapnya
Potensiometer adalah salah satu jenis resistor yang nilai resistansinya dapat diatur sesuai dengan kebutuhan rangkaian elektronika ataupun kebutuhan pemakainya.... selengkapnya
Semangat pagi, salam hangat dari saya untuk semua pengunjung indomaker.com. Kali ini kita akan belajar mengenai penggunaan timer relay... selengkapnya
Ada beberapa jenis view di Android dan kali ini yang kita akan bahas adalah ListView. ListView adalah view yang... selengkapnya
Dalam dunia elektronika untuk hobi dan prototyping, Arduino sering kali dianggap sebagai jalan termudah untuk mulai mengerjakan proyek mikrokontroler. Namun, ketika proyek mulai lebih komplikatif misalnya, jika ingin mengecilkan ukuran papan, mengurangi biaya produksi, atau membuat casing yang khusus,... selengkapnya
Hallo apa kabar pada artikel ini saya berbagi cara kontrol led menggunakan potensiometer pada NodeMCU. Jadi nanti akan mengatur... selengkapnya
Pada kesempatan ini kita akan menggunakan esp-01 untuk mendeteksi suhu dan kelembaban. Dimana kemarin kita sudah belajar cara menggunakan... selengkapnya
Sensor suhu lagi? Gpp ya disini kita belajar semua sensor suhu, nah tinggal sensor mana nih yang akan digunakan,... selengkapnya
Sensor MQ-2 merupakan sensor yang berfungsi untuk mendeteksi kandungan gas seperti Lpg, CO, asap dan masih banyak lainnya. Sensor... selengkapnya
Oke kali ini kita akan membahas salah satu board wifi yaitu kakak dari NodeMcu yang memiliki fungsi lebih +... selengkapnya
Features: Brand new and high quality. Control the speed of a DC motor with this controller. High efficiency, high torque,… selengkapnya
Rp 25.400TILT SENSOR adalah sensor untuk mendeteksi sudut kemiringan / derajat, dimana cara kerja sensor ini adalah dengan menggunakan 2 buah… selengkapnya
Rp 9.800Modul sensor tegangan AC bolak balik 1 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 21.000Description: TP5100 is a double switch buck 8.4V, single cell 4. 2V lithium battery charge management chip. Its ultra-compact QFN16… selengkapnya
Rp 10.600Item Deskripsi : This module performance is stable, measure the distance accurately. performance nearly the same as SRF05, SRF02 SRF05,… selengkapnya
Rp 13.900Case patern: Solid Warna : Merah dan Hijau Current: 10-20 mA Diameter: 3mm
Rp 300Tang Crimping Press Skun Ratchet YTH SN-48B Model YTH SN-48B FOR NON INSULATED TERMINAL YTH SN-48B dengan mata Press 0.5… selengkapnya
Rp 150.000Kabel Jumper Dupont Pelangi 10 cm female to female 1 lembar = 40 kabel
Rp 9.000Compatibility: USB v2.0 standard Interface: Network: USB Series: RS-485 Port: an independent RS-485 Connector: Network: USB type A connector Series:… selengkapnya
Rp 38.800Dual Volt Amp Meter Digital Ampere Meter Voltmeter 10A 0-100V Ammeter Dilengkapi dengan pengukuran Voltmeter dan Amperemeter dalam 1 display… selengkapnya
Rp 26.500Sistem Kendali Suhu pada Inkubator Penetasan Telur Berbasis PID Diskrit Menggunakan Sensor DHT11 dan Aktuator Lampu Pijar
Kategori
Artikel Terkait
- Cara Mengatur Kecepatan Motor DC dengan PWM Raspberry Pi dan TB6612FNG
-
Cara Menghubungkan TB6612FNG dengan Raspberry Pi untuk Mengontrol Arah Motor DC
-
Cara Membuat Alarm Keamanan Sederhana dengan Sensor PIR dan Raspberry Pi 5
-
Cara Menghubungkan Sensor PIR ke Raspberry Pi untuk Mendeteksi Gerakan
- Cara Mengetahui Alamat I2C SHT40 dengan ESP32-C3 Mini

Saat ini belum tersedia komentar.