ESP32 dapat mengubah AC konvensional yang memakai infrared menjadi controller berbasis suhu tanpa memodifikasi unit AC. Jalur sinyal dasarnya sederhana: sensor suhu ruangan memberi data ke ESP32, firmware menentukan apakah pendinginan diperlukan, lalu IR LED mengirim frame yang setara dengan sinyal dari remote bawaan.

Bagian yang sulit bukan menghasilkan cahaya infrared. Tantangannya adalah menjaga control loop tetap stabil ketika protokol IR AC dapat membawa seluruh state remote dalam setiap transmisi.

Desain yang andal karena itu memerlukan tiga batas: rentang suhu yang mencegah keputusan berubah terlalu cepat, interval minimum antar-control action, dan model state AC lokal yang selalu menghasilkan frame IR konsisten.

Satu threshold membuat command mudah bolak-balik

Aturan paling sederhana dapat ditulis seperti ini:

if temperature >= 28 C:
    send AC ON
else:
    send AC OFF

Sensor nyata tidak terus berada pada satu nilai persis. Aliran udara, resolusi sensor, posisi pemasangan, dan fluktuasi suhu normal dapat membuat pembacaan berulang kali melintasi 28 °C:

27.9 -> OFF
28.1 -> ON
27.8 -> OFF
28.0 -> ON

Perilaku ini tidak diinginkan meskipun AC mempunyai proteksi internal sendiri. ESP32 terus mengirim command yang saling berlawanan, indoor unit dapat berbunyi atau berubah state berulang kali, dan controller menjadi lebih sensitif terhadap noise pengukuran daripada kondisi ruangan yang sebenarnya.

Histeresis memisahkan threshold untuk meminta pendinginan dari threshold untuk menghentikannya.

Contohnya:

temperature >= 30 C -> request cooling
temperature <= 26 C -> release cooling
26 C < temperature < 30 C -> keep previous state

Controller sekarang mempunyai memory. Pembacaan 28 °C tidak menentukan output sendirian; state pendinginan sebelumnya juga ikut menentukan.

Transisi state yang ringkas:

if cooling == false and temperature >= 30:
    cooling = true

if cooling == true and temperature <= 26:
    cooling = false

Dead band ini mencegah osilasi kecil di sekitar satu threshold berubah menjadi rangkaian command IR.

Sampling suhu dan transmisi IR bekerja pada skala waktu berbeda

Sensor ruangan dapat dibaca lebih sering daripada kebutuhan AC menerima command baru. Kedua aktivitas ini sebaiknya tidak diikat sehingga setiap pembacaan valid selalu menghasilkan frame IR.

Firmware dapat membaca sensor secara periodik, memvalidasi atau memfilter hasilnya, memperbarui desired control state, lalu mengirim hanya saat desired state AC benar-benar berubah.

Strukturnya lebih tepat seperti ini:

sample sensor
    |
    v
validate reading
    |
    v
apply hysteresis
    |
    v
did desired AC state change?
    |             |
   no            yes
    |             |
    v             v
 do nothing   check command interval
                  |
                  v
              send IR state

Minimum command interval menambah satu lapisan pembatas. Mekanisme ini mencegah sensor bermasalah, reboot loop, atau bug aplikasi membanjiri receiver dengan frame.

Interval tersebut adalah kebijakan controller, bukan pengganti proteksi operasi dari pabrikan AC. ESP32 tetap hanya mengirim permintaan seperti remote; appliance tetap mengendalikan compressor, fan, dan sistem refrigerasinya sendiri.

Pesan infrared AC sering bersifat stateful

Remote televisi umumnya mempunyai command yang berperilaku seperti event tombol individual. Remote AC sering berbeda. Banyak protokol AC mengirim representasi state remote saat ini, termasuk field seperti power, operating mode, target temperature, fan speed, swing, dan checksum.

Hal ini mengubah model firmware.

Misalkan ESP32 hanya ingin mengubah target temperature dari 24 °C menjadi 25 °C. Library khusus protokol mungkin tetap perlu mengirim state lengkap seperti:

power = on
mode = cool
temperature = 25
fan = auto
swing = off

Mengirim ulang raw frame hasil capture untuk “25 °C” tanpa melacak setting lain dapat mengembalikan setting lain yang tersimpan di dalam capture tersebut.

Library seperti IRremoteESP8266 menyediakan class AC khusus protokol dan abstraksi state AC generik untuk protokol yang didukung. Protokolnya tetap harus cocok dengan remote dan indoor unit yang sebenarnya; tidak ada satu frame universal untuk semua merek dan model.

State lokal dapat berbeda dari kondisi fisik AC

Kontrol infrared pada umumnya berjalan satu arah. Setelah ESP32 mengirim frame, controller tidak otomatis menerima acknowledgement dari AC.

Akibatnya, kondisi seperti ini dapat terjadi:

