İçindekiler:

Alexa ve Arduino Kullanan Ses Kontrollü Anahtar: 10 Adım (Resimli)
Alexa ve Arduino Kullanan Ses Kontrollü Anahtar: 10 Adım (Resimli)

Video: Alexa ve Arduino Kullanan Ses Kontrollü Anahtar: 10 Adım (Resimli)

Video: Alexa ve Arduino Kullanan Ses Kontrollü Anahtar: 10 Adım (Resimli)
Video: Erkek Kulak Delme 😂Komik 2024, Temmuz
Anonim
Alexa ve Arduino Kullanan Ses Kontrollü Anahtar
Alexa ve Arduino Kullanan Ses Kontrollü Anahtar

Bu projenin temel amacı, cihazı açıp kapatmak için anahtar (röle) kontrol etmek için sıcaklık sensörünü kullanmaktır.

Malzeme listesi

  1. 12V Röle Modülü == > 4.2 $
  2. Arduino uno == > 8 $
  3. DHT11 sıcaklık sensörü == > 3 $
  4. ESP8266 Modülü == > 4,74 $
  5. N26 optokuplör == > 0,60 $
  6. LM1117 voltaj regülatörü == > 0,60 $
  7. Breadboard == > 2,2 $
  8. Atlama telleri == > 2,5 $
  9. Düğmeye basın == > 2,5 $

Projenin toplam maliyeti yaklaşık 30 dolar. Bu proje üç bölüme ayrılmıştır. İlk olarak, bir uygulama oluşturmak için heroku kullanıyoruz. İkincisi, işimizi uygulamak için bir Amazon Alexa becerisi oluşturuyoruz (En önemli kısım). Üçüncüsü, donanımımızı kuruyoruz ve Arduino IDE kullanarak programlıyoruz.

Adım 1: Heroku'yu GitHub ile Bağlama

Heroku'yu GitHub ile Bağlama
Heroku'yu GitHub ile Bağlama
Heroku'yu GitHub ile Bağlama
Heroku'yu GitHub ile Bağlama
Heroku'yu GitHub ile Bağlama
Heroku'yu GitHub ile Bağlama

Heroku, web uygulaması dağıtım modeli olarak kullanılan çeşitli programlama dillerini destekleyen bir hizmet olarak bulut platformudur (PaaS). İlk önce, heroku sitesine gidin, yeni bir hesap oluşturun veya orada oturum açın. Link aşağıda verilmiştir

Heroku Web Sitesi

Yeni bir uygulama oluşturmaya başlayalım. Uygulamayı dağıttığınızda uygulama adımı "iottempswitch" verdim, bağlantı oluşturuldu.

Uygulama yapıldıktan sonra GitHub. GitHub/ adresine gidin.

Orada oturum açın veya hesabınız yoksa kaydolun. Giriş yaptıktan sonra yeni depo oluşturun. Seçmek istediğiniz herhangi bir adı verin ve ardından depo oluştur'a basın. Sonraki sayfada BENİOKU'ya tıklayın, bu sayfada başkalarıyla paylaşmak istediğiniz açıklamayı verin. Bundan sonra yeni dosya taahhüt üzerine tıklayın. Ardından, yükle düğmesine tıklayın.

Klasörü sürükleyip bırakmanız veya dosya seçmeniz için iki seçenek vardır. Gerekli dosyaları aşağıdan indirin. Dosyaları seçtikten sonra değişiklikleri taahhüt et'e basın. Heroku'da oluşturduğunuz uygulamayı açın ve ardından dağıtma bölümüne gidin. Ardından GitHub tarafında oluşturduğunuz GitHub. Give depo adını tıklayın. Benim durumumda Akıllı Röle. Bunu kopyalayıp buraya yapıştırın. Bağlantınız gösterildiğinde bağlan'a tıklayın. Ardından, şubeyi dağıt (manuel) üzerine tıklayın. Dağıttıktan sonra, derleme günlüğünde bağlantıyı görebilir veya ayarlarda bağlantıyı görebilirsiniz. Bu bağlantıya daha sonra Amazon becerisini yaparken ihtiyacımız olacak.

2. Adım: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Alexa becerisinin son görüntüleri

Amazon Developer sitesinde, sıcaklık ve nemi ayarlayarak anahtar tetikleyiciyi kontrol etmek için Amazon becerisini kullanırız.

Amazon Geliştirici Sitesine gidin. Bağlantı aşağıda verilmiştir.

Amazon Geliştirici Web Sitesi

  • Şekil i4'te gösterildiği gibi sağ üstteki Geliştirici konsoluna gidin
  • Alexa'ya gidin, ardından Alexa Skill Kit'i seçin ve ardından Add new skill'e tıklayarak yeni skill oluşturun.

Yeni beceri eklediğinizde beceri bilgi sayfasını göreceksiniz.

1. Beceri Bilgileri (resim i7'de gösterildiği gibi)

beceri türü, dili, adı, çağrı adı sağlamalıyız.

Beceri türü ==> özel seçin

  • İsim ==> herhangi bir isim seçin.
  • Alexa ile iletişim kurarken kullandığınız çağrı adı ==>. Örneğin;- Alexa, sensörden anahtar tetiği açmasını isteyin veya Alexa, ışığı açın burada çağrı adları sensör ve ışıktır.
  • Dil ==> İngilizce(Hindistan). Ülkenize göre seçin

kaydet'i ve ardından ileri'yi tıklayın

2. Etkileşim Modeli

Burada beceri oluşturucuyu kullanacağız. Yani, Beceri Oluşturucuyu Başlat'a tıklayın. resim i8'de gösterildiği gibi sayfayı göreceksiniz.

İlk önce yeni niyetler yaratırız. Ekle'ye tıklayın (sol tarafta) ve "smartswitch" kullandığım istediğiniz adı verin

  • Resim i9'da gösterildiği gibi yuva tipi adını "measurement_type" ve yuva değerlerini "sıcaklık" ve "nem" verin.
  • Daha sonra slot tipi adı "query" ve slot değerleri resim i10'da gösterildiği gibi "what" ve "is" şeklindedir.

  • Daha sonra slot tipini "switchstate" ekleyin ve slot değerleri resim i11'de gösterildiği gibi "on" ve "off" olur.
  • Başka bir slot tipi "tempscale" ekleyin ve slot değerleri resim i12'de gösterildiği gibi "fahrenheit" ve "celcuis" olur.
  • Bundan sonra buraya yeni slot tipini ekleyin, bunun için mevcut slot tipini kullanıyoruz, bunun için mevcut slotu kullan seçeneğine tıklamamız gerekiyor. Mevcut slotta amazon.number için arama yapın ve bunu seçin ve ekleyin. Ekledikten sonra, resim i13'te gösterildiği gibi yuva türlerinde göreceksiniz.

Böylece slot tipleriyle işimiz bitti, kullandığımız toplam slot tipi 5'tir. Şimdi, bir sonraki adıma geçin. Yarattığımız amaca tıklayın, benim durumumda smartswitch. Sağ tarafta, resim i14'te gösterildiği gibi niyet yuvası göreceksiniz.

  • Yeni bir yuva oluşturun, ona "Switch_State" adını verin ve resim i15'te gösterildiği gibi açılır düğmeyi kullanarak "switchstate" ile eşleştirin.
  • Yeni yuva oluşturun, ona "Sensor_Values" adını verin ve onu resim i16'da gösterildiği gibi "measurement_type" ile eşleştirin.
  • Yeni yuva oluşturun, ona "sorgu" adını verin ve resim i17'de gösterildiği gibi "sorgu" ile eşleyin.
  • Bundan sonra yeni bir "tmp_scale" yuvası oluşturun ve onu i18 resminde gösterildiği gibi "tempscale" ile eşleştirin.
  • Yeni yuva "Numbers" oluşturun ve onu resim i19'da gösterildiği gibi "Amazon. Numbers" ile eşleştirin.

Şimdi Intent slotlarıyla işimiz bitti. 5 niyet yuvası kullanıyoruz. Bundan sonra, resim i20'de gösterildiği gibi Örnek Sözlere geçiyoruz.

Bu örnek ifadeleri ekleyin.

anahtar tetikleyicisini yüzde {Numbers} {tmp_scale} olarak ayarla

{query} anahtar durumudur

{Switch_State} anahtar tetikleyicisi

anahtar tetikleyicisini {Numbers} dereceye {tmp_scale} ayarla

{Switch_State} anahtarını çevirin

{query} geçiş {Switch_State}

{query}, geçerli {Sensor_Values}

Bundan sonra modeli kaydedin ve oluşturun. Konfigürasyona tıkladıktan sonra modelin oluşturulmasını bekleyin. Oluşturduktan sonra resim i21 ve i22'de gösterildiği gibi mesaj göreceksiniz.

3. Yapılandırma

HTTPS'yi seçin ve heroku uygulaması oluşturulurken oluşturulan bağlantıyı ekleyin. Benim durumumda https://iottempswitch.herokuapp.com/. Bağlantıyı ekledikten sonra resim i23'te gösterildiği gibi ileri'ye tıklayın.

4. SSL sertifikası Resim i24'te gösterildiği gibi ikinci seçeneği seçin ve ileri'ye tıklayın.

becerimizi başarıyla oluşturduk.

Adım 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Arduino IDE'yi açın. Ardından Dosya ==> Tercih'e gidin

Ek Panolar Yöneticisinde, URL'yi kopyalayıp yapıştırın ve resim i26'da gösterildiği gibi Tamam'a tıklayın.

arduino.esp8266.com/versions/2.4.0/package_…

  • Araçlar ==> Board ==> Board Manager'a giderek Board Manager'ı açın.
  • Boards Manager'ı açın ve resim i27'de gösterildiği gibi nodemcu'yu arayın.
  • Bundan sonra ESP8266WiFi kitaplığını indirin. Kütüphane Yöneticisini açın: Sketch ==> Kitaplığı dahil et ==> Kitaplıkları Yönet.
  • ESP8266WiFi kitaplığını arayın ve kurun.
  • Pano seçin ==> Genel ESP8266 Modülü.
  • Kodu yüklemeden önce üç kütüphaneye ihtiyacımız var.

Gerekli kitaplıklar

Bu kütüphaneleri Arduino'nun kütüphaneler klasörüne taşıyın

SSID kodunda, PWD'de ve heroku uygulama bağlantınızda üç şeyi değiştirmeniz gerekiyor. Bundan sonra kodu yükleyin. ESP Modülü için kodu yüklerken flaş düğmesine basmanız ve ardından bir kez sıfırlama düğmesine basmanız ve ardından flaş düğmesini bırakmanız gerekir. Kodu yükledikten sonra terminali açın. çıktısını göreceksiniz.

Adım 4: Bileşen Açıklaması

Bileşen Açıklaması
Bileşen Açıklaması
Bileşen Açıklaması
Bileşen Açıklaması
Bileşen Açıklaması
Bileşen Açıklaması
Bileşen Açıklaması
Bileşen Açıklaması

1. Röle Nedir?

Röle, iki devreyi elektriksel olarak yalıtmak ve manyetik olarak birbirine bağlamak için kullanılan elektromanyetik bir cihazdır. Çok kullanışlı cihazlardır ve tamamen ayrıyken bir devrenin diğerini değiştirmesine izin verirler. Genellikle bir elektronik devreyi (düşük voltajda çalışan) çok yüksek voltajda çalışan bir elektrik devresine bağlamak için kullanılırlar. Örneğin bir röle, 230V AC şebeke devresini değiştirmek için 5V DC akü devresi yapabilir.

Nasıl çalışır

Bir röle anahtarı iki kısma ayrılabilir: giriş ve çıkış. Giriş bölümü, kendisine bir elektronik devreden küçük bir voltaj uygulandığında manyetik alan oluşturan bir bobine sahiptir. Bu gerilime çalışma gerilimi denir. Yaygın olarak kullanılan röleler, 6V, 9V, 12V, 24V gibi farklı çalışma gerilim konfigürasyonlarında mevcuttur. Çıkış bölümü mekanik olarak bağlanan veya ayrılan kontaktörlerden oluşur. Temel bir rölede üç kontaktör vardır: normalde açık (NO), normalde kapalı (NC) ve ortak (COM). Giriş durumunda COM, NC'ye bağlanır. Çalışma gerilimi uygulandığında röle bobini enerjilenir ve COM kontağı NO olarak değiştirir. SPST, SPDT, DPDT gibi farklı sayıda enversör kontağa sahip farklı röle konfigürasyonları mevcuttur. Uygun kontaktör kombinasyonu kullanılarak elektrik devresi açılıp kapatılabilir. Röle anahtarının yapısı hakkında iç ayrıntıları öğrenin.

COM terminali ortak terminaldir. BOBİN terminallerine anma gerilimi ile enerji verilirse, COM ve NO terminallerinin sürekliliği vardır. COIL terminallerine enerji verilmezse, COM ve NO terminallerinin sürekliliği yoktur.

NC terminali, Normalde Kapalı terminaldir. Rölenin çalışması için herhangi bir voltaj almasa veya yeterli voltaj almasa dahi çalıştırılabilen terminaldir.

NO terminali, Normalde Açık terminaldir. Röle anma gerilimini aldığında istediğiniz çıkışı yerleştireceğiniz terminaldir. COIL terminallerinde voltaj yoksa veya yetersiz voltaj varsa, çıkış açıktır ve voltaj almaz. BOBİN klemensleri anma geriliminin altında veya biraz altında olduğunda NO klemensi yeterli gerilimi alır ve cihazı çıkışta çalıştırabilir.

2. DHT sıcaklık sensörü

DHT11, kalibre edilmiş dijital çıkış üreten bir Nem ve Sıcaklık Sensörüdür. DHT11, Arduino, Raspberry Pi vb. herhangi bir mikro denetleyici ile arayüzlenebilir ve anında sonuç alınabilir. DHT11, yüksek güvenilirlik ve uzun vadeli kararlılık sağlayan düşük maliyetli bir nem ve sıcaklık sensörüdür.

3. ESP8266 Tam Açıklama

ESP8266 WiFi Modülü, WiFi ağınıza herhangi bir mikro denetleyici erişimi verebilen entegre TCP/IP protokol yığınına sahip bağımsız bir SOC'dir. ESP8266, başka bir uygulamadan bir uygulama ağ işlevleri barındırabilir. Her ESP8266 modülü, bir AT komutuyla önceden programlanmış olarak gelir.

ESP8266, VoIP uygulamaları ve Bluetooth birlikte varoluş arayüzleri için APSD'yi destekler, tüm çalışma koşullarında çalışmasına izin veren kendi kendine kalibre edilmiş bir RF içerir ve harici RF parçası gerektirmez.

Özellikleri

  • 802.11 b/g/n
  • Wi-Fi Direct (P2P),
  • soft-APEntegre TCP/IP protokol yığını
  • Entegre TR anahtarı, balun, LNA, güç amplifikatörü ve eşleştirme ağı
  • Entegre PLL'ler, düzenleyiciler, DCXO ve güç yönetimi birimleri
  • 802.11b modunda +19.5dBm çıkış gücü
  • <10uA kaçak akımı kapatın
  • 1MB Flash Bellek
  • Entegre düşük güçlü 32 bit CPU, uygulama işlemcisi olarak kullanılabilir
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMOA-MPDU & A-MSDU toplama ve 0.4ms koruma aralığı
  • 2 ms'den kısa sürede paketleri uyandırın ve iletin
  • Bekleme modunda güç tüketimi < 1.0 mW (DTIM3)

Resim i34'te gösterildiği gibi Pin Açıklaması.

ESP Modülünü Arduino UNO ile bağlamak için Lm1117 3.3 voltaj regülatörüne veya herhangi bir regülatöre ihtiyacımız var çünkü Arduino ESP8266'ya 3.3 v sağlayamıyor.

Not: - Kodu yüklerken flash düğmesine basın ve ardından bir kez reset düğmesine basın ve ardından resim i29'da gösterildiği gibi flaş düğmesini bırakın.

DHT11 sensörünü ve rölesini bağlamak için ESP8266 Modülünün iki GPIO pinini kullanıyoruz. Kodu yükledikten sonra RX, TX, GPIO0 pinlerinin bağlantısını kesebilirsiniz. DHT11 sensörü için GPIO0 ve röleler için GPIO2 kullandım. DHT11 sensörü ESP8266 ile iyi çalışıyor ancak röleler için ekstra bir şeye ihtiyacımız var, yani opto izolatör veya opto kuplör. i30, i31, i32 ve i33 resmine bakın.

Adım 5: Bağlantılar

ESP8266 === > DHT11GPIO0 === > Çıkış pini

ESP8266 === > RelayGPIO2 ===> Giriş

ARDUINO ===> ESP8266

Gnd ===> GndTX === > TX

RX === > RX

Sıfırlama Düğmesi === > RST

Flaş Düğmesi === > GPIO0

Adım 6: Her Şeyi Kontrol Etme

Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek
Her Şeyi Kontrol Etmek

Uygulamamızı, becerimizi başarıyla oluşturduk ve donanımımız hazır. Yani, kontrol etme zamanı.

Bunun için ESP8266'nız açık çünkü sunucumuz ESP8266 üzerinde çalışıyor. Burada ESP8266'ya herhangi bir sensör bağlamadım, sadece çalışıp çalışmadığını kontrol ediyorum ama sensörü, röleyi ESP8266'ya bağlayabilirsiniz. Heroku'ya bağlandıktan sonra bağlı olduğunu göreceksiniz. Test etmek için oluşturduğunuz Amazon becerisine gidin, ardından test sayfasına tıklayın. Çalıştığı doğrulandıktan sonra sensörümü ESP8266'ya bağlayacağım. Sonuçları resimler i35, i36, 37, 38, 39, 40'ta gösterildiği gibi görebilirsiniz.

ESP8266'yı bağlamadan kullanırsanız, bu hatayı resim i41'de gösterildiği gibi alırsınız.

Kullanabileceğiniz ifade

anahtar tetikleyicisini yüzde {Numbers} {tmp_scale} olarak ayarla

ör:- anahtar tetikleyiciyi yüzde 50 neme ayarlayın

{query} anahtar durumudur

ex- on/off anahtar durumudur

{Switch_State} anahtar tetikleyicisi

ex -açma/kapama anahtarı tetik

anahtar tetikleyicisini {Numbers} derece {tmp_scale} olarak ayarla

ex - anahtar tetikleyiciyi 76 derece fahrenhayt'a ayarlayın

ex - anahtar tetiğini 24 dereceye ayarla

{Switch_State} anahtarını çevirin

ex - anahtarı aç/kapat

Sonuçlar için i41 ila i46 arasındaki resme bakın.

AlexaAlexa ile konuşurken, arduino'dan anahtar tetiği açmasını/kapatmasını isteyin

Alexa, arduino'dan anahtar tetiği 24 santigrat dereceye ayarlamasını iste.

Alexa, arduino'dan anahtar tetikleyiciyi yüzde 50 neme ayarlamasını isteyin

Alexa, arduino'dan anahtarı açmasını/kapatmasını isteyin

Adım 7: VUI(Sesli Kullanıcı Arayüzü) Şeması

VUI (Sesli Kullanıcı Arayüzü) Şeması
VUI (Sesli Kullanıcı Arayüzü) Şeması

Adım 8: Demo

Image
Image

1. Sıcaklık ve nem için tetikleyiciyi ayarlayın.

2. Tetiği 20 santigrat dereceye ayarlayın.

3. Tetiği yüzde 80 neme ayarlayın.

9. Adım: Şematik

Önerilen: