Sesle Çalışan Ev Otomasyonu Nasıl Tasarlanır?
In fikri Ev otomasyonu insan çabasını ve hatalarını azaltmaya ve dolayısıyla etkinliği artırmaya yardımcı olduğu için önem kazanıyor. Bir evin içindeki makineler ve diğer elektronik cihazlar üzerinde kontrol sağlayan bir ekipman ve programlama gelişmeleri kombinasyonunu kullanır. Ev Otomasyonu sayesinde elektrikli aletlerimizi uzaktan kontrol edebiliyoruz ve büyük bir avantajı güç tüketiminin büyük ölçüde azaltılmasıdır. Bluetooth Kontrollü, Uzaktan Kumandalı ve İnternet Kontrollü gibi çeşitli Ev Otomasyonu türleri vardır ve her birinin avantajları ve dezavantajları vardır. Bu projede farklı cihazların sesli komut gönderilerek kontrol edileceği Ses Kontrollü Ev Otomasyonu tasarlayacağız. Bu sistem piyasadan satın alındığında çok pahalıdır ancak tüm bu cihazları entegre ettiğimizde Arduino, tüm elektrikli ev aletlerini kontrol etmek çok kolay ve düşük maliyetli hale gelir.
Ev Aletleri Arduino Kullanarak Nasıl Otomatikleştirilir?
Temel fikre sahip olduğumuz için, şimdi bileşenleri bir araya getirmeye, bir devre yapmak için bir araya getirmeye ve ev aletlerinizi otomatikleştirmek için kodu yazmaya doğru ilerleyelim.
Adım 1: Kullanılan Bileşenler (Donanım)
Adım 2: Kullanılan Bileşenler (Yazılım)
Proteus 8 Professional'ı indirdikten sonra, üzerindeki devreyi tasarlayın. Yeni başlayanların devreyi tasarlaması ve donanım üzerinde uygun bağlantıları yapması için yazılım simülasyonlarını buraya dahil ettik.
3. Adım: Bileşenlerin İncelenmesi
Projemizde kullanacağımız bileşenlerin bir listesini çıkardık. Bir adım ileri gidelim ve bu bileşenlerin nasıl çalıştığına dair kısa bir incelemeye geçelim.
- Arduino UNO: Arduino UNO, bir mikroçip ATMega 328P'den oluşan ve Arduino.cc tarafından geliştirilmiş bir mikrodenetleyici kartıdır. Bu kart, diğer genişleme kartları veya devreleri ile arayüzlenebilen bir dizi dijital ve analog veri pinine sahiptir. Bu kartta 14 Dijital pin, 6 Analog pin bulunur ve B tipi USB kablosu aracılığıyla Arduino IDE (Entegre Geliştirme Ortamı) ile programlanabilir. Güç için 5V gerektirir AÇIK ve bir C Koduçalıştırmak için.
- HC-05 Kablosuz Bluetooth Seri Alıcı-Verici: Bu projede kablosuz iletişime ihtiyacımız var, bu yüzden Bluetooth teknolojisini kullanacağız ve bu modül için kullanılacak olan HC-05. Bu modülün birkaç programlanabilir baud hızı vardır ancak varsayılan baud hızı 9600 bps'dir. Ana veya bağımlı olarak yapılandırılabilir, oysa başka bir HC-06 modülü yalnızca bağımlı modda çalışabilir. Bu modülün dört pimi vardır. Biri VCC (5V) ve kalan üçü GND, TX ve RX için. Bu modülün varsayılan şifresi şu şekildedir: 1234 veya 0000. İki mikro denetleyici arasında iletişim kurmak veya Telefon veya Dizüstü Bilgisayar gibi Bluetooth işlevine sahip herhangi bir cihazla iletişim kurmak istiyorsak HC-05 bunu yapmamıza yardımcı olur. Bu işlemi çok daha kolay hale getiren birkaç android uygulaması zaten mevcuttur.
- Arduino için Bluetooth Ses Kontrolü: Bu uygulama, ses tabanlı Arduino projeleri için SimpleLabsIN tarafından geliştirilmiştir. Bu Android Uygulaması, telefonun ses tanıma özelliğini kullanır ve sesli komutları metne dönüştürür ve dizeyi Bluetooth aracılığıyla aktarır. Uygulama buradan indirilebilir
- 12 V Röle Modülü: Herhangi biri bir mikrodenetleyiciden yüksek voltaj yüklerini değiştirmek isterse, bu 12V röle kartı bunu yapabilir. 10A / 250V AC (DC 30V / 10A) olarak derecelendirilmiş 8 x 12V röle içerir. Her bir röle modülü, doğrudan bir mikro denetleyici çıkış pinine bağlanabilen opto-izole bir dijital giriş tarafından açılır / kapatılır. Girişleri açmak için yalnızca yaklaşık 1.0V voltaj gerektirir, ancak 12V'a kadar giriş voltajlarını kaldırabilir. Bu, onu hem 5V hem de 3.3V cihazlar için ideal hale getirir. Röle modülünü kontrol etmek istediğiniz cihazların sayısına göre satın alabilirsiniz. Örneğin 4 cihazı kontrol etmek istiyorsanız 4 adet Röle modülü satın almalısınız.
Adım 4: Devre Şeması ile Devre Tasarımını Anlama
Öncelikle HC-05'i Arduino UNO ile bağlamamız gerekiyor. Bluetooth, UART protokolünü kullandığından, Arduino'nun RX ve TX pinlerini kullanmamız gerekiyor. Kendi RX ve TX pinlerimizi tanımlamak için "SoftwareSerial" kitaplığını kullanacağız (Pin 2, RX ve Pin 3, TX). Bluetooth modülünün RX pini ve Arduino'nun TX pini bağlantısı kesilecektir. İkinci olarak, röleleri Arduino ya bağlayacağız. 4 kanallı hazır bir röle kartı kullandık, bu nedenle bireysel rölelerin girişlerini Arduino'ya bağlamamız gerekiyor. Yükü röle modülüne bağlamak için aşağıdaki şemaya bakın:
Gösteri için röle modülüne dört yük bağlanmıştır ve bir röle kartı ile AC Şebekesini kullanırken ekstra dikkatli olun. Sadece gösteri için değiştirdik AÇIK alternatif yükler:
Adım 5: Projenin Çalışma Prensibi
Bu projede, farklı cihazları kontrol etmek için sesli komutlar kullanılmaktadır. Donanımı yukarıda verilen devre şemasına göre monte edin. Devre tahtasındaki tüm bileşenleri bir araya getirin. Gerekli bağlantıları yaptıktan sonra, devreye güç kaynağını açın ve telefonun Bluetooth'unu HC-05 Bluetooth modülüyle eşleştirin. Eşleştirmeden önce yukarıda belirtilen uygulamayı akıllı telefonunuza yükleyin.
Şimdi telefonu Bluetooth modülüne bağlayın. "Seçeneğine tıklayın"Robotu Bağlayın"Ve uygun Bluetooth cihazını seçin. Cihazlar daha önce eşleştirilmediyse şimdi pin girerek eşleştirin 0000 veya 1234.
Başarılı bir bağlantıdan sonra cihazlar veri aktarmaya hazırdır. Veri iletmek için, uygulamadaki mikrofon simgesine basın ve sesli komutlar vermeye başlayın. Akıllı telefonunuzda ses tanıma özelliğinin etkinleştirildiğinden emin olun (bu genellikle Google uygulamasıyla ilişkilendirilir). Örneğin, mikrofon simgesine basıp "Işığı aç",uygulama komutu tanıyacak ve bunu Bluetooth modülüne aktaracaktır.
Dizi uygulama tarafından tanındığında, dizeyi "ışığı aç #" olarak gönderir ve Bluetooth Modülü tarafından alınan gerçek mesaj bu tür bir biçime sahiptir ("*İleti#"). Dizenin başında ve sonunda "*" ve "#" karakterlerini doldurmanın nedeni, mesajın başlangıcını ve sonunu belirlemektir. Alınan mesaj önceden tanımlanmış bazı dizelerle karşılaştırılır ve mesaj onlarla eşleşirse "açma" ve kapatma gibi ilgili eylem gerçekleşir.
Bu projede şu komutları kullandık: "AC'yi aç", "AC'yi kapat", "ışığı aç", "ışığı kapat", "TV'yi aç", "TV'yi kapat", "fanı aç" "," Tümünü aç "ve" hepsini kapat ".
Adım 6: Arduino'ya Başlarken
Daha önce Arduino IDE'ye aşina değilseniz endişelenmeyin çünkü aşağıda Arduino IDE'yi kullanarak mikrodenetleyici kartında kod yazma işlemlerinin net adımlarını görebilirsiniz. Arduino IDE'nin son sürümünü buradan indirebilir ve aşağıda belirtilen adımları takip edebilirsiniz:
1). Arduino kartı PC'nize bağlandığında, "Kontrol paneli" ni açın ve "Donanım ve Ses" e tıklayın. Ardından "Aygıtlar ve Yazıcılar" a tıklayın. Arduino kartınızın bağlı olduğu bağlantı noktasının adını bulun. Benim durumumda "COM14" ama sizin PC'nizde farklı olabilir.
2). Şimdi Arduino IDE'yi açın. Araçlar'dan Arduino kartını şu şekilde ayarlayın: Arduino / Genuino UNO.
3). Aynı Araç menüsünden, kontrol panelinde gördüğünüz bağlantı noktası numarasını ayarlayın.
4). Bu ses kontrollü uygulamayı kullanmak için Arduino IDE'ye dahil edilecek özel bir kitaplığa ihtiyacımız var. Bu Kitaplık, kodla birlikte aşağıdaki bağlantıya eklenmiştir. Kitaplığı dahil etmek için şuraya gidin: Eskiz> Kitaplığı Dahil Et> ZIP Ekle. Kütüphane.
5). Aşağıda ekli kodu indirin ve IDE'nize kopyalayın. Kodu yüklemek için yükle düğmesine tıklayın.
Kodu buraya tıklayarak indirebilirsiniz.
7. Adım: Kodu anlama
Kod o kadar karmaşık değildir, ancak yine de bazı bölümleri aşağıda kısaca açıklanmıştır.
1. Başlangıçta, işlevselliği kopyalamak için yazılım kullanarak Arduino'nun diğer dijital pinleri üzerinde seri iletişime izin vermek için bir kitaplık dahil edilmiştir. Bluetooth modülüyle kullanılmak üzere iki Pin başlatılır. Sisteme bağlı ev aletleri için kullanılmak üzere dört Pin başlatılır ve Bluetooth üzerinden gelen verileri seri olarak depolamak için bir dizi değişkeni başlatılır.
#Dahil etmekconst int rxPin = 2; // bluetooth modülü için pisns'i başlat const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Ev Aletleri için Pimleri Başlat int light = 5; int fan = 6; int tv = 7; Dize verileri;
2. geçersiz kurulum ()INPUT ve OUTPUT olarak kullanılmak üzere başlatılmış pinleri ayarladığımız bir fonksiyondur. Baud Hızı da burada başlatılır. Baud Hızı, Arduino kartının ekli bileşenlerle iletişim kurduğu hızdır. İşlevimizde, cihazlara bağlı tüm pimleri şu şekilde ayarladık: DÜŞÜK.
geçersiz kurulum () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, ÇIKIŞ); pinMode (ışık, ÇIKIŞ); pinMode (fan, ÇIKIŞ); pinMode (tv, ÇIKIŞ); digitalWrite (ac, DÜŞÜK); digitalWrite (hafif, DÜŞÜK); digitalWrite (fan, DÜŞÜK); digitalWrite (tv, DÜŞÜK); }
3. geçersiz döngü ()bir döngüde tekrar tekrar çalışan bir işlevdir. Burada tüm koşullar, sistemin düzgün çalışması için ayarlanmıştır. Devamındaki Süre() döngü, mikro denetleyiciye seri olarak gelen verileri almak için kullanılır.
while (1) // Seri olarak girdi alınıyor {while (mySerial.available () <= 0); ch = mySerial.read (); eğer (ch == '#') bozulur; veri + = ch; }
Aşağıda tüm koşullar, kullanıcı komutları doğrultusunda takılı tüm elektrikli cihazları açacak şekilde ayarlanmıştır. Bu koşullar oldukça basit ve açıklayıcı.
eğer (data == "* AC'yi aç") {digitalWrite (ac, HIGH); Serial.println ("ac on"); } else if (data == "* AC'yi kapat") {digitalWrite (ac, LOW); Serial.println ("ac kapalı"); } else if (data == "* ışığı aç") {digitalWrite (hafif, YÜKSEK); Serial.println ("ışık açık"); } else if (data == "* ışığı kapat") {digitalWrite (hafif, DÜŞÜK); Serial.println ("ışık kapalı"); } else if (data == "* fanı aç") {digitalWrite (fan, HIGH); Serial.println ("fan açık"); } else if (data == "* fanı kapat") {digitalWrite (fan, DÜŞÜK); Serial.println ("fan kapalı"); } else if (data == "* TV'yi aç") {digitalWrite (tv, HIGH); Serial.println ("tv açık"); } else if (data == "* TV'yi aç") {digitalWrite (tv, DÜŞÜK); Serial.println ("tv kapalı"); } else if (data == "* hepsini aç") {digitalWrite (ac, HIGH); digitalWrite (hafif, YÜKSEK); digitalWrite (fan, YÜKSEK); digitalWrite (tv, YÜKSEK); Serial.println ("hepsi açık"); } else if (data == "* hepsini kapat") {digitalWrite (ac, LOW); digitalWrite (hafif, DÜŞÜK); digitalWrite (fan, DÜŞÜK); digitalWrite (tv, DÜŞÜK); Serial.println ("tümü kapalı"); }}
Başvurular
- Sesle Harekete Geçirilen Ev Otomasyon sistemi, basit sesli komutlarla farklı yükleri (elektrikli cihazlar) kontrol etmemize yardımcı olacaktır.
- Engelli kişiler, sanki etrafta yürüyemiyorlarmış gibi bu projeden birçok fayda elde edebilirler, sesli komut verip dönebilirler. AÇIK veya KAPALI cihaz.
- Bu proje ayrıca farklı sensörler (ışık, duman vb.) Eklenerek genişletilebilir.