Pencatatan & Grafik Event Termostat 24 V dengan Optokopler dan Raspberry Pi
Banyak proyek otomatisasi rumah melibatkan pembangunan termostat dari nol, tetapi bagaimana jika Anda sudah memiliki termostat terprogram dan hanya ingin mencatat saatnya menyala atau mati? Panduan ini menjelaskan cara menggunakan optokopler untuk mengisolasi dengan aman sistem HVAC 24 V AC dari Raspberry Pi, menangkap sinyal tingkat logika, mencatat event, dan memplot data suhu secara real-time.
⚠️ Bekerja dengan tegangan jaringan berlistrik dapat berbahaya. Lanjutkan hanya jika Anda memahami keselamatan listrik dan memiliki keterampilan yang diperlukan. Penulis tidak dapat ditanggung jawab atas kerusakan pada peralatan, hewan peliharaan, atau properti.
Langkah 1: Kumpulkan Bagian dan Alat
Komponen yang diperlukan:
- Optokopler HCPL3700 (termasuk pengubah arus)
- 2 × resistor 3,3 kΩ, ½ W atau lebih
- Kapasitor elektrolitik 10 µF, ≥10 V
- Kapasitor keramik 0,1 µF
- Resistor pull-up 8 kΩ (atau 3,3 kΩ + 4,7 kΩ secara seri)
- Raspberry Pi (model apa pun dengan GPIO 3,3 V)
- Kabel terinsulasi dua konduktor, biji dengan konektor putus-putus cepat
- Peralatan elektronik dasar: breadboard, kabel jumper, dll.
Tambahan sensor suhu opsional:
- Sensor suhu digital ADT7410
- Papan breakout SOIC
- Kapasitor 0,1 µF tambahan
- 4 × resistor 10 kΩ
Alat desain PCB opsional:
- Blok sekrup dua terminal
- Pin header betina untuk papan SOIC
- Pin header jantan atau betina untuk konektivitas Pi/Arduino
- Versi SMD resistor untuk mengurangi ukuran papan
Alat:
- Multimeter (mode tegangan AC)
Persyaratan:
- Sistem HVAC 24 VAC
- Python dan library terkait (misalnya,
hipi-i2c) - Opsional: Akun Plotly untuk grafik online
- Opsional: Eagle (versi gratis) untuk desain PCB
Langkah 2: Identifikasi Kabel Relai Termostat
Sebagian besar sistem HVAC tinggal beroperasi pada 24 VAC. Termostat terprogram biasanya menyediakan daya dari rangkaian "power-stealing" dan memindai relai untuk mengaktifkan pemanas atau penangani udara. Untuk memantau status relai, temukan pasang kabel yang membawa suplai 24 VAC ke unit HVAC.
Dengan multimeter diatur ke mode tegangan AC, uji setiap pasang kabel saat HVAC menyala dan mati. Catat pembacaan tegangan; pasang yang benar harus menunjukkan ~24 VAC (sering lebih tinggi, misalnya 28–30 VAC) saat sistem aktif dan 0 VAC saat idle.
Langkah 3: Tambahkan Kabel Pemantauan
Matikan daya HVAC dan konfirmasi dengan multimeter Anda bahwa tidak ada tegangan yang tersedia. Lepas termostat dari dasar pemasangannya untuk membuka kabel. Sambungkan dua kabel tambahan ke pasang konduktor relai yang dipilih. Gunakan konektor putus-putus cepat di ujung Pi untuk pemeliharaan yang mudah.
Langkah 4: Buat Rangkaian Isolasi
Menghubungkan 24 VAC secara langsung ke Raspberry Pi tidak mungkin dilakukan. Optokopler seperti HCPL3700 menyediakan isolasi listrik sambil otomatis mengubah tegangan input menjadi arus searah.
Poin-poin penting dalam skematis:
- Dua resistor 3,3 kΩ (berdaya ≥½ W) pada pin input AC menyetel ambang pemicu. Lihat datasheet HCPL3700 untuk perhitungan yang tepat.
- Kapasitor elektrolitik 10 µF, ≥10 V di seluruh output DC pengubah arus merapikan sinyal dan mencegah GPIO Pi berkedip pada frekuensi garis listrik.
- Kapasitor keramik 0,1 µF di seluruh pin suplai optokopler mengurangi kebisingan frekuensi tinggi.
- Karena HCPL3700 menggunakan output kolektor terbuka, resistor pull-up diperlukan. Resistor 8 kΩ (atau 3,3 kΩ + 4,7 kΩ seri) secara andal menarik garis ke tinggi untuk logika 3,3 V Pi.
Sambungkan output optokopler ke pin GPIO Pi (misalnya, GPIO23). Gunakan rel 3,3 V Pi untuk memasok daya pin suplai optokopler. Rubungkan ground Pi dan optokopler bersama.
Setelah dihubungkan, Pi dapat mendeteksi logika rendah setiap kali relai HVAC diaktifkan dan logika tinggi saat dinonaktifkan.
Untuk skematis lengkap dan perhitungan komponen, lihat catatan aplikasi HCPL3700.
Langkah 5: Instal Perangkat Lunak dan Catat Data
Gunakan Python untuk membaca pin GPIO, mencatat stempel waktu setiap perubahan status, dan menulis data ke berkas CSV atau database. Skrip sederhana mungkin terlihat seperti ini:
import RPi.GPIO as GPIO
import time
import csv
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
with open('thermostat_log.csv', 'a') as f:
writer = csv.writer(f)
while True:
state = GPIO.input(23)
timestamp = time.time()
writer.writerow([timestamp, state])
time.sleep(0.5)
Untuk grafik real-time, unggah CSV ke Plotly atau gunakan library ringan seperti Matplotlib untuk menghasilkan grafik lokal.
Langkah 6: Perluas dengan Sensor Suhu (Opsional)
Integrasikan ADT7410 melalui I²C untuk mencatat suhu lingkungan bersama status relai. Sambungkan sensor ke pin SDA/SCL Pi, atur alamat (0x48 secara default), dan baca register suhu 16-bit. Simpan pembacaan dalam berkas log yang sama dengan kolom terpisah.
Ketika Anda memiliki data suhu, gunakan Plotly untuk membuat grafik sumbu ganda: HVAC pada sumbu utama dan suhu pada sumbu sekunder, sehingga Anda dapat mengkorejasikan aktivitas termostat dengan perubahan lingkungan.
Dengan mengikuti langkah-langkah ini, Anda dapat secara aman memantau dan mencetak perilaku termostat yang sudah ada tanpa memodifikasi perangkat itu sendiri.