Langsung ke isi
Stasiun 3 · MikrokontrolerProyek: pengendali suhu mandiri

Materi 12 dari 12 · Stasiun 3

Proyek: pengendali suhu mandiri

60 menit8 kartuDraf AI · belum direview

Setelah materi ini, kamu bisa:

  • Bisa merakit pengendali suhu yang menyalakan kipas lewat relay atau transistor saat ruangan panas.
  • Bisa menulis program dengan histeresis supaya kipas tidak nyala-mati terus di sekitar batas suhu.
  • Bisa menambah tombol untuk mode manual dan memantau semuanya lewat Serial.

Proyek stasiun 3

Kamu akan membuat alat yang bekerja sendiri tanpa komputer. Ia membaca suhu, memutuskan, lalu menyalakan atau mematikan kipas. Tombol menyalakan kipas secara manual.

Proyek ini memakai Input digital: tombol dan pull-up (tombol), ADC: membaca sensor analog (ADC dan termistor), Aktuator: relay, motor, servo (aktuator), dan Serial monitor dan debugging (Serial). Semua bekerja di tegangan rendah. Kipasnya kipas DC 5 V atau 12 V, bukan kipas 220 V.

Bahan

Diagram kabel proyek pengendali suhu

Ketuk untuk melihat fungsinya.

ESP32 DevKit
Otak proyek.
Termistor NTC 10 kΩ + resistor 10 kΩ
Pembagi tegangan ke GPIO 34 (lihat Sensor analog: LDR dan termistor dan ADC: membaca sensor analog).
Tombol
Ke GPIO 4 dan GND, pakai INPUT_PULLUP (lihat Input digital: tombol dan pull-up).
Kipas DC kecil + MOSFET logic-level (yang sudah menyala penuh dengan 3,3 V) atau modul relay 3,3 V
Aktuator. Diberi daya dari sumber sendiri dengan GND bersama, plus dioda flyback (lihat Aktuator: relay, motor, servo).
LED + 220 Ω
Indikator mode manual di GPIO 2.

Tebak dulu

Program sederhana menyalakan kipas kalau suhu > 30 °C dan mematikannya kalau ≤ 30 °C. Suhu ruangan bergoyang antara 29,9 dan 30,1 °C.

  1. Apa yang terjadi?
    • Kipas menyala stabil
    • Kipas nyala-mati berkali-kali dalam waktu singkat
    • Kipas tidak pernah menyala
    Jawaban

    Kipas nyala-mati berkali-kali dalam waktu singkat. Setiap goyangan kecil melewati batas membuat kipas berganti keadaan. Relay cepat aus dan bunyinya mengganggu. Solusinya histeresis.

Histeresis, dua batas

Pakai dua batas, bukan satu. Kipas menyala saat suhu naik melewati 31 °C, tapi baru mati saat suhu turun di bawah 29 °C. Di antara keduanya, kipas mempertahankan keadaan sebelumnya.

AC dan kulkas bekerja dengan cara yang sama. Jarak di antara dua batas itu disebut pita histeresis.

Ikuti logika pengendalinya

Program ini menerima beberapa bacaan suhu berturut-turut. Jalankan dan perhatikan keadaan kipas. Kartu terbuka setelah selesai.

Simulasi interaktif tersedia saat JavaScript aktif.

Di 30,2 °C kipas bisa menyala atau mati, tergantung keadaan sebelumnya. Itulah histeresis. Pengendali punya "ingatan" lewat variabel kipas.

Program lengkap

Pada modul relay yang aktif LOW (relay menyala saat sinyalnya 0 V), HIGH dan LOW di baris 18 perlu dibalik. Cek modulmu.

const int NTC = 34, TOMBOL = 4, KIPAS = 18, LED = 2;
bool kipas = false, manual = false;
void setup() {
  Serial.begin(115200);
  pinMode(TOMBOL, INPUT_PULLUP);
  pinMode(KIPAS, OUTPUT); pinMode(LED, OUTPUT);
}
float bacaSuhu() {
  float v = analogReadMilliVolts(NTC) / 1000.0;
  float r = 10000.0 * v / (3.3 - v);
  return 1.0 / (1.0 / 298.15 + log(r / 10000.0) / 3950.0) - 273.15;
}
void loop() {
  if (digitalRead(TOMBOL) == LOW) { manual = !manual; delay(300); }
  float suhu = bacaSuhu();
  if (!kipas && suhu > 31) kipas = true;
  if (kipas && suhu < 29) kipas = false;
  digitalWrite(KIPAS, (kipas || manual) ? HIGH : LOW);
  digitalWrite(LED, manual ? HIGH : LOW);
  Serial.printf("suhu=%.1f kipas=%d manual=%d\n", suhu, kipas, manual);
  delay(1000);
}
  • Baris 9: analogReadMilliVolts memakai kalibrasi pabrik ESP32 (lihat [[p6]]).
  • Baris 14: Tombol membalik mode manual. delay(300) adalah debounce kasar (lihat [[p5]]). Tombol harus ditahan sebentar karena loop menunggu 1 detik.
  • Baris 18: Kipas menyala kalau otomatis meminta ATAU mode manual aktif (lihat [[k10]]).

Kalau tidak bekerja

  1. Serial menunjukkan suhu −40 °C atau angka sangat aneh.
    • Termistor atau resistor 10 kΩ tidak tersambung atau tertukar
    • Kipas rusak
    • Baud rate salah
    Jawaban

    Termistor atau resistor 10 kΩ tidak tersambung atau tertukar. Cek pembagi tegangannya dengan multimeter (lihat Multimeter: cara mengukur). Tegangan di GPIO 34 pada suhu kamar seharusnya sekitar 1,5–1,7 V.

  2. ESP32 restart setiap kali kipas mulai berputar.
    • Kipas diberi daya dari papan, atau tidak ada dioda flyback
    • Programnya terlalu panjang
    • Termistor terlalu panas
    Jawaban

    Kipas diberi daya dari papan, atau tidak ada dioda flyback. Beri kipas sumber sendiri dengan GND bersama, pasang dioda flyback dan kapasitor (lihat Aktuator: relay, motor, servo).

Proyek selesai

  • Baca sensor → putuskan dengan histeresis → kendalikan aktuator. Diulang terus.
  • Histeresis mencegah aktuator nyala-mati terus di sekitar batas.
  • Serial membantu memantau dan mencari kesalahan.

Pancingan

Alatmu bekerja, tapi hanya di ruangan itu. Bagaimana kalau kamu ingin melihat suhunya dari HP, di mana pun? Itu stasiun 4, mulai dari materi Apa itu internet.

Berikutnya

Referensi
  • Dokumentasi Arduino-ESP32, analogReadMilliVolts dan Serial.printf.
  • K. J. Åström dan R. M. Murray, Feedback Systems, bab tentang pengendalian on-off dan histeresis.

Draf AI. Belum direview manusia. Pilihan MOSFET atau relay harus sesuai tegangan dan arus kipas yang dipakai.

Kode materi p11 · versi 0.1 · 2026-10-06