Kombi Termostat Yapımı

24 Kasım 2019
kombi termostat yapımı

Daha önce kombi için kablosuz kombi termostat yapımı paylaşmıştım. Onu biraz daha zenginleştirerek gözede hitap etsin diye birkaç düzenleme ile yeni bir termostat yaptım. Açıkçası potansiyometrenin dengesiz çalışması beni sinir ediyordu o yüzden buton ile yapmaya karar verdim. Detaylar konu devamında..

Kombi Termostat Yapımı

Daha önce yapmış olduğum kombi termostatına buradan ulaşabilirsiniz.Aslında çok daha güzel fikirlerim vardı termostat için uzaktan yönetme vs gibi ama malum evde büyüklerimiz olduğu için teknolojiyi son anlamda kullanamıyoruz. Bu nedenle butonlu basit bir kullanım sağlamak için bu versiyonu gerçekleştirdim. 3 boyutlu yazıcı aldığım için bu konuda çok faydası oldu diyebilirim. Uğraşmadan hazır olarak kutuya malzemeleri kolayca yerleştirebiliyoruz.

Malzemelere ve kodlamalara geçmeden önce görsel olarak ne yapmışız bir bakalım.

kombi termostat yapımı

Önceki termostat adaptör ya da 9v pil ile çalışmak zorundaydı. Lcd ekranlı modellerde 9v pil çok dayanmıyor bu yüzden bende direk 220v bağlayabileceğim bir termostat planladım. Yani ister prizden kablo çekin sabitleyin isterseniz fiş yapın direkt prize bağlayın. Bu projede teyp fişi ile tak çıkar şeklinde olacak ve 220 voltu içindeki mini devreyle 5 volta düşürecek şekilde yaptım.

5 volta düşüren mini devre;

220 Voltu 5 Volta Çevirme

Şimdi malzemelere geçelim:

  1. 220v to 5v devre
  2. teyp kablosu
  3. teyp giriş soket
  4. plastik proje kutusu
  5. arduino pro mini
  6. ısı nem ölçer sensör
  7. 10k mini potansiyometre
  8. 2 adet push buton

Bağlantı şemaları

Verici:

Kombi Termostat Yapımı

 

 

Alıcı:

Kombi Termostat Yapımı

 

Pin Bağlantıları:

Verici:

Arduino pro mini

2 – buton

3 – verici data pinine

4 –  buton

5 – dht11 sıcaklık nem sensörü data pinine

7 – lcd ekran 4.pine

8 – lcd ekran 6

9 – lcd ekran 11

10 – lcd ekran 12

11 – lcd ekran 13

12 – lcd ekran 14

2 adet potansiyometre kullanıyorum 10k 1k bunlardan 10k olanı ekranı ayarlamak için orta bacağını lcd ekranın 3.pinine

diğerini ise ekran ışık şiddetini azaltıp artırmak için orta bacağını 15.pine bağlıyorum. Bağlantı şemasını incelerseniz daha iyi anlayabilirsiniz.

 

Alıcı:

Arduino pro mini

2 – led uzun bacak

3 –  alıcı data pini

4 – röle in pini

 

 

 

Şimdi görsellerle nasıl bağlantılar yapmışım buna bakalım.

kombi termostat yapımı kombi termostat yapımı kombi termostat yapımı kombi termostat yapımı kombi termostat yapımı kombi termostat yapımı

kombi termostat yapımı

kombi termostat yapımı

 

kombi termostat yapımı kombi termostat yapımı kombi termostat yapımı

 

Şimdi termostat nasıl çalışıyor kodlamasına bakalım:

Verici Kodları:

/* 433 mhz kablosuz kombi termostatı yapımı
   Ağustos 2019*/
   
 /* www.orcunakyol.com.tr */
 

#include "DHT.h" //kütüphaneyi içeri alıyoruz
#define DHTPIN 5 //sıcaklığı okuduğumuz data pini
#define DHTTYPE DHT11 // dht hangi verisyon olduğunu yazıyoruz üzerinde yazar
DHT dht(DHTPIN, DHTTYPE);  //dht kısa ismini ve pinini veriyoruz.
int b,c,d;        //  Kullanacağımız sıcaklık nem değişkenler.

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);

#include <VirtualWire.h> // Bu kartın arduino ile çalışabilmesi için gerekli kütüphane yazı içinde bulabilirsiniz.
char*mesaj; // burada bir char tanımlıyoruz göndereceğimiz mesajı bunun içine yazarak göndereceğiz.
char*ileti;

//buton kısmı

const int buton = 2; // artırma butonu
const int buton_2= 4; //azaltma butonu
int sayac = 15; // sayımızı tutacak değişken 
int butonDurumu = 0; // ilk butonu sıfırlıyoruz basılı olarak görünce 1 olacak
int sondurum = 0; // butonu tekrar sıfırlıcaz ki saymasın bi daha
int butonDurumu_2 = 0; //bunlarda ikinci buton için aynı şeyler
int sondurum_2 = 0;

//buton kısmı bitti.

int ekrana_yazma=25;
int lcd_yazma=14;
 
void setup() {
  
dht.begin(); //dht haberleşmeyi açtık
pinMode(buton,INPUT);
pinMode(buton_2, INPUT);
Serial. begin(9600); 
   vw_set_ptt_inverted(true);
   vw_set_tx_pin(3); // vericideki data yazan pini bağladığımız pin numarası.
   vw_setup(4000);
   ileti="5";
   b=dht.read();   // dht11 kontrol
c=dht.readTemperature(); // sıcaklığı c ye aktardık
d =dht.readHumidity();  // nemi d ye aktardık  
lcd.begin(16, 2); //lcd ekrana yazıyoruz
lcd.setCursor(0, 0);
lcd.print("Oda:");
lcd.print(c);
lcd.print("  Nem: %");
lcd.print(d);
lcd.setCursor(0,1);
lcd.print("istenilen:");
lcd.print(sayac);
}
 
void loop() {

butonDurumu = digitalRead(buton); 
butonDurumu_2 = digitalRead(buton_2); 
if (butonDurumu != sondurum) { 
if (butonDurumu == HIGH) { 
sayac++; 
Serial.println(sayac);
} 
delay(50); 
} 
if (butonDurumu_2 != sondurum_2) { 
if (butonDurumu_2 == HIGH) { 
sayac--; 
Serial.println(sayac); 
} 
delay(50); 
} 
sondurum = butonDurumu;
sondurum_2 = butonDurumu_2;
 
b=dht.read();   // dht11 kontrol
c=dht.readTemperature(); // sıcaklığı c ye aktardık
d =dht.readHumidity();  // nemi d ye aktardık  



  if(ekrana_yazma != c || lcd_yazma!=sayac){
    Serial.println(c);
    lcd.begin(16, 2); //lcd ekrana yazıyoruz
lcd.setCursor(0, 0);
lcd.print("Oda:");
lcd.print(c);
lcd.print("  Nem: %");
lcd.print(d);
lcd.setCursor(0,1);
lcd.print("istenilen:");
lcd.print(sayac);
    ekrana_yazma=c;
    lcd_yazma=sayac;
  }
  
  //Burada istenilen sıcaklık, oda sıcaklığından büyük ise kombi çalışır değilse çalışmaz.
  if (sayac > c) {
    mesaj = "1" ; //kombi çalışma mesajı.
    gonder();
  } 
  else if (sayac < c){
    mesaj="0"; //kombi kapat, kapalı kalmaya devam et.
    gonder();
  }
}


void gonder (){

if (ileti != mesaj){
   Serial.println(mesaj);
   vw_send((uint8_t *)mesaj, strlen(mesaj)); //hazırladığımız mesaj değişkenindeki içeriği butona basılma durumuna göre alıcıya gönderdik.
   vw_wait_tx();
   ileti = mesaj;
   delay(100);
}
}

 

Alıcı Kodları:

/* 433 mhz kablosuz kombi termostatı yapımı
   Ağustos 2019*/
   
 /* www.orcunakyol.com.tr */



#include <VirtualWire.h>  // Bu kartın arduino ile çalışabilmesi için gerekli kütüphane yazı içinde bulabilirsiniz.
char*mesaj;  // // burada bir char tanımlıyoruz alacağımız mesajı bunun içine yazarak göreceğiz.
int led=2; //yanacak olan ledi 2.pine bağlıyoruz.
int kombi=4;
 
void setup() {
pinMode(led,OUTPUT);
pinMode(kombi, OUTPUT);
digitalWrite(kombi, HIGH);
 
    vw_set_ptt_inverted(true);
    vw_set_rx_pin(3); // vericideki data yazan pini bağladığımız pin numarası.
    vw_setup(4000);
    vw_rx_start();
}
 
void loop() {
    uint8_t buf[VW_MAX_MESSAGE_LEN];  // gelen mesajı tanımlıyoruz.
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    if (vw_get_message(buf, &buflen)) // Eğer gelen mesaj var ise içerisine gir.
    {
         if(buf[0]=='1'){ //mesaj 2 ise ledi yak
         digitalWrite(led,HIGH);
         digitalWrite(kombi, LOW);
         delay(100);
         }
         if(buf[0]=='0'){ //gelen mesaj 5 ise söndür sönük kalmaya devam et.
          digitalWrite(led,LOW); 
          digitalWrite(kombi,HIGH);
          delay(100); 
         }         
   }
    
}

 

Bu video ile çalışma testini izleyebilirsiniz.

İlginize teşekkür eder, sorularınızı ve destek yorumlarınızı beklerim. Sevgiyle kalın..

 

About Orçun AKYOL

Moslow'un İhtiyaçlar piramidinin kendini gerçekleştirme basamağı için girişimlerde olan, Sağlıkçı olup, Bilgisayar Öğretmenliği okuyan bir eğitim neferi 😉
Hemen Paylaş..Share on Facebook
Facebook
Tweet about this on Twitter
Twitter

35 Yorum

  • emin 29 Kasım 2019, 21:18

    iyi günler güzel bir proje yapmışsınız elinize sağlık ben yapmış olduğunuz devreyi arduinoya yükler sürekli hata ile karşılaşıyorum hata kodu iseArduino:1.8.10 (Windows 7), Kart:”Arduino Nano, ATmega328P (Old Bootloader)”

    panic: runtime error: invalid memory address or nil pointer dereference
    [signal 0xc0000005 code=0x0 addr=0x0 pc=0x7855fb]

    goroutine 1 [running]:
    github.com/arduino/arduino-cli/legacy/builder.ResolveLibrary(0x130d85a0, 0x1341c903, 0x5, 0x1341c903)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/resolve_library.go:64 +0x14b
    github.com/arduino/arduino-cli/legacy/builder.findIncludesUntilDone(0x130d85a0, 0x13348980, 0x88ed00, 0x131c06f0, 0x1337e2f8, 0x13325800, 0x0)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:358 +0x3b6
    github.com/arduino/arduino-cli/legacy/builder.(*ContainerFindIncludes).Run(0xdebc68, 0x130d85a0, 0xdebc68, 0x0)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:152 +0x3e5
    github.com/arduino/arduino-cli/legacy/builder.runCommands(0x130d85a0, 0x13065e1c, 0x20, 0x20, 0x409a01, 0x3ffff, 0x0)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:210 +0xbd
    github.com/arduino/arduino-cli/legacy/builder.(*Builder).Run(0x13071f40, 0x130d85a0, 0xdebbb4, 0x13042c80)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:117 +0xb9c
    github.com/arduino/arduino-cli/legacy/builder.RunBuilder(…)
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:226
    main.main()
    /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-builder/main.go:398 +0x6d2
    C:\Users\casper\Desktop\arduino-1.8.10\arduino-builder, 2’i döndürdü
    Arduino Nano kartı için derleme hatası.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    böyle bir hata ile karşılaşıyorum yardım edermsiniz

  • Orçun AKYOL 29 Kasım 2019, 21:22

    Merhaba,
    ekran görüntusu olarak hatayı atarsanız daha iyi olur birde kullandığınız arduino nano ise atmega iki cip içinde deneyin eski yazılım olabilir ya da olmayabilir.

  • emin 29 Kasım 2019, 21:32

    ekran görütüsünü e mail olarak mı atayım yoksa başka bir şekildemi

    • Orçun AKYOL 29 Kasım 2019, 21:44

      Buraya eklerseniz bi yere upload edip iyi olur aynı sorunu yaşayan olursa çözmüş oluruz.

    • Orçun AKYOL 29 Kasım 2019, 22:35

      yorum yaparken dosya ekleme seçeneği mevcut gönder butonu üzerinde.

  • Emin 30 Kasım 2019, 12:43

    Böyle bir hata ile karşılaşıyorum

    • Orçun AKYOL 1 Aralık 2019, 13:12

      hangi arduino kullanıyorsunuz araçlar kısmındaki ayarlarını doğru mu arduino nano seçili mi işlemci doğru mu gibi

  • Mustafa 1 Aralık 2019, 11:38

    Aynı sorunu bende yaşıyorum emin bey in gönderdiği sorunu bence youtube kanalınızada bu proje hakkında daha detaylı bir video paylaşmalısınız

    • Orçun AKYOL 1 Aralık 2019, 13:13

      video olarak hazirlicaktim aslında ama yoğun is hayatımdan dolayı firsat olmadi. yükleme ayarlarınızı kontrol edin

  • emin 2 Aralık 2019, 20:39

    orçun bey hangi dht kütüphanesini kullanıyorsunuz büyük ihtimal ben farklı kütüphane kullandığım için oluyor

  • Ferdi 10 Aralık 2019, 16:52

    Orçun Bey merhabalar ben üniversite projesi olarak aldım bu projeyi ama yeterli bilgiye sahip değilim o yüzden bana yardımcı olur musunuz acaba cidden çok gerekli ulaşmak isterseniz ferdi.inanc.96@gmail.com mail adresim mailinizi bekliyor olacağım

    • Orçun AKYOL 10 Aralık 2019, 18:24

      Bağlantılar son paylaştığım konuda var neyi nereye takacağınız şema ile gösteriliyor onun haricinde sorun olursa buraya yazın yardımcı olabilirsem yaparım onun haricinde benimde çok fazla vaktim olmuyor.

      • Ferdi 10 Aralık 2019, 19:09

        Usta peki bu termostatın v1 i için de bağlantnı şemaları aynı mı acaba ?

        • Orçun AKYOL 10 Aralık 2019, 19:21

          Neredeyse aynı mantık son yaptığımı yaparsan daha sağlıklı olur.

  • mustafa 13 Aralık 2019, 20:55

    orçun bey iyi günler göndermiş oldugunuz arduino kütüphanelerini denedim ama derleme yaparken büyük ihtimalle kütüphanelerden dolayı kod hata vermektedir kodları nasıl yaptığınıza dair bir yazı ya da video bulunsa ben ve benim gibi yapacak olan için büyük kolaylık olur

    • Orçun AKYOL 13 Aralık 2019, 20:58

      Aldığınız hatayı gönderin bakalim kütüphane ile alakalı olduğunu sanmıyorum. dht11 basit bir olay. hataya bakarsak belki çözebiliriz

  • mustafa 13 Aralık 2019, 22:13

    .

  • mustafa 13 Aralık 2019, 22:15

    ,

    • Orçun AKYOL 13 Aralık 2019, 23:20

      Adafiruit kütüphanesi de mi ekli en üst kısımda ? çift olan kütüphaneleri teke indir.

      Kütüphane olarak
      LiquidCrystal.h
      DHT.h
      VirtualWire.h

      bunları kullanın google da ararsanız direkt bu adlarda github üzerinden bulabilirsiniz.

  • Mustafa 14 Aralık 2019, 09:07

    Çift olan kütüphane i2c lcd ye ait github üzerinden dht.h kütüphanesini indirdim kurdum ama sürekli bu hatayı vermekte

    • Orçun AKYOL 15 Aralık 2019, 16:19

      DHT sensör kütüphanenle alakalısorun var bence hepsini sil sadece dht.h olan ekle master vs değil

  • emin 29 Aralık 2019, 14:22

    orçun bey yardımlarınız için teşekür ederim projemi yaptım yapacak arkadaşlara yardım etmek için dht kütüphanesini github üzeinden indirsinler kodta küçük bir hata var
    void gonder (){
    if (ileti != mesaj){
    Serial.println(mesaj);
    vw_send((uint8_t *)mesaj, strlen(mesaj)); //hazırladığımız mesaj değişkenindeki içeriği butona basılma durumuna göre alıcıya gönderdik.
    vw_wait_tx();
    ileti = mesaj;
    delay(100);
    }
    iletinin önümdeki ünlemi kaldırılılması gerekmektedir kaldırılmasa cihaz açılıyor ama kapatmıyor orçun bey yardımlarınız için tekrar teşekür ederim

  • mehmet 30 Aralık 2019, 00:02

    merhabalar kablosuz oda termostatları üzerine araştırma yaparken sizin projenizi gördüm fakat arduino bilgim sıfır olduğundan denemeye çekiniyorum. az çok elim havya tutar sizden ricam malzemeleri tam detaylı yazmanız ve yapmış olduğunuz bu projenin çekim gücü nedir sinyal sorunu yaşanırmı şimdiden teşekkürler.

  • Emin 10 Ocak 2020, 07:55

    Merhaba Mehmet bey bu proje için az yer kapladığı icin 2 adet arduino nano ya da pro mini
    Ama ben nano yu tercih ederdim 2×16 lcd ekran 1 adet röle modülü 1 adet 433mhz rf alıcı verici 2 adet push buton ve 10 k pot çekim gücü için ise alıcı ve vericinin antenlerini güzel yaparsanız iyi çekiyor benim evimde 10-15 cm duvardan ve 3-4 metre uzaklıktan açıp kapatmaktadır

  • sadi 24 Ocak 2020, 00:26

    ORÇUN bey merhaba güzel bir çalışma olmuş tekrarlamak istiyorum acaba yazılıma bir ek yapabilirmisiniz verici kısmına 2 led eklesek kombi çalışmıyorken yeşil led yansa kombi çalışıyorken kırmızı yansa bunu yazılımda nasıl yapabiliriz

  • Oğuzhan TERLEMEZ 18 Mart 2020, 16:10

    Orcun Bey Merhaba Devreyi tamamladım.Kurulumda hata vs herhangi bir sorun yaşamadım. Ancak display de herhangi bir yazı gelmedi.bom boş Ayar felan uğraştım ama çıkmadı herhangi bi yazı. Mesaj atmak için twitterden ekleidm ama mesaj atamadım oradan.

    • Orçun AKYOL 18 Mart 2020, 22:36

      Merhaba,
      displayde çıkmıyorsa 10k potansiyometre ayarinizi değiştirin. pinlerin dogru takildigina emin olun.

  • Oğuzhan Terlemez 27 Mart 2020, 17:00

    Orçun Bey çalıştırdım devreyi ancak haberleşme olmadı. (Bendeki alıcı vericiden kaynaklı olabilir başka devre üzerinde onu test etmem gerekecek)

    Bu sistem elektrik gidip geldiğinde kötü.Çünkü son ayarlı dereceyi hafızasında tutmuyor.(15 derecede gelşyor açıldığında)

    Buçuklu derece olsa daha iyi olurdu sanki.

    Birde kombi ayarlanan derecenin 2 yada 3 derece üstünde kapanıp. Ayarlanan derecenin 1 derece altında çalışması daha verimli olur gibi (çoğu termostat böylepiyasadaki)

    Keşke günlük saatlik ayarlama şeklinde imkanımız olsa.

    Zaman kvramını aklında tutması için bir sensör daha konulabilir.

    Bunları eksik diye söylemiyorum.Çok güzel bir proje çıkarmışsın. Arduinoya senin Bu projene özenerek başladım ben 🙂

    Ellerine sağlık. Olurda versiyon 3 yapar bunları güncellersen bizimle paylaşır mısın.
    Bn kodlama işini şuan için kopy paste ile hallediyorum.Daha tam öğrenemedim. Ama öğrenirsem senin projeni geliştirip bu eksik kısımları eklemek istiyorum.

    • Orçun AKYOL 27 Mart 2020, 17:46

      Haberleşmenin olmamasını birçok şey etkiler kontrol etmeniz gerekiyor adım adım. Alıcı vericide sorun olabilir, pinler ya da bağlantılar hatalı olabilir.
      Onu hafızaya alabiliriz eprom üzerinde kayıt tutabiliriz ama ben gerek görmedim özellikle elektrik gittiğinde çalışmasını istemediğim için 15 ama yapılmayacak bir şey değil.
      Buçuklu dereceyi şuan evde kullanıyorum çok da bir şey değişmiyor aslında buçuk yerine hatta ,10 ,20 şeklinde bile ayarlanabilir. Yeni versiyon çıkarırsam eklerim.
      Zaman programlama vs için malzeme sayısı artıyor masraf artıyor aynı zamanda kutunun büyümesi gerekiyor o yüzden istemedim.
      Bir sonrakini web tabanlı yapıp raspberry zero w kullanarak yapacağım evden işten her yerden kullanılacak şekilde planlıyorum.

      Kendinizi ve propjeyi geliştirmeniz dileğiyle.

  • Fatih Süleyman Özdemir 26 Kasım 2020, 16:47

    Hocam aynısı çift arduino uno ile olur mu bende normalde nodemcu var da 433 lük alıcı verici nodemcu ile uygun değil blynk ile yapacaktım.

    • Orçun AKYOL 26 Kasım 2020, 17:38

      2 nodemcu ile web arayüzlü de yapabilirsin dshs etkili olur ama biraz tecrübe ister. Uno ilede yapabilirsin o farketmez sadece uno kullaninca kutu daha büyük oluyor.

      • Fatih Süleyman Özdemir 26 Kasım 2020, 19:06

        Hocam hemen dönüş yaptığınız için teşekkür ederim 2 uno kullanıcam verici unoya ekstra esp8266 bağlayıp kodun içine blynk kodlarını atsam bu azaltma artırma butonlarına cep telefonumda blynk uygulaması ile de basabilir miyim bi yolu varmıdır yoksa hiç uğraşmayayımmı?

        • Orçun AKYOL 26 Kasım 2020, 19:11

          Bu şartlarda bile stabil çalışması zor oluyor. denemek gerekiyor ama fazla ihtimal vermiyorum. iki nodemcu ile yapilsa daha etkili olur hem oda içinden hemde telefondan yönetilecek şekilde yazılabilir. Benim yaşadığım en büyük sorun dht11 dht22 düzgün sıcaklık ölçmüyor. Bir diger sorunda kombiyi ac komutunu onaylı yapmak gerekiyor bazen komut ulaşmıyor tekrar göndermesi gerekiyor bunun içinde komut gonder fonk. icine iletildigini karşılıklı olarak anlayacağı biseyler yazılmalı.

  • Fatih Süleyman Özdemir 26 Kasım 2020, 19:35

    Bende normalde ds18b20 var ekstra dht11 aldım haberleşme için de nrf24l01 aldım 2 tane garanti olsun diye bende yeni yeni başlıyorum bu işlere artık elimdekilerle en iyi ne yapabilirsem. nodemcu tek olduğu için 2. Almak istemedim fiyat artıyor diye.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Maksimum dosya boyutu: 5 MB.
Yüklenebilir dosya türü: Resim- image.