İçindekiler:

Alexa ve Arduino Kullanarak Akıllı Ev İzleme: 9 Adım (Resimlerle)
Alexa ve Arduino Kullanarak Akıllı Ev İzleme: 9 Adım (Resimlerle)

Video: Alexa ve Arduino Kullanarak Akıllı Ev İzleme: 9 Adım (Resimlerle)

Video: Alexa ve Arduino Kullanarak Akıllı Ev İzleme: 9 Adım (Resimlerle)
Video: Amazon Alexa ile Akıllı Evini Oluştur - Türkçe Tanıtım 2024, Aralık
Anonim
Image
Image
Malzemelerin Toplanması
Malzemelerin Toplanması

Günümüz dünyasında insanlar evlerinden çok iş yerlerinde vakit geçirmektedirler. Bu nedenle, insanların işteyken evin koşullarını öğrenebilecekleri bir ev izleme sistemine ihtiyaç vardır. Çalışma saatlerinde "birine" evi hakkında soru sorulabilirse daha da iyi olur. Bu, kullanıcıya evleri hakkında ihtiyaç duyulan bilgileri verebilecek bir asistan olarak Amazon Alexa'yı kullanarak gerçekleştirilebilir.

Kullanıcılar sadece İş Yeri değil, internet bağlantısı ve Amazon Alexa olduğu sürece dünyanın herhangi bir yerindeki evin durumunu öğrenebilirler.

Bu projede aşağıdaki Fonksiyonlar uygulanmaktadır:

1) Fan ve ışık gibi ev cihazlarını kontrol edin

2) Cihazların durumunu söyler

3) Evin hava durumunu (sıcaklık ve nem) söyler.

4) Gerektiğinde ev içinin anlık görüntüsünü Gmail üzerinden kullanıcıya gönderir.

5) Şu durumlarda bildirim gönderir -

* Davetsiz misafir (ayrıca fotoğraf gönderir)

* Ateş

* Misafir (ayrıca fotoğraf gönderir)

Adım 1: Malzemelerin Toplanması

Malzemelerin Toplanması
Malzemelerin Toplanması
Malzemelerin Toplanması
Malzemelerin Toplanması
Malzemelerin Toplanması
Malzemelerin Toplanması

Gerekli malzemeler

Arduino Uno

ESP8266 Wifi Modülü

Linkit Smart 7688 Duo

DHT11

Röleler

IR engel Sensörü

Web kamerası

Amazon Yankı Noktası

Breadboard ve jumper Teller

Yazılım ve çevrimiçi Hizmetler:

Thingspeak.com

Arduino IDE'si

Amazon Alexa Beceri Seti

Amazon Alexa Echosim.io (Test Becerisi için)

arka uçsuz

İtme Kutusu

Adım 2: Arduino ve ESP8266'yı Programlama

Arduino ve ESP8266'nın Programlanması
Arduino ve ESP8266'nın Programlanması
Arduino ve ESP8266'nın Programlanması
Arduino ve ESP8266'nın Programlanması

Arduino IDE'yi resmi web sitesinden indirin:

Arduino IDE'yi açın ve ek pano yöneticisi URL türünde dosya-> tercihler-> seçeneğine gidin -

Araçlar -> panolar -> Pano Yöneticisi'ne gidin ve sonunda bulunan esp8266 paketini kurun.

Arduino'yu programlamak için USB kablosunu arduino'dan bilgisayara takın ve araçlar-> panolarında Arduino/Genuino UNO'yu seçin. Ayrıca Araçlar'da COM bağlantı noktalarını seçtiğinizden emin olun (COM bağlantı noktası numarası Aygıt yöneticisinde bulunabilir). Gerekli Programı yazın, Derleyin ve hata yoksa yükle'ye tıklayın.

ESP8266'yı programlamak için bağlantıyı şemada gösterildiği gibi yapın. usb'yi arduino'dan bilgisayara bağlayın. Araçlar-> pano->'da Genel ESP8266'yı seçin ve ayrıca sağ COM bağlantı noktasını seçin. Gerekli Programı yazın, Derleyin ve hata yoksa yükle'ye tıklayın. Arduino RST'yi GND'ye bağladığınızdan emin olun (arduino, ESP8266'ya bir programcı gibi davranır).

Bu Projede Önce ESP8266 programlanır ve daha sonra devre bağlantıları çıkarılır. Ardından Devre, "Devre Bağlantıları" adlı Şekilde gösterildiği gibi yeniden bağlanır. Ve sonra arduino programlanır.

3. Adım: Thingspeak.com'u Yapılandırma

Thingspeak.com'u Yapılandırma
Thingspeak.com'u Yapılandırma

Thingsspeak.com'da bir hesap oluşturun.

Cihaz kontrol bilgilerini depolamak ve arduino/alexa'ya yönlendirmek için şey konuşmasındaki kanalları kullanırız. kanallarda sıcaklık ve nem değerlerini de saklıyoruz. Bilgi için bir depolama yeri gibi.

Thingsspeak'e giriş yapın, kanallarıma gidin ve yeni kanal oluşturun. Kanallarınıza isim ve açıklama verin. Projemizde 8 kanala ihtiyacımız var (işi daha az kanal kullanarak yapabilirsiniz ancak programlama yaparken biraz karmaşık olacaktır). Ayrıca bir kanalı güncellerkenthingspeak'in bir zaman kısıtlaması vardır. Belirli bir kanalın art arda güncellenmesi arasında 10-15 saniyelik bir boşluk olmalıdır.

Değerleri ve anlamları ile sekiz kanal aşağıda verilmiştir.

kanal adı(değer1-anlamı, değer2-anlamı, vb.):

1) Cihaz kontrolü (0 -lightON, 1- lightOff, 2-fan ON, 3- Fan Off)

2) ışık durumu (0- ışık kapalı, 1- ışık açık)

3) fan durumu (0- fan kapalı, 1- fan açık)

4) nem (nem değeri)

5) sıcaklık (sıcaklık değeri)

6) davetsiz misafir bildirimi (1- davetsiz misafir uyarısı)

7) yangın ihbarı (1- yangın ihbarı)

8)misafir bildirimi (1- misafir uyarısı)

Herhangi bir kanala tıkladığınızda kanal kimliğini görebilir ve API anahtarları sekmesinde API anahtarlarını yazabilirsiniz. kanaldaki bilgileri/değeri almak için kanal kimliği gereklidir. Ve kanalda bir değer saklamak için yazma anahtarı gereklidir.

Bir kanalı güncellemek için http isteği:

api.thingspeak.com/update?api_key=&field1=

kanalın ilgili yazma tuşları ile değiştirilir ve olabilir (cihaz kontrolü veya sıcaklık/nem değerleri durumunda 0/1)

Bir kanaldan değer okumak için http isteği:

api.thingspeak.com/channels//field/field1/last.html

okumak istediğimiz kanalın belirli kanal kimliği ile değiştirilir.

Adım 4: Program

Program 3 bölüme ayrılmıştır:

A) Arduino için Program: arduino için program çok basittir. ESP8266'dan seri olarak verileri alır ve alınan verilere göre cihazlar kontrol edilir. Program hakkında daha fazla bilgi, programın kendisindeki yorumlarda bulunur.

B) ESP8266 için Program: ESP8266 için program 3 şeyi içerir

1) http isteğini kullanarak sıcaklık ve nemi güncelleme

client.print(String("GET ") + "/update?key=&field1="+nem+" HTTP/1.1\r\n" + "Ana bilgisayar: " + ana bilgisayar + "\r\n" + "Bağlantı: kapat \r\n\r\n"); //nemi güncelle

client.print(String("GET ") + "/update?key=&field1="+temperature+" HTTP/1.1\r\n" + "Ana Bilgisayar: " + ana bilgisayar + "\r\n" + "Bağlantı: kapat \r\n\r\n"); // sıcaklığı güncelle

bunun yerine, sırasıyla nem ve sıcaklık içinthingspeak kanalında bulunan ilgili yazma anahtarı gelir. ve ana bilgisayar api.thingspeak.com'dur.

dht kütüphanesini şuradan indirin:

2) elde edilen değerlere dayalı olarak ilgilithingspeak ve kontrol cihazı kanallarından okuma: client.print(String("GET ") + "/channels//field/field1/last.html HTTP/1.1\r\n" + " Ana bilgisayar: " + ana bilgisayar + "\r\n" + "Bağlantı: kapat\r\n\r\n");

nerede,thingspeak'te bulunan ilgili kanal kimliği ile değiştirilir.

3) Yüksek sıcaklık durumunda itme kutusu ile uyarı gönderme

Dize host1="api.pushingbox.com";

client.print(String("GET ") + "/pushingbox?devid= HTTP/1.1\r\n" + "Host: " + host1 + "\r\n" + "Bağlantı: kapat\r\n\r \n");

Pushbox'ta cihaz kimliğiniz nerede değiştirilir.

Adım 5: Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma

Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma
Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma
Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma
Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma
Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma
Linkit Smart 7688 Duo ve Web Kamerasını Yapılandırma

Bu projede web kamerası ve linkt smart 7688 ikilisi kullanılarak gerekli fotoğrafın çekilerek kullanıcıya gönderilmesi sağlanmıştır. Ayrıca arduino kamera modülünü kullanabilir ve arduino ile arayüz oluşturabilir veya herhangi bir IP kamerayı kullanabilirsiniz.

Kartı sıfırlamak için linkit smart 7688 üzerindeki wifi düğmesini 20 saniye basılı tutun. Ardından, wifi ayarı sıfırlandıktan sonra, kablosuz ağ bağlantılarında erişim noktası adını görebileceksiniz. Şimdi bilgisayarı bu ağa bağlayın. bağlandıktan sonra tarayıcıyı açın ve adres çubuğuna 192.168.100.1 yazın. Portalını görebileceksiniz. portalına giriş yapmak için bir şifre belirleyin.

Giriş yaptıktan sonra ağ sekmesine gidin ve İstasyon modunu seçin (internete erişmek için buna ihtiyacımız var (linkit smart 7688 duo) ve Wifi ağınıza bağlayın ve Yapılandır'a basın ve yeniden başlatın.

Pano yeniden başlatıldıktan sonra yerel bir IP adresi atanacaktır. Herhangi bir IP aracını veya yönlendirici portalınızı kullanarak adresi öğrenin. Benim durumumda 192.168.1.4 idi. Şimdi yerel IP adresini tarayıcının adres çubuğuna yazın. bilgisayarın linkt smart ile aynı ağa bağlı olduğundan emin olun. Tekrar giriş yapmanız istenecektir.

Web kamerasından akışı etkinleştirmek için -j.webp

Oturum açtıktan sonra hizmet sekmesine gidin ve -j.webp

Kurulumdan sonra web kameranızı bir OTG kablosu aracılığıyla linkt smart 7688 duo usb host'a bağlayabilirsiniz. Şimdi Stream'i görmek için tarayıcıyı açın ve adres çubuğuna: yazın. benim durumumda 192.168.1.4:4400

anlık görüntüyü almak için şu komutu yazın:?action=snapshot

Şimdi bu görüntü yerel olarak mevcut ancak bunu kutu servisi için kullanılabilir hale getirmemiz gerekiyor. Bunu başarmak için port yönlendirme yapmamız gerekiyor. Port yönlendirme, yönlendirici portalında yapılabilir. Farklı yönlendiriciler için farklı işlem kimliği. Belirli bir yönlendirici için nasıl iletileceğini bilmek için sadece google. Genellikle NAT hizmeti altında bulunur. Bağlantı noktası iletme işleminden sonra bu bağlantı noktasına (örn.. 4440) harici IP'nizden erişebilirsiniz. Harici IP, google'da "ipim nedir" bağlanarak bulunabilir.

bu adresi yazmalısın

yani..

itme kutusuna (bir sonraki adımda anlatılacaktır) bu görüntüye erişebilmesi ve gerektiğinde postaya ekleyebilmesi ve size gönderebilmesi için.

Linkit smart 7688 duo ayrıca bilgi depolamak için bir sd kart yuvası ile birlikte geldiği için görüntüyü sd kartta da saklayabilirsiniz. Bununla ilgili daha fazla bilgiyi şurada bulabilirsiniz:

docs.labs.mediatek.com/resource/linkit-sm…

Adım 6: PushingBox'ı Yapılandırma

PushingBox'ı Yapılandırma
PushingBox'ı Yapılandırma

pushbox, projedeki farklı uyarılar hakkında gmail'e bildirim göndermek için kullanılır.

google hesabını kullanarak pushbox'ta oturum açın:

hizmetlerime git hizmet ekle. Gmail, twitter, android için push bildirimi vb. arasından seçim yapabileceğiniz birçok hizmet var.

Gmail'i seçin (ek olarak fotoğraf göndermemiz gerektiğinden) ve uyarının gönderileceği kullanıcının uygun gmail adı yapılandırmasını ve gmail kimliğini doldurun.

senaryolarıma gidin ve yeni bir senaryo oluşturun. senaryoya bir isim verin (ör: ALERT) önceden oluşturulmuş servisi ekleyin.

postanın uygun konusunu ve gövdesini yazın ve fotoğraf eklemek için web kamerasının ekran görüntüsünü almak için url'yi girin. Farklı uyarılar için farklı senaryolar oluşturun. Bir push kutusu senaryosunu yürütmek için api:

Adım 7: Backendless Kullanarak Alexa Becerisi Oluşturma

Backendless Kullanarak Alexa Becerisi Oluşturma
Backendless Kullanarak Alexa Becerisi Oluşturma
Backendless Kullanarak Alexa Becerisi Oluşturma
Backendless Kullanarak Alexa Becerisi Oluşturma
Backendless Kullanarak Alexa Becerisi Oluşturma
Backendless Kullanarak Alexa Becerisi Oluşturma

alexa becerisini oluşturmak için backendless kullanılır. Arka uçsuz API ile erişilebilen alexa becerisi (veya herhangi bir program) oluşturmak için kullanılan basit bir sürükle ve bırak programlamadır.

backendless'ta bir hesap oluşturun:

  • Arka uçsuz hesapta hesabınıza giriş yapın. Uygulama oluştur'a tıklayın ve uygulamanıza bir ad verin
  • Soldaki simge çubuğunda bulunan İş Mantığı simgesine tıklayın. API HİZMETLERİ ekranını göreceksiniz.
  • Yeni bir hizmet oluşturmak için “+” simgesine tıklayın. “New Service” açılır penceresinde CODELESS'ı seçtiğinizden emin olun. Hizmet adı için “AlexaService” girin. KAYDET düğmesine tıklayın:
  • Backendless, API Hizmetini oluşturur ve sizden hizmet için bir yöntem oluşturmanızı ister. Bu, Alexa'dan gelen istekleri işleyecek olan yöntem olacaktır. Yöntem adı için "handleRequest" girin. REST işlemi için POST'u seçtiğinizden emin olun ve "req" adıyla bir argüman bildirin ve gösterildiği gibi "Any Object" yazın:
  • Backendless, yöntemin kodsuz mantığı için bir yer tutucu oluşturur. Codeless Logic Designer'a geçişi başlatmak için DÜZENLE düğmesine tıklayın. Oluşturulan fonksiyon yer tutucu bloğunda “doSomething” yazan alana tıklayın ve “sendAlexaResponse” olarak değiştirin. Bu işlev, alexa'nın argüman olarak iletilebilecek bir şey söylemesini sağlamak için kullanılır. Fonksiyonun kaydedilmesi için KAYDET düğmesine tıklayın.
  • “İşlev” kelimesinin hemen yanındaki mor blokta bulunan dişli simgesine tıklayın. Aşağıdaki resimde gösterildiği gibi giriş bloklarını sürükleyerek iki argüman ekleyin. Argümanların adlarını “whatToSay” ve “waitForResponse“olarak atayın. Siz bağımsız değişkenler ekledikçe, Bağlam Blokları alanının bağımsız değişken değerlerini temsil eden bloklarla otomatik olarak doldurulduğuna dikkat edin.
  • Fonksiyonun mantığını resimdeki gibi görünecek şekilde değiştirin. "Nesne Oluştur" blokları için, nesne özelliklerinin adını değiştirmek için dişli simgesini kullanın. KAYDET butonuna tıklayarak çalışmanızı kaydetmeyi unutmayınız.
  • Özel işlev oluşturulduktan sonra, AlexaService hizmetinin handleRequest yöntemine geri dönün. Soldaki araç çubuğundaki Özel İşlevler kategorisine tıklayın ve hizmet yönteminizin dönüş bağlayıcısına bağlanmak için sendAlexaResponse bloğunu sürükleyin
  • Yukarıdaki adımlar web sitelerinde de bulunabilir: https://backendless.com/developing-alexa-skill-wi…
  • TARAYICI bölümünde İşlevler altında bulunan “Yeni Ekle” düğümüne tıklayın. Oluşturulan fonksiyon yer tutucu bloğunda “doSomething” yazan alana tıklayın ve “getIntentName” olarak değiştirin, fonksiyon gösterilen resim gibi görünecek şekilde blokları değiştirin. Bu örnek ifadelere dayalı olarak niyet adını alacaktır. Tarayıcı bölümünde API servisleri->isteği ele alın'a geri dönün. Sistem bölümünden değişkenler ve mantık oluşturulur. Resimlerde gösterilen aşağıdaki değişkenleri oluşturun.
  • sonra değişken istemek için amaç adını saklarız. Ve sonra niyetlerle karşılaştırın. örneğin istek "giriş" ise, yanıt değişkeni "merhaba! Kontrol edebilirim……" olarak ayarlanır. ve bu yanıt sonunda alexa tarafından yüksek sesle okunur. bloğu gösterildiği gibi değiştirin.
  • istek LightsOn amaçlı ise, o zaman http get request kullanarakthingspeak kanalını '0' olarak güncelleriz ve aynı zamanda cihaz durumunu güncelleriz (Açık/Kapalı'ya bağlı olarak 1/0). LightsOff, FanOn ve FanOff için aynı şey tekrarlanır.
  • Hava durumu için Sıcaklık ve nem kanalından okuruz ve sonucu yanıt değişkeninde saklarız. Kanal yalnızca değerler verdiğinden, yanıtı anlamlı kılmak için metinler ekleriz
  • oturma odasının anlık görüntüsü için itme kutusu senaryosu çalıştırıyoruz
  • cihaz durumu için,thingspeak'in durum kanalından bilgi okuruz:
  • uyarı kanallarından (yangın, davetsiz misafir ve misafir) okuduğumuz bildirim ve uyarılar için:
  • bildirim alanından aldığımız değerlere göre ilgili uyarı mesajları answer0 değişkeninde saklanır. bildirim yoksa, bildirim mesajı saklanmaz.
  • bildirim okunduktan sonra, alexa'nın aynı bildirimi tekrar okumaması için bildirim kanallarında '0' güncellenir. Ardından, isteğe bağlı olarak, yanıt0/cevap değişkeni yüksek sesle okunur.

Adım 8: Amazon Developer Console'da Alexa Skill'i Yapılandırma:

Amazon Developer Console'da Alexa Skill'i Yapılandırma
Amazon Developer Console'da Alexa Skill'i Yapılandırma
Amazon Developer Console'da Alexa Skill'i Yapılandırma
Amazon Developer Console'da Alexa Skill'i Yapılandırma
Amazon Developer Console'da Alexa Skill'i Yapılandırma
Amazon Developer Console'da Alexa Skill'i Yapılandırma

amazon geliştirici konsoluna gidin ve amazon hesabını kullanarak oturum açın.

geliştirici konsoluna gidin ve ALEXA sekmesine tıklayın. Alexa Skill Kit'e tıklayın, başlayın.

özel beceri türü oluşturun, beceriye ad ve çağırma adı verin. ilgili amaçlar ve örnek ifadeler kodda verilmiştir.

yapılandırma sekmesinde hizmet bitiş noktası türü olarak HTTPS'yi seçin, varsayılan URL'yi arka uçtan API URL'si ile doldurun. SSL sertifikasında varsayılan uç nokta için Sertifika'da 2. seçeneği seçin. Test simülatörünü kullanarak beceriyi de test edebilirsiniz.

Test tamamlandıktan sonra, gerekli yayınlama bilgileriyle beceriyi yayınlayabilirsiniz.

Adım 9: Son Kurulum ve Bitirin

Son Kurulum ve Bitir!
Son Kurulum ve Bitir!
Son Kurulum ve Bitir!
Son Kurulum ve Bitir!

Devre bağlantısını gösterildiği gibi yapın.

Bazen ESP8266 yetersiz akım nedeniyle arızalanır. Bu nedenle, devrede belirtilmesine rağmen, ESP8266'ya ayrı 3.3v kaynaktan güç verilmesi önerilir. Eğer powerbank kullanıyorsanız, 3.3v voltaj regülatörü kullanarak voltajı 5v'den 3.3v'a düşürdüğünüzden emin olun. Programı ESP8266 ve arduino'ya yükleyin. Ampul bağlantısını gösterdim, aynı şey fan veya herhangi bir cihaza genişletilebilir. Sonunda becerinizi test etmek için amazon echo veya echosim.io kullanın.

Çağrı adını kullanarak beceriyi etkinleştirmelisiniz (benim durumumda olduğu gibi - "benim evim"). Videomda birkaç kez gösterdiğim gibi bazen çağrı adı olmadan kullanılırsa çalışmaz

Umarım öğreticiyi beğenmişsinizdir!

Teşekkürler!

Önerilen: