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 bunların 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.



Ses Kontrollü Ev Otomasyonu

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)

  • Arduino uno
  • HC-05 Bluetooth Modülü
  • 2N2222 NPN Transistör
  • 12V Röle Modülü
  • 1k-ohm Direnç
  • 12V AC'den DC'ye Adaptör
  • 1N4007 PN Bağlantı Diyotu
  • Atlama Telleri

Adım 2: Kullanılan Bileşenler (Yazılım)

  • Proteus 8 Professional (Şu adresten indirilebilir: Buraya )

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 ekledik.



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.



  1. 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.

    Arduino UNO

  2. 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 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.

    HC-05 Bluetooth Modülü

  3. 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 üzerinden aktarır. Uygulama şu adresten indirilebilir: Buraya

    BT Voice Control Uygulaması



  4. 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.

    12V Röle Modülü

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 tek tek 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:

Röle Modülü Devresinin Montajı

Gösteri için röle modülüne dört yük bağlanmıştır ve bir röle kartıyla AC Şebekesini kullanırken çok dikkatli olun. Sadece gösteri için değiştirdik AÇIK alternatif yükler:

Devre şeması

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 birleştirin. 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.

Akıllı Telefon Eşleştirme

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.

Ses Tanındı

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 bunlarla 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şleminin net adımlarını görebilirsiniz. Arduino IDE'nin son sürümünü şu adresten indirebilirsiniz: buraya ve aşağıda belirtilen adımları izleyin:

1). Arduino kartı bilgisayarınıza 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.

Bağlantı Noktası Bulma

2). Şimdi Arduino IDE'yi açın. Araçlar'dan Arduino kartını şu şekilde ayarlayın: Arduino / Genuino UNO.

Ayar Panosu

3). Aynı Araç menüsünden, kontrol panelinde gördüğünüz bağlantı noktası numarasını ayarlayın.

Bağlantı Noktası Ayarlama

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ığı eklemek için şuraya gidin: Eskiz> Kitaplığı Dahil Et> ZIP Ekle. Kütüphane .

Kitaplığı Dahil Et

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 şu şekilde indirebilirsiniz: buraya tıklayın.

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 çoğaltmak 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 aletlerinde 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.

#include const 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 Pinleri Başlat int light = 5; int fan = 6; int tv = 7; Dize verileri;

2. geçersiz kurulum () INPUT ve OUTPUT olarak kullanılacak 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, OUTPUT); pinMode (ışık, ÇIKIŞ); pinMode (fan, OUTPUT); pinMode (tv, OUTPUT); 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. Aşağıdaki 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(); if(ch=='#') break; data+=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, LOW); 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, LOW); 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 == '* tümünü kapat') {digitalWrite (ac, LOW); digitalWrite (hafif, DÜŞÜK); digitalWrite (fan, DÜŞÜK); digitalWrite (tv, DÜŞÜK); Serial.println ('tümü kapalı'); }}

Uygulamalar

  1. Sesle Harekete Geçirilen Ev Otomasyon sistemi, basit sesli komutlarla farklı yükleri (elektrikli cihazlar) kontrol etmemize yardımcı olacaktır.
  2. Engelli kişiler, sanki etrafta yürüyemiyorlarmış gibi bu projeden birçok fayda elde edebilir, sesli komut verip dönebilirler. AÇIK veya KAPALI cihaz.
  3. Bu proje ayrıca farklı sensörler (ışık, duman vb.) Eklenerek genişletilebilir.