- Google Asistan kontrollü Ev Otomasyonu için Devre Şeması
- Blynk Uygulamasını Kurmak
- Dizeyi Okumak için Google Asistan ve Blynk ile IFTTT'yi Ayarlama
- Blynk Ev Otomasyonu için Arduino Programlama
- PCBGoGo kullanarak PCB imalatı
- PCB'nin montajı
- Kartı AC Güç Üniteleri / Genişletme Kartları ile Bağlama
Google Asistan ve Alexa gibi sanal asistanlardaki gelişmelerle birlikte Ev otomasyonu ve Ses kontrollü uygulamalar normal hale geliyor. Şimdi, Raspberry Pi kullanarak basit Otomatik Merdiven Işıklarından IoT tabanlı web kontrollü Ev Otomasyonuna kadar birçok ev otomasyon projesi inşa ettik. Ancak buradaki proje farklı, buradaki fikir, duvarlarımızdaki AC güç ünitelerimize sığabilecek ve içinde gizli kalacak pratik bir Ev otomasyon panosu oluşturmaktır. Kart, güç ünitesi anahtarlarımızın normal çalışmasını kesintiye uğratmamalıdır, yani manuel anahtarlarla da AÇIK veya KAPALI konuma getirilmelidir. Ve söylenmeden, aynı yükü Google asistanı kullanarak sesle kontrol edebilmeli ve ayrıca bir zamanlayıcı ayarlayabilmeli, böylece herhangi bir yükün günün önceden belirlenmiş bir saatinde otomatik olarak AÇILMASI veya KAPATILMASI.
Bu proje ESP8266 Akıllı Wi-Fi fişimize çok benziyor ancak burada ESP12 kullanacağımız için dört AC yükünü aynı anda kontrol etmemize izin veren daha fazla GPIO pinimiz olacak. Ayrıca, Blynk ve Google Assistant'ı entegre ettiğimiz için, projenin kullanımı ilginç ve pratik hale geliyor. Bu proje için devre kartlarını PCBGOGO PCB üretim hizmetini kullanarak oluşturduk. Makalenin sonraki bölümünde, devre için tasarlanmış Gerber dosyasını sağladık ve ayrıca PCBGOGO'dan PCB siparişi için tam prosedürü açıkladık.
Uyarı: Bu proje, AC şebeke voltajıyla çalışmayı içerir. Yüksek AC voltajlarıyla çalışırken son derece dikkatli olunması gerektiğini unutmayın. Yeniyseniz, deneyimli bir kişi tarafından denetlendiğinizden emin olun.
Google Asistan kontrollü Ev Otomasyonu için Devre Şeması
Ev otomasyonu için eksiksiz devre şeması aşağıda bulunabilir.
Gördüğünüz gibi devre çok basit, açıklamaya ESP12E Wi-Fi Modülünden başlayalım. Ayrıntılı bir proje açıklaması için aşağıdaki videoyu da inceleyebilirsiniz. Modül, nodeMCU geliştirme kartları gibi programlanabilir ve çok fazla alanı azaltır. Varsayılan olarak, açıldığında, ESP12E çalışma moduna girecektir. Programlamak için Reset ve Flash butonunu kullanmamız gerekiyor. Yani ESP12'yi programlama moduna geçirmek, hem Sıfırla hem de Flaş düğmesini basılı tutmak ve ardından sıfırlama düğmesini serbest bırakmaktır. Bu, ESP12E'yi flaş düğmesi basılıyken başlatacak, şimdi flaş düğmesini bıraktığınızda ESP12E programlama moduna girecektir. Programlamadan sonra, yüklenen Programı çalıştırmak için ESP12E'yi normal çalışma modunda başlatmak için sıfırlama düğmesine tekrar basmanız gerekir. Programlama pinleri Rx, Rx,ve Toprak, bir FTDI kartı veya USB'den TTL'ye dönüştürücü ile bağlanabilmek için genişletilmiştir. ESP12'nin Tx pinini Programlayıcının Rx pinine bağladığınızdan emin olun ve tersi.
I1 ila I4 ve R1 ila R4 arasındaki diğer bayrak pimleri, Anahtarları ve Röleleri bağlamak için kullanılır. I1 ila I4 pinleri Giriş pinleri anlamına gelir. Tüm bu pinler dahili çekme direncini destekler, bu nedenle uzatma kutusundaki anahtarları aşağıda gösterildiği gibi bir aşağı çekme direnci aracılığıyla Giriş pinimize bağlamamız yeterlidir.
Benzer şekilde, Röle çıkış pinleri R1 - R4 Röleleri kontrol etmek için kullanılır. Aşağıda gösterildiği gibi BC547 ve IN4007 Diyotlu standart bir röle sürücü devresi kullandık. Rölelerin 5V ile tetiklenmesi gerektiğini, ancak ESP12E çıkış pinlerinin sadece 3.3V olduğunu unutmayın. Bu nedenle, röleleri sürmek için bir transistör kullanılması zorunludur. Ayrıca transistörün temel yoluna bir LED yerleştirdik, böylece transistör her tetiklendiğinde LED de yanacaktır.
Son olarak, tüm devrelerimize güç sağlamak için, Hi-Link AC-DC dönüştürücüyü kullanarak 220V AC'yi 5V DC'ye dönüştürdük. Bu 5V DC daha sonra bir AMS117-3.3V voltaj regülatörü kullanılarak 3.3V'a dönüştürülür. 5V, Röleleri tetiklemek için, 3.3V ise ESP21 Wi-Fi Modülüne güç sağlamak için kullanılır.
Blynk Uygulamasını Kurmak
Daha önce Wi-Fi Kontrollü Arduino Robot gibi birçok Blynk projesi inşa ettik, bu yüzden blynk uygulamasını kurma ayrıntılarına girmeyeceğiz. Ancak basitleştirmek gerekirse, uygulamayı kurun, NodeMCU için yeni bir proje oluşturun ve widget'larınızı aşağıda gösterildiği gibi yerleştirmeye başlayın.
Projemizde 1'den 4'e kadar röleyi kontrol etmek için V1 - V4 sanal pinlerini kullandım. Değiştirilecek düğme türünü değiştirdiğinizden emin olun. Zamanlayıcı seçeneği, telefon kapalı olsa bile sanal pinleri ayarlanan süre boyunca otomatik olarak tetiklemek için de kullanılabilir. Örneğin burada sadece sanal pin V1 için bir zamanlayıcı kullandım, ancak gerekirse dört pin için de kullanabilirsiniz.
Blynk yetkilendirme belirteci değerinizi proje sayfanızdan aldığınızdan emin olun. Sadece somun simgesine tıklayın (yukarıdaki resimde kırmızı daire içine alınmış) ve tümünü kopyala seçeneğini kullanarak auth token'ı kopyalayın ve güvenli bir yere yapıştırın, Arduino kartını programlarken ihtiyacımız olacak.
Dizeyi Okumak için Google Asistan ve Blynk ile IFTTT'yi Ayarlama
Ev otomasyonu için Google Asistan'ı kullanmanın en kolay yolu IFTTT kullanmaktır. Ayrıca daha önce NodeMCU ve Raspberry Pi ile birçok IFTTT projesi oluşturduk. Bu projede, Google asistanı kullanarak bir webhook tetiklemek için Blynk uygulamasını kullanacağız. Ses kontrollü ev otomasyonu ve ses kontrollü FM radyo projemize çok benziyor. Bunun dışında, dizgeyi göndermek için IFTTT ile blynk kullanacağız, bu da onu çok daha kolay ve ilginç hale getirir.
Temel olarak, tetikleme komutunu göndermek için blynk üzerinde sanal pin V5 ve V6 kullanacağız. V5, açma komutları için kullanılacak ve V6, kapatma komutları için kullanılacaktır. Örneğin, TV'yi ve Lambayı aç dersek. Buradaki "TV ve Lamba" dize komutu bir API kullanılarak NodeMCU'ya gönderilecektir. API sözdizimi aşağıdaki gibidir.
http://188.166.206.43//update/V5?value=TV ve Lamba
Şimdi IFTTT'de yapmamız gereken tek şey, google asistanı IF olarak ve webhooks'u kullanmaktır, bu nedenle bu komutu dinleyin ve yukarıda belirtilen API'yi kullanarak bilgileri NodeMCU'ya gönderin. Açma uygulaması aynı şekilde aşağıda gösterilmiştir.
Google Asistan için bir yemek tarifi oluştururken metin içerik seçeneği olan bir ifade seçmeniz gerektiğini unutmayın. Benzer şekilde, röleleri kapatmak için sanal pin V6 için aynısını tekrarlamanız gerekir. Detaylı bilgi için bu sayfanın altındaki videoyu inceleyebilirsiniz.
Blynk Ev Otomasyonu için Arduino Programlama
Bu proje için tam Arduino kodu bu sayfanın alt kısmında bulunabilir. Aynı şeyin açıklaması aşağıdaki gibidir. Bundan önce, Arduino IDE'den Blynk ve Program NodeMCU'yu kullanabileceğinizden emin olun. ESP12 ile başlama makalesini takip etmiyorsanız. Ayrıca, kart yöneticisini kullanarak blynk kitaplığını Arduino IDE'ye ekleyin.
Her zaman olduğu gibi, kodumuza giriş ve çıkış pinlerini tanımlayarak başlıyoruz, burada giriş anahtarlardan ve çıkış rölelerden olacak. Aşağıda görebileceğiniz gibi dört anahtarın hepsinin pin adlarını sw ve röleleri rel olarak tanımladık.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Bir sonraki aşamada, blynk kimlik doğrulama belirteci ve nodeMCU'nuzun bağlanması gereken Wi-Fi yönlendiricisi için kullanıcı adı ve şifre gibi bazı kimlik bilgilerini girmeniz gerekir. Blink kimlik doğrulama belirteci, blynk uygulamasından alınabilir. Blynk uygulamasını kurma bölümünde bunun hakkında daha fazla bilgi edineceğiz.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // blynk uygulamasından al char ssid = "home_wifi"; char pass = "fakepass123";
Daha sonra, read_switch_toggle () adlı bir işlevin tanımını verdik. Bu işlevde, anahtarlarımızın mevcut durumunu ve önceki durumunu karşılaştıracağız. Anahtar açılmış veya kapatılmışsa, yani anahtar değiştirilmişse. Anahtarın durumunda bir değişiklik olacak, işlev bu değişikliği izleyecek ve anahtar numarasını döndürecektir. Herhangi bir değişiklik tespit edilmezse, 0 döndürür.
int read_switch_toggle () {int sonuç = 0; // (int i = 0; i <= 3; i ++) için önceki tüm değerleri not edin pvs_state = crnt_state; // Anahtarların mevcut durumunu okuyun crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // akım ve pvs durumunu karşılaştır (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {sonuç = (i + 1); // herhangi bir anahtar değiştirilirse, sonuç dönüş sonucu olarak anahtar numarası alırız; } else sonuç = 0; // değişiklik yoksa sonuç 0} sonuç döndür; // sonucu döndür}
Sonra, blynk uygulamasının koduna sahibiz. Akıllı bağlantı kutumuzu kontrol etmek için sanal pin V1 - V6'yı kullanacağız. V1 ila V4 pinleri, sırasıyla 1 ila 4 rölelerini doğrudan blynk uygulamasından kontrol etmek için kullanılacaktır. Aşağıdaki kod, V1 blynk uygulamasından tetiklendiğinde ne olduğunu gösterir. Sadece durumu (YÜKSEK veya DÜŞÜK) okuruz ve buna göre röleyi kontrol ederiz.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Benzer şekilde, sanal pinler de blynk uygulamasından bir dizeyi okumak için kullanılabilir. IFTTT ve Google asistanı kullanarak google asistan'dan NodeMCU'ya nasıl bir dize gönderileceğini daha sonra öğreneceğiz, ancak şimdilik, NodeMCU kodunun bu dizeyi nasıl okuyup belirli bir anahtar kelimeyi aradığını ve buna göre röleyi nasıl tetiklediğini görelim.
Aşağıdaki kodda, sanal pin V5 tetiklendiğinde, ondan geçen dizeyi ON_message adlı bir string değişkenine aldığımızı görebilirsiniz . Daha sonra bu string değişkenini ve inderOf yöntemini kullanarak "lamba", "LED", "müzik", "TV" gibi anahtar kelimeler olup olmadığını araştırırız, varsa o belirli yükü açarız. "Herşey" anahtar kelimesi tespit edilirse, her şeyi açarız. Aynı şey V6'nın röleleri kapatması için de yapılabilir. IFTTT bölümüne girdiğimizde bunu daha iyi anlayacağız.
BLYNK_WRITE (V5) {Dize ON_message = param.asStr (); Serial.println (ON_message); eğer (ON_message.indexOf ("lamp")> = 0) digitalWrite (rel1, HIGH); eğer (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); eğer (ON_message.indexOf ("müzik")> = 0) digitalWrite (rel3, HIGH); eğer (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); eğer (ON_message.indexOf ("her şey")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Son olarak, döngü işlevinin içinde, yalnızca herhangi bir düğmenin anahtar konumunun değişip değişmediğini kontrol etmeliyiz. Evetse, o rölenin konumunu değiştirmek için aşağıda gösterildiği gibi bir anahtar kutusu kullanırız.
anahtar (toggle_pin) {case 0: break; durum 1: Serial.println ("Geçiş 1 Geçiş"); digitalWrite (rel1, röle_stat); kırmak; durum 2: Serial.println ("Geçiş 2 Geçiş"); digitalWrite (rel2, röle_stat); kırmak; durum 3: Serial.println ("Geçiş Yapan Röle 3"); digitalWrite (rel3, röle_durumu); kırmak; durum 4: Serial.println ("Geçiş Yapan Röle 4"); digitalWrite (rel4, röle_stat); kırmak; }}
PCBGoGo kullanarak PCB imalatı
Artık şemaların nasıl çalıştığını anlıyoruz, Ev otomasyon projemiz için PCB oluşturmaya devam edebiliriz. Yukarıdaki devre için PCB düzeni, bağlantıdan Gerber olarak indirilebilir.
- Google Asistan'ı kullanarak Ses Kontrollü Ev Otomasyonu için GERBER'i indirin
Artık tasarımımız hazır, onları Gerber dosyası kullanarak üretme zamanı. PCB'yi PCBGOGO'dan yapmak oldukça kolaydır, aşağıdaki adımları uygulamanız yeterlidir.
Adım 1: www.pcbgogo.com'a girin, ilk seferinizse kayıt olun. Ardından PCB Prototype sekmesinde PCB'nizin boyutlarını, katman sayısını ve ihtiyacınız olan PCB sayısını girin. PCB'nin 80cm × 80cm olduğunu varsayarsak, boyutları aşağıda gösterildiği gibi ayarlayabilirsiniz.
Adım 2: Şimdi Alıntı Yap düğmesine tıklayarak devam edin. Kullanılan malzeme izi aralığı gibi gerekirse birkaç ek parametrenin ayarlanacağı bir sayfaya yönlendirileceksiniz. Ancak çoğunlukla varsayılan değerler iyi çalışacaktır. Burada dikkate almamız gereken tek şey fiyat ve zamandır. Gördüğünüz gibi, Yapım Süresi sadece 2-3 gündür ve PCB için maliyeti sadece 5 $ 'dır. Ardından, ihtiyacınıza göre tercih edilen bir gönderim yöntemi seçebilirsiniz.
3. Adım: Son adım, Gerber dosyasını yüklemek ve ödemeye devam etmektir. İşlemin sorunsuz olduğundan emin olmak için PCBGOGO, ödemeye devam etmeden önce Gerber dosyanızın geçerli olup olmadığını doğrular. Bu şekilde, PCB'nizin imalat dostu olduğundan ve kararlı bir şekilde size ulaşacağından emin olabilirsiniz.
PCB'nin montajı
Tahta sipariş edildikten sonra, birkaç gün sonra düzgünce etiketlenmiş, iyi paketlenmiş bir kutuda kuryeyle bana ulaştı ve her zaman olduğu gibi PCB'nin kalitesi harikaydı. Tarafımdan alınan PCB aşağıda gösterilmiştir. Gördüğünüz gibi, hem üst hem de alt katman beklendiği gibi çıktı.
Via'lar ve pedlerin hepsi doğru boyuttaydı. Çalışan bir devre elde etmek için PCB kartına monte etmem yaklaşık 15 dakika sürdü. Montajı yapılan kart aşağıda gösterilmiştir.
Kartı AC Güç Üniteleri / Genişletme Kartları ile Bağlama
Pano, evlerimizdeki AC prizlerinin içine sabitlenecek şekilde tasarlanmıştır. Ancak bu proje uğruna bir uzatma kutusu kullanacağız. Daha kalıcı bir çözüm istiyorsanız, bunu AC güç prizlerinizin içine bağlayın, aşağıda görebileceğiniz gibi PCB'nin uzunluğu bir AC güç soketine yerleştirilecek kadar küçüktür.
AC şebekesiyle çalışırken güvenlik önlemlerine uyduğunuzdan emin olun. Rölelerinizi ve anahtarlarınızı PCB kartımıza nasıl bağlayacağınızı anlamak için aşağıdaki devre şemasını izleyin.
Bağlantı şeması yalnızca bir Röle ve anahtar için aşağıdadır, ancak aynı şeyi kalan üçü için de çoğaltabilirsiniz. Bağlantılar yapıldıktan sonra panonuz şöyle görünmelidir
Bağlantılar yapıldıktan sonra vidalı terminallerle sıkıca sabitlediğinizden emin olun ve ayrıca ek güvenlik için sıcak tutkal kullanın. Her şeyi kutuya geri koyun ve test için hazır olmalıyız. Bu projenin eksiksiz çalışmasını aşağıdaki videoda bulabilirsiniz.
Umarım makaleyi beğenmişsinizdir ve faydalı bir şeyler öğrenmişsinizdir. Herhangi bir sorunuz varsa, lütfen aşağıdaki yorum bölümüne bırakın veya forumlarımızı kullanın.