Arduino Kullanarak PC Tabanlı ev Otomasyonu
Arduino kullanarak PC tabanlı ev otomasyonunun Blok Şeması
Arduino Uno, projenin beyni olarak kullanılmıştır . Mesajları göstermek için 16 × 2 LCD kullanılır. Cihazları açıp kapatmak için 4 kanal röle modülü kullanılır. Arduino ile seri haberleşme yapmak için bir bilgisayar kullanılır. Cihazlar yerine AC ampuller kullanıyoruz. Ancak istediğiniz herhangi bir cihazı kullanabilirsiniz. Demo amaçlı olarak üç adet AC lamba kullandık. Bu cihazları açmak ve kapatmak için bilgisayardan Arduino'ya komutlar göndereceğiz.
Bilgisayar tabanlı ev otomasyonu için gerekli bileşenler
- Arduino Uno: Sadeliğinden dolayı Arduino kullanıyoruz ve aynı zamanda LCD ve röle modülü ile arayüze çok fazla dijital pin sağlıyor . Herhangi bir projenin prototipini oluştururken çok kolay.
- 4 Kanal Röle Modülleri: Bu projede kullandığımız modül HL-54S'dir. Arduino'dan gelen 5v mantıksal sinyali kullanarak açılır ve kapanır. 250VAC ve 10A'ya kadar işleyebilir. Bu modüllerin 4 rölesi vardır, böylece 4 AC cihazı veya cihazı kontrol edebiliriz.
- 16 × 2 LCD: LCD, proje adını, girilebilen komutların listesini görüntülemek için kullanılır, daha sonra herhangi bir komut vermek ve girilen komutun durumunu göstermek ister. 16 × 2 LCD kullanıyoruz çünkü Arduino ile arayüz kolay ve fiyatı çok ucuz. Ekranın kontrastını kontrol etmek için 10k potansiyometre kullanılır
- Tutuculu AC ampuller: AC ampuller, cihazları ve cihazları temsil etmek için kullanılır. Çünkü herhangi bir AC projesinin prototipini oluştururken kullanımı kolaydır ve çok kullanışlıdır. Nihai üründe, kontrol etmek için sadece AC soketiyle değiştirin.
- Fişli AC kablosu: Daha yüksek voltajlarla çalışırken kaliteli kablo kullanmanızı tavsiye ederim. Bağlantıları kapatmak için elektrik bandı kullanmak her zaman iyidir.
- Harici 5 Volt besleme: Röleyi açıp kapatmak için 5 voltluk dc besleme gereklidir. Aksi takdirde işe yaramadı. Ayrıca, Arduino'dan 5v vermeyin.
Arduino kullanarak PC tabanlı ev otomasyonunun Devre Şeması
Bağlantılar:
16 × 2 LCD:
- V SS toprağa.
- V DD , besleme gerilimi için.
- V O , 10k potansiyometrenin pimini ayarlamak için.
- RS'den Pin 8'e.
- RW toprağa.
- Pin 9'u etkinleştirin.
- LCD D4 ile Pin 10 arası.
- LCD D5 - Pin 11.
- LCD D6'dan Pin 12'ye.
- LCD D7'den Pin 13'e.
- Potansiyometrenin bir ucunu ve LCD arka ışığının katotunu topraklayın.
- Potansiyometrenin diğer ucuna ve LCD arka ışığının anotuna 5v.
4 Kanal Röle modülleri:
- Harici 5 volt'tan JD V CC'ye .
- Yerden yere.
- Ini1'den Pin 3'e.
- Ini2'den Pin 4'e.
- Ini3'ten Pin5'e.
- Vcc'den Arduino 5v'ye.
- Tüm ampullerin bir ucunu normalde açık olan rölelerin terminaline bağlayın.
- Rölenin tüm ortak terminallerine 220VAC'nin bir ucu ve başka bir ampul terminali ile diğer ucu.
Çalışma: Öncelikle LCD'nin PC mesajını kullanarak Ev Otomasyonunu, ardından girebileceğiniz komut listesini görüntüler. Sonunda, komutun girilmesini ve komutun durumunu göstermesini ister. Arduino IDE'den seri monitörden bir komut girildiğinde, Arduino tanımlananla aynı komut olup olmadığını kontrol eder. Evet ise, ilgili röleyi açar ve kapatır.
Arduino kullanarak PC tabanlı ev otomasyonunun uygulanması
Video gösterimi
PC tabanlı ev otomasyon sistemi kodu
#include <LiquidCrystal.h> #include<string.h> LiquidCrystal lcd(8, 9, 10, 11, 12, 13); #define light 3 #define fan 4 #define TV 5 char temp; char str[10]; char i=0; void setup() { lcd.begin(16, 2); Serial.begin(9600); pinMode(light, OUTPUT); pinMode(fan, OUTPUT); pinMode(TV, OUTPUT); digitalWrite(light, HIGH); digitalWrite(fan, HIGH); digitalWrite(TV, HIGH); lcd.print("MICROCONTROLLERS "); lcd.setCursor(0,1); lcd.print(" LAB "); delay(2000); lcd.clear(); lcd.print("HOME AUTOMATION "); lcd.setCursor(0,1); lcd.print(" USING PC "); delay(2000); lcd.clear(); lcd.print("1. LIGHT ON"); lcd.setCursor(0,1); lcd.print("2. LIGHT OFF"); delay(2000); lcd.clear(); lcd.print("3. FAN ON"); lcd.setCursor(0,1); lcd.print("4. FAN OFF"); delay(2000); lcd.clear(); lcd.print("5. TV ON"); lcd.setCursor(0,1); lcd.print("6. TV OFF"); delay(2000); defualt(); delay(1000); } void loop() { if(temp==1) { if((strncmp(str,"FAN ON", 6))==0) { lcd.clear(); digitalWrite(fan, LOW); lcd.clear(); lcd.print("Fan Turned On"); delay(3000); defualt(); } else if(strncmp(str, "FAN OFF", 7)==0) { digitalWrite(fan, HIGH); lcd.clear(); lcd.print("Fan Turned OFF"); delay(3000); defualt(); } else if(strncmp(str, "LIGHT ON", 8)==0) { digitalWrite(light, LOW); lcd.clear(); lcd.print("Light Turned ON"); delay(3000); defualt(); } else if(strncmp(str, "LIGHT OFF", 9)==0) { digitalWrite(light, HIGH); lcd.clear(); lcd.print("Light Turned OFF"); delay(3000); defualt(); } else if(strncmp(str, "TV ON", 5)==0) { digitalWrite(TV, LOW); lcd.clear(); lcd.print("TV Turned ON"); delay(3000); defualt(); } else if(strncmp(str, "TV OFF", 6)==0) { digitalWrite(TV, HIGH); lcd.clear(); lcd.print("TV Turned OFF"); delay(3000); defualt(); } else { lcd.clear(); lcd.print(" Invalid Input"); lcd.setCursor(0,1); lcd.print(" Try Again "); delay(3000); defualt(); } } } void serialEvent() { while(Serial.available()) { char Inchar=Serial.read(); str[i]=Inchar; i++; lcd.print(Inchar); delay(50); if(Inchar == 0x0d) { temp=1; //Inchar=0; } } } void defualt() { lcd.clear(); lcd.print("Enter UR Choice"); lcd.setCursor(0,1); lcd.cursor(); i=0; temp=0; }
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.