- Arduino Otomatik Panjur Oluşturmak için Gerekli Bileşenler
- Arduino ile Stor Perde Kontrolü
- Pencere Kör Donanımını Tasarla ve Yap
- Motor Tutucu ve Kör Dişliyi 3B Yazdırma
- Arduino Perde Kontrolü için Devre Şeması
- Arduino Blind Control için Blynk Uygulaması
- Blynk kullanarak Panjurları Kontrol Etmek için NodeMCU Programlama
- Google Asistan kullanarak Pencere Panjurlarını Kontrol Etme
- Arduino tabanlı Otomatik Pencere Panjuru Kontrolü - Gösteri
"Günaydın. Saat sabah 7'de Malibu'da hava 72 derece… ”Bunlar, JARVIS'in Marvel Cinematik Evreninde tanıtıldığı zamanki ilk sözleriydi. Çoğu Iron Man hayranı bu sahneyi hatırlayabilmeli ve JARVIS'in sabahları bir pencere açabildiğini (bir nevi) ve zaman ve hava durumu ile ilgili güncellemeler verebildiğini hatırlayabilmelidir. Filmde, Pencere Camları aslında Saydam Dokunmatik Ekranlardan yapılmıştı ve bu nedenle JARVIS onu siyahtan şeffafa çevirebildi ve ayrıca hava durumu istatistiklerini gösterebildi. Ancak gerçekte, şeffaf dokunmatik ekranlardan çok uzağız ve yaklaşabileceğimiz şey, pencere panjurlarını veya kısıtlamaları otomatik olarak kontrol etmektir.
Dolayısıyla bu projede tam olarak bunu inşa edeceğiz, önceden tanımlanmış zamanlarda otomatik olarak açılıp kapanacak otomatik motorlu bir perde inşa edeceğiz. Daha önce, ışıkları, motorları vb. Otomatikleştirdiğimiz birçok ev otomasyon projesi inşa etmiştik. İlgilendiğiniz takdirde bunları inceleyebilirsiniz. Dolayısıyla, geri döndüğümüzde, bu Arduino kontrollü panjurlar, Google asistanından komutlar alabilir, böylece pencere panjurlarınızı sesli komutlarla uzaktan açıp kapatabilirsiniz. İlgi çekici? O halde inşa ettirelim.
Arduino Otomatik Panjur Oluşturmak için Gerekli Bileşenler
Proje nispeten basittir ve çok fazla bileşen gerekli değildir. Sadece aşağıda listelenen öğeleri bir araya getirin.
- NodeMCU
- Step Motor - 28BYJ-48
- Step Motor Sürücü Modülü
- LM117-3.3V
- Kapasitörler (10 uf, 1 uf)
- 12V DC Adaptör
- Perf Kurulu
- Lehimleme kiti
- 3 boyutlu yazıcı
Arduino ile Stor Perde Kontrolü
Şimdi piyasada birçok perde türü var, ancak en yaygın kullanılanı, panjurları açmak veya kapatmak için çekilebilen (aşağıda gösterildiği gibi) boncuklu bir ipe sahiptir.
Bu dairesel ipi saat yönünde çektiğimizde pencere panjurları açılacak ve bu ipi saat yönünün tersine çektiğimizde pencere panjurları kapanacaktır. Yani, bu işlemi otomatikleştirecek olsaydık, tek yapmamız gereken bu ipi saat yönünde veya saat yönünün tersine çekmek için bir motor kullanmaktır ve işimiz biter. Aslında bu projede yapacağımız şey bu; boncuklu ipi çekmek için bir NodeMCU ile birlikte 28BYJ-48 step motoru kullanacağız.
Pencere Kör Donanımını Tasarla ve Yap
Bu projenin Elektronik kısmı oldukça basit ve anlaşılırdı, en zor kısmı ise boncuklu ipi çekebilen Kör Dişli'nin yapımıydı. Öyleyse bu makaleye kör dişli tasarımıyla başlayalım, donanımın nasıl tasarlanacağına dair ayrıntılara girmeyeceğim, ancak bu temel fikir size yardımcı olmalı. Üzerinde boncuk bulunan ipin bir görüntüsü aşağıda gösterilmiştir.
Yine birçok ip türü vardır ancak en yaygın kullanılan ipler her bir kordonun merkezden merkeze mesafesi 6 mm ve her bir kordonun çapı 4 mm'dir. Bu bilgileri kullanarak donanımımızın tasarımına başlayabiliriz. Panjurlarınızdaki halat tartışılanla aynı boyutlara sahipse, bu adımı atlayabilir ve bu makalede verilen STL dosyasını indirebilir ve dişliyi yazdırabilirsiniz. Halatınız farklı bir boncuk dizilimine sahipse, kör dişliyi bu şekilde yeniden tasarlamalısınız.
Optimum dişli çark boyutu elde etmek için dişlilerimde 24 tane boncuk bulundurmaya karar verdim, dişli çarkınızın büyük veya küçük olması için buna yakın herhangi bir sayıyı seçebilirsiniz. Şimdi, her boncuk arasındaki mesafenin 6 mm olduğunu biliyoruz ve teçhizatımızda 24 taneye ihtiyacımız var. İkisini de çarpmak dişli çarkın çevresini verecektir. Bu verilerle dişli çarkın yarıçapını hesaplayabilirsiniz. Yukarıdaki görselde görebileceğiniz gibi dişli çarkımın çapı 46 mm civarında hesaplandı. Ancak unutmayın, bu dişlinin gerçek çapı değildir, çünkü 4 mm olan kordonun çapını hesaba katmadık. Yani, dişli çarkın gerçek çapı 42 mm olacak, en iyi çalışanı bulmadan önce birçok dişli çarkı basıp test ettim. Tasarımlarla ilgilenmiyorsanız,sadece sonraki paragraftan STL dosyalarını indirip yazdırın ve projenize devam edin.
Motor Tutucu ve Kör Dişliyi 3B Yazdırma
Dişli ile birlikte, duvara delinebilen ve step motoru yerinde tutan küçük bir kasaya da ihtiyacımız olacak, bu projede kullanılan hem kasa hem de dişli aşağıda gösterilmiştir.
Aşağıda verilen Arduino Blind Control Thingiverse sayfasında eksiksiz tasarım dosyalarını ve STL dosyalarını bulabilirsiniz. Kör donanımınızı ve motor kasanızı indirip yazdırabilirsiniz.
Blind Gear ve Motor Case için STL dosyalarını indirin
Arduino Perde Kontrolü için Devre Şeması
Dişli ve montaja hazır olduğunuzda, elektronik ve yazılım kısmına devam etmek kolaydır. IoT Blind kontrol projesi için eksiksiz devre şeması aşağıda gösterilmiştir.
Tüm kurulumu güçlendirmek için 12V adaptör kullandık; LM1117-3.3V regülatörü, NodeMCU kartına güç sağlamak için kullanılabilecek 12V'yi 3.3V'ye dönüştürür. Step motor sürücü modülü doğrudan 12V adaptörden beslenir. Step motoru 5V'de çalıştırmayı denedim, ancak o zaman panjurları çekmek için yeterli tork sağlamadı, bu yüzden 12V de kullandığınızdan emin olun.
Bunun dışında devre oldukça basittir, eğer step motorlarda yeniyseniz, nasıl çalıştığını ve bir mikrodenetleyici ile nasıl kullanılabileceğini anlamak için step motor makalesinin temellerine bakın.
Arduino Blind Control için Blynk Uygulaması
Arduino Controlling Panjur programına girmeden önce, blynk uygulamasını açalım ve panjurlarımızı açıp kapatabileceğimiz bazı düğmeler oluşturalım. Buna daha sonra Google ana sayfasından kontrol etmek için de ihtiyacımız olacak.
Panjurları açmak ve kapatmak için iki düğme ve her gün saat 10: 00'da panjurları açmak için bir zamanlayıcı ekledim. Panjurları günün farklı aralıklarında açmak veya kapatmak için birden fazla zamanlayıcı ekleyebilirsiniz. Temel olarak, panjurları kapatmamız gerektiğinde, sanal pin V1'i tetiklemeliyiz ve panjurları açmamız gerektiğinde sanal pin V2'yi tetiklemeliyiz. Burada basılan butona göre step motoru kontrol etme programı Arduino IDE üzerine yazılacak, aynısı aşağıda tartışılacaktır.
Blynk kullanarak Panjurları Kontrol Etmek için NodeMCU Programlama
Bu Kör Kontrol Projesi için eksiksiz ESP8266 kodu bu sayfanın alt kısmında bulunabilir. Programımızın blynk uygulamasından bir komut beklemesi gerekiyor ve bu komuta dayanarak step motoru ya saat yönünde ya da saat yönünün tersine döndürmeliyiz. Kodun önemli bölümleri aşağıda tartışılmaktadır.
Devre şemamıza göre, step motorumuzu kontrol etmek için nodemcu üzerinde 1, 2, 3 ve 4 numaralı dijital pinleri kullandık. Bu nedenle, aşağıda gösterildiği gibi bu pinleri kullanarak step adında bir örnek oluşturmalıyız. Pimleri 1, 3, 2 ve 4 sırayla tanımladığımıza dikkat edin. Bu bilinçli olarak yapılmıştır ve bir hata değildir; motorun düzgün çalışması için 2 ve 3 numaralı pimleri değiştirmemiz gerekir.
// adımları ve pimleri kullanarak adım sınıfının bir örneğini oluşturun Adımlayıcı adımlayıcı (STEPS, D1, D3, D2, D4);
Bir sonraki adımda, blynk uygulama kimlik doğrulama jetonumuzu ve IoT Blind denetleyicimizin bağlanması gereken Wi-Fi kimlik bilgilerini paylaşmalıyız. Bu Blynk kimlik doğrulama belirtecini nasıl alacağınızdan emin değilseniz, blynk uygulamasının temellerini ve nasıl kullanılacağını anlamak için Blynk LED Kontrolü projesine başvurun.
// Blynk Uygulamasında Auth Token almalısınız. // Proje Ayarlarına gidin (somun simgesi). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // WiFi kimlik bilgileriniz. // Açık ağlar için şifreyi "" olarak ayarlayın. char ssid = "CircuitDigest"; char pass = "dummy123";
Kodumuza devam ederek, kurulum işlevinden sonra, blynk için iki yöntem tanımladık. Daha önce de belirtildiği gibi, V1 ve V2 sanal pinlerinin ne yapması gerektiğini tanımlamalıyız. Aynı kod aşağıda verilmiştir.
BLYNK_WRITE (V1) // KÖRÜKLERİ KAPATIN {Serial.println ("Kapanış Panjurları"); if (open == true) {for (int c_val = 0; c_val <= 130; c_val ++) // kapatmak için Saat yönünün tersine döndür {stepper.step (c_val); Yol ver(); } kapalı = doğru; açıldı = yanlış; disable_motor (); // kullanımdan sonra güç tüketimini ve ısınmayı azaltmak için step motorları her zaman etkinleştirin}} BLYNK_WRITE (V2) // KÖRÜKLERİ AÇIN {Serial.println ("Açılış Panjurları"); if (kapalı == doğru) {for (int cc_val = 0; cc_val> = -130; cc_val--) // açmak için Saat yönünde döndürün {stepper.step (cc_val); Yol ver(); } açıldı = doğru; kapalı = yanlış; } disable_motor (); // güç tüketimini ve ısınmayı azaltmak için kullanımdan sonra step motorları her zaman etkinleştirin}
Gördüğünüz gibi V1 panjurları kapatmak için ve V2 panjurları açmak için kullanılıyor. Motorları 130 adımda saat yönünde veya saat yönünün tersine döndürmek için bir for döngüsü kullanılır. Panjurlarımla 130 adımda panjurlarımı tamamen açıp kapatabildiğimi bulmak için deneyler yaptım. Numaranız değişebilir. Döngü için bir saat yönünde ve saat yönünün tersi yönde döndürme step motor aşağıda gösterilmiştir.
for (int c_val = 0; c_val <= 130; c_val ++) // {stepper.step (c_val) 'ı kapatmak için Saat yönünün tersine döndürün; Yol ver(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // açmak için Saat yönünde döndürün {stepper.step (cc_val); Yol ver(); }
Ayrıca programımızda iki Boole değişkeninin "açık" ve "kapalı" olduğunu fark edebilirsiniz. Bu iki değişken, motorun panjurları iki kez açmasını veya kapatmasını önlemek için kullanılır. Yani, panjurlar yalnızca önceden kapatıldığında açılacak ve yalnızca daha önce açıldığında kapanacaktır.
28BJY-48 Step motorun hızı nasıl artırılır?
28BJY-48 step motor kullanmanın bir dezavantajı, çok yavaş olmasıdır. Bu motorlar orijinal olarak yüksek hassasiyetli düşük hızlı uygulamalarda kullanılmak üzere üretilmiştir, bu nedenle bu motorların yüksek hızda dönmesini beklemeyin. Arduino'yu kullanarak step motorun hızını artırmak isterseniz değiştirebileceğiniz iki parametre vardır. Biri #define STEPS 64, adım 64 olarak tanımlandığında motorun nispeten daha hızlı olduğunu buldum. Diğer bir parametre ise stepper.setSpeed (500); Yine 500'ü optimal bir değer olarak buldum, bundan daha fazlası aslında step motoru yavaşlatıyor.
Bu motorların hızını artırmanın başka bir yolunu biliyor musunuz? Cevabınız evet ise, bunları aşağıdaki yorum bölümünde bırakın.
Step motorun aşırı ısınması nasıl önlenir?
Aşırı ısınmayı önlemek için kullanılmadığında step motorlar her zaman devre dışı bırakılmalıdır. Bir step motorun devre dışı bırakılması çok basittir; step motoru kontrol eden dört GPIO pininin tümünün pin durumunu düşük olarak değiştirin. Bu çok önemlidir, aksi takdirde motorunuz + 12V'de çok ısınabilir ve kendisine kalıcı olarak zarar verebilir. Step motoru devre dışı bırakma programı aşağıda verilmiştir.
void disable_motor () // ısınmayı önlemek için bittiğinde motoru kapatın {digitalWrite (D1, LOW); digitalWrite (D2, DÜŞÜK); digitalWrite (D3, DÜŞÜK); digitalWrite (D4, DÜŞÜK); }
Google Asistan kullanarak Pencere Panjurlarını Kontrol Etme
Google asistan aracılığıyla panjurları kontrol etmek için blynk API'yi kullanacağız, Ses Kontrollü Ev otomasyonu projemize benzer olacak, bu yüzden ilgileniyorsanız kontrol edin. Temel olarak, Google Asistan'a önceden tanımlanmış bir cümle söylediğimizde aşağıdaki bağlantıyı tetiklemeliyiz.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Kimlik doğrulama belirtecini blynk uygulamanız tarafından sağlananla değiştirdiğinizden emin olun. Beklendiği gibi çalışıp çalışmadığını görmek için bu bağlantıyı krom tarayıcınızda bile test edebilirsiniz. Artık bağlantı hazır olduğuna göre, sadece IFTTT'ye geçmemiz ve panjurları kapatıp açmamızı istediğimizde sanal pin V1 ve V2'yi tetikleyebilecek iki uygulama oluşturmamız gerekiyor. Yine, bunun ayrıntılarına girmiyorum çünkü bunu birçok kez yaptık. Daha fazla yardıma ihtiyacınız varsa, bu Ses kontrollü FM radyo projesine bakın, adafruit servislerini webhook'larla değiştirin. Ayrıca referans için pasajımın bir ekran görüntüsünü paylaşıyorum.
Arduino tabanlı Otomatik Pencere Panjuru Kontrolü - Gösteri
Devre ve 3D baskılı muhafazalar hazır olduktan sonra, duvarda iki delik açarak cihazı duvara monte etmeniz yeterlidir. Montaj kurulumum aşağıdaki resimlerde gösterilmektedir.
Bundan sonra, panjurlarınızın açık durumda olduğundan emin olun ve ardından devreyi açın. Artık panjurları blynk uygulamasından veya Google Asistan üzerinden kapatmayı deneyebilirsiniz ve çalışmalıdır. Ayrıca blynk uygulamasında panjuru günün belirli bir saatinde otomatik olarak açıp kapatmak için zamanlayıcılar da ayarlayabilirsiniz.
Projenin tam çalışması aşağıdaki videoda bulunabilir; Herhangi bir sorunuz varsa, aşağıdaki yorum bölümüne yazmaktan çekinmeyin. Ayrıca, diğer teknik tartışmalar için forumlarımızı kullanabilirsiniz.