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

11 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

Bir cevap yazın

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


Maksimum boyutu: 5 MB.
Eklenebilecek dosya türü: image.