OpenTherm protokolü, kombiler (boiler) ile oda termostatları veya kontrol üniteleri arasında çift yönlü dijital iletişim sağlayan standart bir protokoldür. Standart aç/kapa termostatların aksine, kombinin su sıcaklığını modüle etmesine, anlık gaz tüketimini, su basıncını ve arıza kodlarını okumaya olanak tanır. OpenTherm Adaptör kartı, kombinin yüksek voltajlı bus hattı ile mikrokontrolcünün (Arduino) 5V/3.3V mantık seviyeleri arasında opto-izolasyonlu güvenli bir köprü kurar.

Görseldeki devre şemasına göre Arduino Uno, OpenTherm Adaptör ve Kombi (Boiler) arasındaki bağlantı haritası şu şekildedir:
| Bileşen / Hat | Adaptör / Kombi Terminali | Arduino Uno Karşılığı | Açıklama / Kablo Rengi |
|---|---|---|---|
| Güç ve Toprak | 5V | 5V | Güç Beslemesi (Kırmızı Kablo) |
| GND | GND | Toprak Hattı (Siyah Kablo) | |
| INT / RX (Interrupt) | Pin 2 | Kesme / Veri Giriş Hattı (Sarı Kablo) | |
| Sinyal / Kontrol | OUT / TX | Pin 3 | Veri Çıkış Hattı (Sarı Kablo) |
| Kombi Bağlantısı (OT) | OT1 ve OT2 (Klemens) | Kombi Termostat Girişi | Çift Damarlı Kablo (Mavi Kablolar) |
Aşağıdaki C++ kodu, kombiye hedef su sıcaklığı göndermek ve kombiden gelen verileri okumak için popüler OpenTherm kütüphanesini kullanır:
#include <arduino.h>
#include <opentherm.h>
// Pin Tanımlamaları (Şemaya Göre)
const int inPin = 2; // Interrupt pini (Sarı Kablo - Pin 2)
const int outPin = 3; // Sinyal çıkış pini (Sarı Kablo - Pin 3)
// OpenTherm Nesnesini Oluştur (false: Master modu)
OpenTherm ot(inPin, outPin, false);
void setup() {
Serial.begin(115200);
delay(500);
// OpenTherm protokolünü başlat
ot.begin();
Serial.println("\nOpenTherm Kombi Kontrol Sistemi Başlatıldı.");
}
void loop() {
// Kombiye istenen kalorifer su sıcaklığını gönder (Örn: 45.0 °C)
float requestedWaterTemperature = 45.0;
// Kombiyi çalıştır ve hedef sıcaklığı ilet
unsigned long response = ot.setBoilerStatus(true, true, requestedWaterTemperature);
if (ot.isResponseValid(response)) {
Serial.println("Kombi İletişimi Başarılı.");
// Kombiden gelen dönüş suyu sıcaklığını oku
float returnTemperature = ot.getReturnTemperature();
Serial.print("Dönüş Suyu Sıcaklığı: ");
Serial.print(returnTemperature);
Serial.println(" °C");
// Kombi su basıncını oku
float pressure = ot.getPressure();
Serial.print("Kombi Su Basıncı: ");
Serial.print(pressure);
Serial.println(" bar");
} else {
Serial.println("Hata: Kombiden yanıt alınamadı veya bağlantı kopuk!");
}
delay(10000); // Her 10 saniyede bir veri alışverişi yap
}
Kütüphaneyi Arduino üzerinden eklemeyi unutmayınız. Ihor Melnyk opentherm kütüphanesi ekli olmalıdır.
Henüz yorum yapılmamış. İlk yorumu siz yapın!