- Gerekli Malzeme
- Devre şeması
- Röle:
- Termistörü Kullanarak Sıcaklığın Hesaplanması:
- Arduino kodu
- Sıcaklık Kontrollü Ev Otomasyon Sisteminin Çalışması:
Bir odada oturduğunuzu ve üşüdüğünüzü varsayalım ve ısıtıcınızın otomatik olarak açılmasını ve oda sıcaklığı artırıldığında bir süre sonra kapanmasını istiyorsanız, bu proje ev aletlerinizi sıcaklığa göre otomatik olarak kontrol etmenize yardımcı olur. Burada Arduino ile Ev AC Cihazlarını sıcaklığa göre kontrol ediyoruz. Burada sıcaklığı okumak için Termistörü kullandık. Termistörü zaten Arduino ile arayüzledik ve LCD'de Sıcaklığı gösterdik.
Bu eğitimde, Röle ile bir AC cihazı ekleyeceğiz ve Arduino kullanarak sıcaklık kontrollü bir ev otomasyon sistemi yapacağız. Devreye bağlı 16 * 2 LCD ekranda sıcaklık ve cihaz durumunu da gösterir.
Gerekli Malzeme
- Arduino UNO
- Röle (5v)
- 16 * 2 LCD ekran
- Ampul (CFL)
- NTC termistör 10k
- Bağlantı telleri
- Dirençler (1k ve 10k ohm)
- Potansiyometre (10k)
Devre şeması
Bu Sıcaklık tabanlı Ev Otomasyon Sistemi, Arduino kartı, LCD ekran, Röle ve termistör gibi çeşitli bileşenlerden oluşur. Çalışma esas olarak röle ve termistöre bağlıdır, sıcaklık arttıkça röle açılacaktır ve sıcaklık önceden ayarlanan değerin altına düşerse Röle kapatılacaktır. Röleye bağlanan Ev cihazı da uygun şekilde açılıp kapanacaktır. Burada AC cihazı olarak bir CFL ampul kullandık. Tüm tetikleme işlemi ve sıcaklık değeri ayarı programlanmış Arduino kartı tarafından gerçekleştirilir. Ayrıca LCD ekranda her yarım saniyede bir sıcaklık değişimi ve cihaz durumu hakkında bize detaylar verir.
Röle:
Röle, küçük akımla kontrol edilen ve nispeten daha büyük akımı AÇMAK ve KAPATMAK için kullanılan bir elektromanyetik anahtardır. Küçük akım uygulayarak, çok daha büyük akımın akmasına izin veren röleyi AÇIK konuma getirebileceğimiz anlamına gelir. Bir röle, AC (alternatif akım) cihazlarını çok daha küçük bir DC akımı kullanarak kontrol etmenin güzel bir örneğidir. Yaygın olarak kullanılan Röle, Tek Kutuplu Çift Atış (SPDT) Rölesidir, aşağıdaki gibi beş terminale sahiptir:
Bobine gerilim uygulanmadığında, COM (ortak) NC'ye (normalde kapalı kontak) bağlanır. Bobine bir miktar gerilim uygulandığında, Armatürü çeken (yaya bağlı kol) üretilen elektromanyetik alan ve daha büyük bir akımın akmasına izin veren COM ve NO (normalde açık kontak) bağlanır. Röleler birçok değerde mevcuttur, burada 7A-250VAC akımının akmasına izin veren 5V çalışma gerilimi rölesi kullandık.
Röle, bir Transistör, Diyot ve bir dirençten oluşan küçük bir Sürücü devresi kullanılarak yapılandırılır. Transistör, akımı yükseltmek için kullanılır, böylece tam akım (DC kaynağından - 9v pilden) bir bobinden akarak ona tam olarak enerji verebilir. Direnç, transistöre ön gerilim sağlamak için kullanılır. Ve Diyot, transistör KAPALI konuma getirildiğinde ters akım akışını önlemek için kullanılır. Her bir Endüktör bobini aniden KAPALI konuma getirildiğinde eşit ve zıt EMF üretir, bu bileşenlerde kalıcı hasara neden olabilir, bu nedenle ters akımı önlemek için Diyot kullanılmalıdır. Bir Röle modülü, kart üzerindeki tüm Sürücü devresi ile piyasada kolayca bulunabilir veya yukarıdaki bileşenleri kullanarak oluşturabilirsiniz. Burada 5V Röle modülünü kullandık
Termistörü Kullanarak Sıcaklığın Hesaplanması:
Gerilim bölücü devresinden şunu biliyoruz:
V üzerinden = (V içinde * Rt) / (R + R)
Yani Rt'nin değeri şöyle olacaktır:
Rt = R (Vin / Vout) - 1
Burada Rt, termistörün (Rt) direnci olacak ve R, 10k ohm'luk direnç olacaktır.
Bu denklem, Vo çıkış geriliminin ölçülen değerinden termistör direncinin hesaplanması için kullanılır. Aşağıda verilen Arduino Kodunda gösterildiği gibi Arduino'nun A0 pinindeki ADC değerinden Gerilim Vout değerini alabiliriz.
Termistör direncinden Sıcaklığın Hesaplanması
Matematiksel olarak termistör direnci yalnızca Stein-Hart denklemi yardımıyla hesaplanabilir.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
A, B ve C sabitler olduğunda, Rt termistör direncidir ve ln logu temsil eder.
Projede kullanılan termistör sabit değer A = 1,009249522 x 10 -3, B = x 10 2,378405444 -4, Cı- = 2,019202697 x 10 -7. Bu sabit değerler, termistörün üç farklı sıcaklıktaki üç direnç değeri girilerek buradaki hesap makinesinden elde edilebilir. Bu sabit değerleri doğrudan Termistörün veri sayfasından alabilir veya farklı sıcaklıkta üç direnç değeri elde edebilir ve verilen hesap makinesini kullanarak Sabitler değerlerini alabilirsiniz.
Bu nedenle, sıcaklığı hesaplamak için yalnızca termistör direncinin değerine ihtiyacımız var. Yukarıda verilen hesaplamadan Rt değerini aldıktan sonra değerleri Stein-hart denklemine koyun ve Kelvin cinsinden sıcaklık değerini alacağız. Çıkış voltajında küçük bir değişiklik olduğu için sıcaklıkta değişikliğe neden olur.
Arduino kodu
Bu Sıcaklık Kontrollü Ev Aletleri için Tam Arduino Kodu bu makalenin sonunda verilmiştir. Burada birkaç bölümünü açıkladık.
Matematiksel işlem yapmak için "#include" Başlık dosyasını kullanıyoruz
#Dahil etmek
Röleyi (çıkış olarak) ve başlatma anında LCD'yi kurmak için, void kurulum kısmına kod yazmamız gerekir.
Geçersiz kurulum () {lcd.begin (16,2); lcd.clear (); pinMode (RÖLE, ÇIKIŞ); }
Termistörün elektrik direncini kullanarak Stein-Hart denklemi ile sıcaklığın hesaplanması için, yukarıdaki hesaplamada açıklandığı gibi, kodda bazı basit matematiksel denklemler gerçekleştiriyoruz:
yüzer a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07; şamandıra T, logRt, Tf, Tc; float Termistör (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1.0 / (a + b * logRt + c * logRt * logRt * logRt)); // Bu Stein-Hart denkleminden Kelvin cinsinden sıcaklık değerini alıyoruz Tc = T - 273.15; // Kelvin'i Santigrat'a çevir Tf = (Tc * 1.8) + 32.0; // Kelvin'i Fahrenheit'e dönüştür dönüş T; }
Aşağıdaki kodda fonksiyon termistörü, Arduino'nun analog pininden değeri okuyor ve matematiksel işlemi gerçekleştirerek sıcaklık değerini yazdırıyor.
lcd.print ((Termistör (analogRead (0))));
Ve bu değer Termistör işlevi tarafından alınır ve ardından hesaplama yazdırmaya başlar.
şamandıralı Termistör (int Vo)
Sıcaklık değeri 28 dereceden fazla artarsa ışıklar yanar, az kalırsa ışıklar yanar gibi sıcaklık değerini ayarlarken sıcaklığa göre ışığın açılıp kapanması durumu için kod yazmamız gerekir. Bu nedenle, sıcaklık 28 derecenin üzerine çıktığında, Röle modülünü AÇIK hale getirmek için RÖLE Pimini (PIN 8) yüksek tutmamız gerekir. Ve sıcaklık 28 derecenin altına düştüğünde, Röle Modülünü kapatmak için RÖLE pimini düşük yapmamız gerekir.
eğer (Tc> 28) digitalWrite (RÖLE, HIGH), lcd.setCursor (0,1), lcd.print ("Light status: ON"), delay (500); aksi takdirde (Tc <28) digitalWrite (RÖLE, LOW), lcd.setCursor (0,1), lcd.print ("Light status: OFF"), delay (500);
Sıcaklık Kontrollü Ev Otomasyon Sisteminin Çalışması:
Arduino'ya besleme vermek için USB üzerinden dizüstü bilgisayarınıza güç sağlayabilir veya 12v adaptörünü bağlayabilirsiniz. Sıcaklık değerlerini görüntülemek için bir LCD Arduino ile arayüz oluşturulmuştur, Termistör ve Röle devre şemasına göre bağlanmıştır. Analog pin (A0) termistör pinin voltajını her an kontrol etmek için kullanılır ve Arduino kodu üzerinden Stein-Hart denklemi kullanılarak yapılan hesaplamadan sonra sıcaklığı alıp Celsius ve Fahrenheit'te LCD'de görüntüleyebiliyoruz.
Sıcaklık 28 derecenin üzerine çıktığında Arduino, sıcaklık 28 Derecenin altına düştüğünde Pin 8'i YÜKSEK yaparak (Röle modülünün bağlı olduğu yer) Röle Modülünü Açık hale getirir Arduino, Pin DÜŞÜK yaparak Röle Modülünü kapatır. CFL ampulü de Röle modülüne göre Açılır ve Kapatılır.
Bu sistem Sıcaklık kontrollü Fan ve Otomatik AC sıcaklık kontrol projesinde çok faydalı olabilir.
Ayrıca, farklı teknolojileri ve Mikrodenetleyicileri kullanan birçok Ev Otomasyonu Projemizi de kontrol edin: