- Komponen yang Diperlukan untuk Membangun Tirai Automatik Arduino
- Mengawal Roller Blinds menggunakan Arduino
- Reka dan Bina Gear Blind Window
- 3D Mencetak Pemegang Motor dan Blind Gear
- Diagram Litar untuk Kawalan Tirai Arduino
- Permohonan Blynk untuk Arduino Blind Control
- Pengaturcaraan NodeMCU untuk Mengawal Tirai menggunakan Blynk
- Mengawal Tirai Tingkap menggunakan Pembantu Google
- Kawalan Blind Tingkap Automatik berasaskan Arduino - Demonstrasi
"Selamat Pagi. Jam 7 pagi Cuaca di Malibu ialah 72 darjah… ”ini adalah kata-kata pertama JARVIS ketika diperkenalkan di Marvel Cinematics Universe. Sebilangan besar peminat Iron Man seharusnya dapat mengingat kembali pemandangan ini dan ingat bahawa JARVIS dapat membuka tingkap (jenis) pada waktu pagi dan memberi maklumat mengenai waktu dan cuaca. Dalam filem itu, tingkap Glasses sebenarnya terbuat dari Paparan Sentuh Lihat-Melalui dan oleh itu JARVIS dapat menjadikannya berubah dari hitam menjadi transparan dan juga memaparkan statistik cuaca di atasnya. Tetapi, pada hakikatnya, kita jauh dari layar sentuh Lihat-melalui, dan semakin dekat dengan kita dapat mengawal tirai tingkap atau kekangan secara automatik.
Oleh itu, dalam projek ini, kita akan membina dengan tepat, kita akan membina tirai bermotor automatik yang akan dibuka dan ditutup secara automatik pada masa yang telah ditentukan. Sebelumnya, kami telah membina banyak projek automasi rumah di mana kami mengautomasikan lampu, motor, dan lain-lain. Anda boleh memeriksanya jika anda berminat. Oleh itu, kembali, tirai yang dikendalikan Arduino ini juga dapat mengambil perintah dari pembantu Google sehingga anda dapat membuka atau menutup tirai tetingkap anda dari jauh melalui perintah suara. Menarik? Kemudian, mari kita bina.
Komponen yang Diperlukan untuk Membangun Tirai Automatik Arduino
Projek ini agak mudah dan tidak memerlukan banyak komponen. Kumpulkan barang-barang yang tertera di bawah.
- NodeMCU
- Motor Stepper - 28BYJ-48
- Modul Pemandu Motor Stepper
- LM117-3.3V
- Kapasitor (10uf, 1uf)
- Penyesuai DC 12V
- Lembaga Perf
- Kit pematerian
- Pencetak 3D
Mengawal Roller Blinds menggunakan Arduino
Sekarang terdapat banyak jenis Tirai di pasar, tetapi yang paling umum digunakan memiliki tali dengan manik (seperti gambar di bawah) yang dapat ditarik untuk membuka atau menutup tirai.
Apabila kita menarik tali bulat ini mengikut arah pusingan jam, tirai tingkap akan terbuka dan ketika kita menarik tali ini ke arah berlawanan arah jam, penutup tingkap akan ditutup. Oleh itu, jika kita mengautomasikan proses ini, yang harus kita lakukan hanyalah menggunakan motor untuk menarik tali ini mengikut arah jam atau lawan arah jam dan kita akan selesai dengannya. Sebenarnya, inilah yang akan kita lakukan dalam projek ini; kita akan menggunakan motor stepper 28BYJ-48 bersama dengan NodeMCU untuk menarik tali manik.
Reka dan Bina Gear Blind Window
Bahagian Elektronik projek ini agak sederhana dan lurus ke hadapan, bahagian yang mencabar adalah membina Blind Gear yang dapat menarik tali manik. Oleh itu, mari mulakan artikel ini dengan reka bentuk gear buta, saya tidak akan memperincikan cara merancang gear, tetapi idea asas ini pasti dapat membantu anda. Gambar tali dengan manik di atasnya ditunjukkan di bawah.
Sekali lagi, terdapat banyak jenis tali tetapi tali yang paling biasa digunakan adalah jarak dari pusat ke pusat setiap manik adalah 6mm dan diameter setiap manik adalah 4mm. Dengan menggunakan maklumat ini, kita dapat memulakan reka bentuk gear kita. Sekiranya tali pada tirai anda mempunyai dimensi yang sama seperti yang dibincangkan, anda boleh melangkau langkah ini dan memuat turun fail STL yang disediakan dalam artikel ini dan mencetak roda gigi. Sekiranya tali anda mempunyai susunan manik yang berbeza, maka inilah cara anda harus merancang semula gear buta.
Saya memutuskan untuk memiliki 24 manik pada gear saya untuk mendapatkan ukuran roda gigi yang optimum, anda boleh memilih nombor yang hampir sama dengan roda gigi anda agar besar atau kecil. Jadi sekarang, kita tahu bahawa jarak antara setiap manik adalah 6mm dan kita memerlukan 24 manik pada gear kita. Mengalikan kedua-duanya akan memberikan lilitan roda gear. Dengan data ini, anda dapat mengira jejari roda gigi. Seperti yang anda lihat pada gambar di atas, diameter roda gigi saya dikira sekitar 46 mm. Tetapi ingat, ini bukan diameter gear yang sebenarnya kerana kita tidak memperhitungkan diameter manik yang 4mm. Jadi, diameter roda roda sebenarnya ialah 42 mm, saya mencetak dan menguji banyak roda gigi sebelum saya menjumpai roda yang paling sesuai. Sekiranya anda tidak berminat dengan reka bentuk,muat turun dan cetak fail STL dari perenggan seterusnya dan teruskan projek anda.
3D Mencetak Pemegang Motor dan Blind Gear
Bersama dengan roda gigi, kita juga memerlukan casing kecil yang dapat digerudi ke dinding dan menahan motor stepper dalam kedudukan, kedua-dua casing dan gear yang digunakan dalam projek ini ditunjukkan di bawah.
Anda boleh mendapatkan fail reka bentuk lengkap dan fail STL di halaman Arduino Blind Control Thingiverse yang diberikan di bawah. Anda hanya boleh memuat turun dan mencetak kotak gear dan motor buta anda.
Muat turun fail STL untuk Blind Gear dan Motor Case
Diagram Litar untuk Kawalan Tirai Arduino
Setelah anda siap dengan gear dan pemasangan, mudah untuk meneruskan bahagian elektronik dan perisian. Gambarajah litar lengkap untuk projek kawalan IoT Blind ditunjukkan di bawah.
Kami telah menggunakan penyesuai 12V untuk menghidupkan keseluruhan persediaan; pengatur LM1117-3.3V menukar 12V ke 3.3V yang boleh digunakan untuk memberi kuasa pada papan NodeMCU. Modul pemacu motor stepper digerakkan secara langsung dari penyesuai 12V. Saya memang mencuba menjalankan motor stepper pada 5V, tetapi ketika itu tidak memberikan tork yang cukup untuk menarik tirai, jadi pastikan anda juga menggunakan 12V.
Selain itu, litarnya cukup mudah, jika anda baru menggunakan motor stepper, lihatlah asas artikel motor stepper untuk memahami cara kerjanya dan bagaimana ia dapat digunakan dengan mikrokontroler.
Permohonan Blynk untuk Arduino Blind Control
Sebelum kita masuk ke program Arduino untuk Mengendalikan Tirai, mari buka aplikasi blynk dan buat beberapa butang menggunakan yang boleh kita buka atau tutup tirai kita. Kami juga memerlukannya kemudian untuk mengawal dari rumah Google.
Saya baru sahaja menambah dua butang untuk membuka dan menutup tirai dan satu masa untuk membuka tirai pada pukul 10:00 pagi setiap hari. Anda boleh menambah berbilang pemasa untuk membuka atau menutup tirai pada selang waktu yang berbeza. Pada asasnya, apabila kita harus menutup tirai, kita harus mencetuskan pin maya V1 dan apabila kita harus membuka tirai, kita harus mencetuskan pin maya V2. Program untuk mengawal motor stepper berdasarkan butang yang ditekan di sini akan ditulis di Arduino IDE, perkara yang sama dibincangkan di bawah.
Pengaturcaraan NodeMCU untuk Mengawal Tirai menggunakan Blynk
Kod ESP8266 lengkap untuk Projek Kawalan Buta ini terdapat di bahagian bawah halaman ini. Program kita harus menunggu arahan dari aplikasi blynk dan berdasarkan perintah itu, kita harus memutar motor stepper sama ada mengikut arah jam atau arah lawan jam. Segmen penting kod dibincangkan di bawah.
Menurut rajah litar kami, kami telah menggunakan pin digital 1, 2, 3, dan 4 pada nodemcu untuk mengawal motor stepper kami. Oleh itu, kita harus membuat contoh yang disebut stepper menggunakan pin seperti yang ditunjukkan di bawah. Perhatikan bahawa kita telah menentukan pin dalam urutan 1, 3, 2, dan 4. Itu dilakukan dengan sengaja dan bukan satu kesalahan; kita harus menukar pin 2 dan 3 agar motor berfungsi dengan baik.
// buat contoh kelas stepper menggunakan stepper dan pin Stepper stepper (LANGKAH, D1, D3, D2, D4);
Pada langkah seterusnya, kita harus berkongsi token pengesahan aplikasi blynk dan kelayakan Wi-Fi yang harus dihubungkan oleh pengawal IoT Blind kita. Sekiranya anda tidak pasti cara mendapatkan token autentikasi Blynk ini, rujuk projek Kawalan LED Blynk untuk memahami asas aplikasi blynk dan cara menggunakannya.
// Anda harus mendapatkan Auth Token dalam Aplikasi Blynk. // Pergi ke Tetapan Projek (ikon kacang). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Kelayakan WiFi anda. // Tetapkan kata laluan ke "" untuk rangkaian terbuka. char ssid = "CircuitDigest"; char pass = "dummy123";
Melanjutkan kod kami, setelah fungsi persediaan, kami telah menentukan dua kaedah untuk blynk. Seperti yang telah disebutkan sebelumnya, kita harus menentukan apa yang harus dilakukan pin maya V1 dan V2. Kod untuk yang sama diberikan di bawah.
BLYNK_WRITE (V1) // TUTUP LANGSUNG {Serial.println ("Clinding Blinds"); jika (dibuka == benar) {untuk (int c_val = 0; c_val <= 130; c_val ++) // putar dalam Counter-Clockwise untuk menutup {stepper.step (c_val); hasil (); } ditutup = benar; dibuka = palsu; lumpuhkan_motor (); // motor stepper yang selalu digemari selepas digunakan untuk mengurangkan penggunaan dan pemanasan kuasa}} BLYNK_WRITE (V2) // BUKA BLINDS {Serial.println ("Opening Blinds"); if (tertutup == benar) {untuk (int cc_val = 0; cc_val> = -130; cc_val--) // putar mengikut arah Jam untuk membuka {stepper.step (cc_val); hasil (); } dibuka = benar; ditutup = palsu; } lumpuhkan_motor (); // motor stepper yang selalu digemari selepas digunakan untuk mengurangkan penggunaan tenaga dan pemanasan}
Seperti yang anda lihat V1 digunakan untuk menutup tirai dan V2 digunakan untuk membuka tirai. A untuk gelung digunakan untuk memutar motor mengikut arah jam atau lawan arah jam selama 130 langkah. Saya bereksperimen dengan tirai saya untuk mengetahui bahawa dengan 130 langkah, saya dapat membuka dan menutup tirai sepenuhnya. Nombor anda mungkin berbeza. Yang untuk gelung untuk motor stepper putar mengikut arah jam dan lawan jam ditunjukkan di bawah.
untuk (int c_val = 0; c_val <= 130; c_val ++) // putar dalam Counter-Clockwise untuk menutup {stepper.step (c_val); hasil (); } untuk (int cc_val = 0; cc_val> = -130; cc_val--) // putar mengikut arah Jam untuk membuka {stepper.step (cc_val); hasil (); }
Anda juga dapat melihat dua pemboleh ubah Boolean "dibuka" dan "tertutup" dalam program kami. Kedua pemboleh ubah ini digunakan untuk mengelakkan motor membuka atau menutup tirai dua kali. Maksudnya, tirai akan terbuka hanya apabila ia ditutup sebelumnya dan hanya akan ditutup apabila ia dibuka sebelumnya.
Bagaimana untuk meningkatkan kelajuan motor Stepper 28BJY-48?
Satu kelemahan menggunakan motor stepper 28BJY-48 adalah ia sangat perlahan. Motor ini pada asalnya dibuat untuk digunakan dalam aplikasi berkelajuan rendah berketepatan tinggi, jadi jangan berharap motor ini berputar pada kelajuan tinggi. Sekiranya anda ingin meningkatkan kelajuan motor stepper menggunakan Arduino, ada dua parameter yang boleh anda ubah. Salah satunya adalah #define STEPS 64, saya dapati bahawa apabila langkah-langkah ditakrifkan sebagai 64, motornya lebih pantas. Parameter lain ialah stepper.setSpeed (500); sekali lagi saya dapati 500 sebagai nilai optimum, lebih dari itu menjadikan motor stepper lebih perlahan.
Adakah anda tahu cara lain untuk meningkatkan kelajuan motor ini? Sekiranya ya, tinggalkan mereka di bahagian komen di bawah.
Bagaimana untuk mengelakkan motor stepper terlalu panas?
Motor stepper harus selalu dimatikan apabila tidak digunakan untuk mengelakkan terlalu panas. Melumpuhkan motor stepper sangat mudah; ubah status pin keempat-empat pin GPIO yang mengawal motor stepper ke rendah. Ini sangat penting, jika tidak, motor anda mungkin menjadi sangat panas pada suhu + 12V dan merosakkannya secara kekal. Program untuk mematikan motor stepper diberikan di bawah.
void disable_motor () // matikan motor apabila dilakukan untuk mengelakkan pemanasan {digitalWrite (D1, LOW); digitalWrite (D2, RENDAH); digitalWrite (D3, RENDAH); digitalWrite (D4, RENDAH); }
Mengawal Tirai Tingkap menggunakan Pembantu Google
Kami akan menggunakan API blynk untuk mengawal tirai melalui pembantu Google, ia akan serupa dengan projek automasi Rumah Terkawal Suara kami, jadi pastikan jika berminat Pada asasnya, kita harus mencetuskan pautan di bawah apabila kita menyebut frasa yang telah ditentukan kepada Pembantu Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Pastikan anda menukar token pengesahan menjadi yang diberikan oleh aplikasi blynk anda. Anda bahkan boleh menguji pautan ini pada penyemak imbas krom anda untuk melihat apakah ia berfungsi seperti yang diharapkan. Sekarang pautan sudah siap, kita hanya perlu pergi ke IFTTT dan membuat dua applet yang dapat mencetuskan pin maya V1 dan V2 ketika kita meminta untuk menutup dan membuka tirai. Sekali lagi, saya tidak membincangkan perkara ini kerana kami telah melakukannya berulang kali. Sekiranya anda memerlukan lebih banyak pertolongan, rujuk projek radio FM yang dikendalikan oleh Suara ini, ganti perkhidmatan adafruit dengan webhooks. Saya juga berkongsi tangkapan skrin coretan saya untuk rujukan.
Kawalan Blind Tingkap Automatik berasaskan Arduino - Demonstrasi
Setelah litar dan penutup bercetak 3D siap, pasangkan peranti di dinding dengan menggerudi dua lubang di dinding. Persediaan pemasangan saya ditunjukkan dalam gambar di bawah.
Selepas itu, pastikan tirai anda dalam keadaan terbuka dan kemudian hidupkan litar. Sekarang, anda boleh cuba menutup tirai dari aplikasi blynk atau melalui Google Assistant dan semestinya berfungsi. Anda juga boleh menetapkan pemasa pada aplikasi blynk untuk membuka dan menutup tirai secara automatik pada waktu tertentu dalam sehari.
Penyelesaian projek yang lengkap dapat dilihat dalam video yang diberikan di bawah; jika anda mempunyai sebarang pertanyaan, sila tuliskannya di bahagian komen di bawah. Anda juga boleh menggunakan forum kami untuk perbincangan teknikal yang lain.