Tutorial Mengontrol Suhu Menggunakan Arduino ESP32 dengan PID
Arduino ESP32 adalah mikrokontroler yang sangat populer karena performanya yang tinggi, fitur konektivitas, dan kemudahan penggunaannya. Salah satu aplikasi menarik dari ESP32 adalah untuk mengontrol suhu secara presisi menggunakan algoritma PID (Proportional-Integral-Derivative). Dalam artikel ini, kita akan membahas bagaimana ESP32 dapat digunakan untuk mengontrol elemen pemanas dengan algoritma PID, serta manfaat dan langkah-langkah implementasinya.
Apa itu PID?
PID adalah algoritma kontrol yang digunakan untuk menjaga variabel tertentu (seperti suhu) agar tetap pada nilai yang diinginkan (setpoint). PID bekerja dengan menghitung nilai error, yaitu perbedaan antara setpoint dan nilai aktual, lalu menghasilkan output untuk meminimalkan error tersebut. Tiga komponen utama dalam PID adalah:
- Proportional (P): Menghasilkan output yang sebanding dengan nilai error.
- Integral (I): Mengatasi error akumulatif dalam jangka waktu panjang.
- Derivative (D): Memprediksi perubahan error untuk mencegah overshoot.
Komponen yang Dibutuhkan
Untuk membuat sistem kontrol suhu menggunakan ESP32 dan PID, Anda memerlukan:
1. Board Arduino ESP32
2. Sensor suhu (misalnya, DS18B20, thermocouple, atau NTC)
3. Elemen pemanas (heater)
4. Driver relay atau modul MOSFET untuk mengontrol heater
5. LCD atau Serial Monitor untuk menampilkan data
6. Power supply sesuai kebutuhan perangkat keras
Cara Kerja Sistem PID ini adalah
1. Pembacaan Suhu : Sensor suhu membaca suhu aktual di sekitar elemen pemanas dan mengirimkan data ke ESP32.
2. Perhitungan PID : ESP32 menggunakan algoritma PID untuk menghitung output berdasarkan error antara suhu aktual dan suhu yang diinginkan (setpoint).
3. Kontrol Output: Output dari PID digunakan untuk mengatur intensitas pemanasan melalui relay atau MOSFET.
4. Feedback Loop: Proses ini terus berulang hingga suhu stabil pada setpoint.
#include <PID_v1.h>
// Define Pins
#define HEATER_PIN 2
#define TEMP_SENSOR_PIN 4
// PID Variables
double Setpoint, Input, Output;
// PID Tuning Parameters
double Kp = 2, Ki = 5, Kd = 1;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
void setup() {
pinMode(HEATER_PIN, OUTPUT);
Serial.begin(115200);
// Initialize PID
Setpoint = 100.0; // Desired temperature in Celsius
myPID.SetMode(AUTOMATIC);
}
void loop() {
// Read temperature from sensor (replace with actual sensor reading)
Input = readTemperature();
// Compute PID output
myPID.Compute();
// Control heater based on PID output
analogWrite(HEATER_PIN, Output);
// Display data
Serial.print(“Temperature: “);
Serial.println(Input);
}
double readTemperature() {
// Simulate temperature reading (replace with actual sensor code)
return random(95, 105); // Replace with sensor reading
}
Untuk Source Code lebih lengkapnya bisa menghubungi Admin Botduino
Reviews
There are no reviews yet.