ESP32 believes: AC = ON, COOL, 24 C
physical AC:    OFF

Beberapa kejadian dapat menimbulkan perbedaan tersebut:

  • IR LED tidak mengarah dengan benar;
  • sinyal terhalang benda;
  • ESP32 reboot dan kehilangan state sebelumnya;
  • seseorang menggunakan remote asli;
  • protocol atau model variant yang dikirim tidak tepat.

Karena itu, automation sebaiknya memperlakukan state AC lokal sebagai intended state, bukan feedback yang pasti dari appliance.

Jika sistem harus tetap bekerja berdampingan dengan remote asli, IR receiver dapat membantu sinkronisasi dengan mengamati traffic remote yang kompatibel lalu memperbarui model lokal ESP32. Cara ini tetap bergantung pada protokol yang dapat didecode dan receiver yang benar-benar menerima transmisi.

Pilihan lain adalah periodic state reassertion, tetapi harus diterapkan secara sengaja. Pengiriman ulang dapat mengembalikan konfigurasi yang diinginkan setelah sebuah frame gagal diterima, tetapi juga dapat menimpa perubahan manual yang baru dilakukan pengguna.

Posisi sensor dapat lebih berpengaruh daripada algoritma

Sensor harus mewakili udara ruangan, bukan suhu board ESP32 atau aliran udara dingin yang sempit dari indoor unit.

Sensor yang dipasang tepat di jalur hembusan AC dapat melaporkan penurunan suhu sangat cepat sementara bagian ruangan lain masih panas. Controller dapat melepas cooling terlalu dini, lalu memintanya lagi setelah aliran udara dingin lokal menghilang.

Posisi dekat regulator yang hangat, dinding enclosure, jendela, atau sinar matahari langsung dapat menimbulkan bias ke arah sebaliknya.

Control band harus dipilih bersama posisi sensor dan perilaku termal ruangan. Rentang histeresis empat derajat mungkin sesuai pada satu instalasi dan terlalu lebar pada instalasi lain. Properti yang penting adalah kedua threshold terpisah cukup jauh sehingga variasi pengukuran jangka pendek tidak terus-menerus mengubah requested state.

Filtering dapat membantu pembacaan yang noisy, tetapi filtering dan histeresis menyelesaikan masalah berbeda. Filtering mengurangi variasi jangka pendek pada input; histeresis menahan perubahan output sampai boundary lain dilintasi.

Output IR LED memerlukan margin elektrik

IR LED adalah beban berbasis arus. GPIO ESP32 sebaiknya menyediakan signal logika, sedangkan arus LED diatur melalui driver stage dan current-limiting resistor yang sesuai ketika kebutuhan transmit current berada di luar arus yang layak disuplai langsung oleh GPIO.

Susunan umum:

ESP32 GPIO
    |
    v
transistor or MOSFET driver
    |
    v
IR LED + current limiting resistor
    |
    v
power rail / ground

Nilai resistor, transistor, supply voltage, dan pulse current bergantung pada IR LED serta rangkaian driver yang dipilih. Nilainya harus berasal dari electrical limit komponen, bukan menyalin schematic dengan komponen yang tidak diketahui.

Jalur optik sama pentingnya dengan rangkaian elektrik. Receiver IR pada indoor unit harus menerima energi infrared termodulasi yang cukup dengan carrier dan timing yang sesuai. Rangkaian yang bekerja dari jarak 20 cm pada breadboard belum tentu mempunyai margin yang cukup untuk jarak satu ruangan.

Firmware sebaiknya memisahkan sensing, policy, dan protocol encoding

Struktur firmware lebih mudah dianalisis ketika tiga concern tetap terpisah:

temperature sensing
        |
        v
control policy
(hysteresis + timing)
        |
        v
desired AC state
        |
        v
protocol encoder
        |
        v
IR transmitter

Layer sensing menghasilkan suhu yang sudah divalidasi. Policy menentukan apakah cooling diminta. Layer AC state mengubah keputusan itu menjadi power, mode, temperature, fan, dan setting lain. Baru setelah itu protocol layer mengubah setting menjadi waveform infrared khusus merek.

Pemisahan ini mencegah threshold sensor tercampur dengan kode khusus Panasonic, Daikin, LG, Samsung, atau protokol lain. Sensor dapat diganti atau rentang histeresis dapat diubah tanpa menulis ulang IR encoder.

Control rule akhirnya tetap kecil, tetapi batas sistem menjadi jelas: perubahan suhu tidak otomatis berarti transmisi IR, satu transmisi IR merepresentasikan state AC yang konsisten, dan state di ESP32 hanyalah keyakinan controller saat ini kecuali ada feedback yang mengonfirmasi kondisi appliance.

Perbedaan tersebut yang membuat remote berbasis suhu menjadi embedded control system yang stabil, bukan sekadar GPIO yang terus memutar ulang command infrared.