- Komponen yang Diperlukan untuk Membangun Tirai Otomatis Arduino
- Mengontrol Roller Blinds menggunakan Arduino
- Mendesain dan Membangun Window Blind Gear
- Mencetak 3D Motor Holder dan Blind Gear
- Diagram Sirkuit untuk Arduino Blinds Control
- Aplikasi Blynk untuk Arduino Blind Control
- Pemrograman NodeMCU untuk Mengontrol Tirai menggunakan Blynk
- Mengontrol Tirai Jendela menggunakan Asisten Google
- Kontrol Buta Jendela Otomatis berbasis Arduino - Demonstrasi
"Selamat pagi. Sekarang jam 7 pagi. Cuaca di Malibu 72 derajat… ”ini adalah kata-kata pertama JARVIS saat diperkenalkan di Marvel Cinematics Universe. Sebagian besar penggemar Iron Man seharusnya dapat mengingat kembali adegan ini dan ingat bahwa JARVIS dapat membuka jendela (sejenisnya) di pagi hari dan memberikan informasi terkini tentang waktu dan cuaca. Dalam film, kaca jendela sebenarnya terbuat dari Tampilan Sentuh Tembus Pandang dan karenanya JARVIS mampu mengubahnya dari hitam menjadi transparan dan juga menampilkan statistik cuaca di atasnya. Namun, pada kenyataannya, kita jauh dari layar sentuh tembus pandang, dan semakin dekat kita dapat mengontrol tirai jendela atau pembatas secara otomatis.
Jadi, dalam proyek ini, kami akan membangunnya persis seperti itu, kami akan membangun tirai bermotor otomatis yang akan membuka dan menutup secara otomatis pada waktu yang ditentukan sebelumnya. Sebelumnya, kami telah membangun banyak proyek otomasi rumah di mana kami mengotomatiskan lampu, motor, dll. Anda dapat memeriksanya jika tertarik. Jadi, kembali, tirai yang dikontrol Arduino ini juga dapat mengambil perintah dari asisten Google sehingga Anda dapat membuka atau menutup tirai jendela Anda dari jarak jauh melalui perintah suara. Penasaran? Kalau begitu, mari kita membuatnya.
Komponen yang Diperlukan untuk Membangun Tirai Otomatis Arduino
Proyek ini relatif sederhana dan tidak banyak komponen yang dibutuhkan. Kumpulkan saja item yang tercantum di bawah ini.
- NodeMCU
- Stepper Motor - 28BYJ-48
- Modul Pengemudi Motor Stepper
- LM117-3.3V
- Kapasitor (10uf, 1uf)
- Adaptor 12V DC
- Papan Perf
- Kit solder
- Printer 3D
Mengontrol Roller Blinds menggunakan Arduino
Sekarang ini ada banyak jenis Blind di pasaran, tapi yang paling umum digunakan adalah Blinds memiliki tali dengan beadings (seperti gambar dibawah) yang bisa ditarik untuk membuka atau menutup Blinds.
Saat kita menarik tali melingkar ini searah jarum jam, tirai jendela akan terbuka dan saat kita menarik tali ini berlawanan arah jarum jam, tirai jendela akan tertutup. Jadi, jika kita mengotomatiskan proses ini, yang harus kita lakukan adalah menggunakan motor untuk menarik tali ini searah jarum jam atau berlawanan arah jarum jam dan kita akan selesai dengannya. Sebenarnya, inilah yang akan kami lakukan dalam proyek ini; kita akan menggunakan motor stepper 28BYJ-48 bersama dengan NodeMCU untuk menarik tali manik-manik.
Mendesain dan Membangun Window Blind Gear
Bagian Elektronik dari proyek ini cukup sederhana dan lurus ke depan, bagian yang menantang adalah membangun Blind Gear yang dapat menarik tali manik. Jadi mari kita mulai artikel ini dengan desain roda gigi buta, saya tidak akan membahas secara rinci tentang cara mendesain roda gigi, tetapi ide dasar ini akan membantu Anda. Gambar tali dengan manik-manik di atasnya ditampilkan di bawah ini.
Sekali lagi, ada banyak jenis tali tetapi yang paling umum digunakan adalah jarak tengah ke tengah setiap manik adalah 6mm dan diameter setiap manik adalah 4mm. Dengan menggunakan informasi ini, kami dapat memulai desain perlengkapan kami. Jika tali pada kerai Anda memiliki dimensi yang sama seperti yang dibahas, Anda dapat melewati langkah ini dan mengunduh file STL yang disediakan dalam artikel ini dan mencetak roda gigi. Jika tali Anda memiliki susunan manik-manik yang berbeda, maka beginilah cara Anda mendesain ulang roda gigi buta.
Saya memutuskan untuk memiliki 24 manik-manik pada roda gigi saya untuk mendapatkan ukuran roda gigi yang optimal, Anda dapat memilih nomor apa pun yang mendekati ini untuk roda gigi Anda menjadi besar atau kecil. Jadi sekarang, kita tahu bahwa jarak antara setiap manik adalah 6mm dan kita membutuhkan 24 manik pada roda gigi kita. Mengalikan keduanya akan menghasilkan keliling roda gigi. Dengan data ini, Anda dapat menghitung radius roda gigi. Seperti yang Anda lihat pada gambar di atas, diameter roda gigi saya dihitung sekitar 46 mm. Tapi ingat, ini sebenarnya bukan diameter gir karena kita belum memperhitungkan diameter beadingnya yaitu 4mm. Jadi, diameter sebenarnya dari roda gigi adalah 42 mm, saya mencetak dan menguji banyak roda gigi sebelum saya menemukan roda gigi yang bekerja paling baik. Jika Anda tidak menyukai desain,cukup unduh dan cetak file STL dari paragraf berikutnya dan lanjutkan dengan proyek Anda.
Mencetak 3D Motor Holder dan Blind Gear
Bersamaan dengan roda gigi, kita juga membutuhkan selubung kecil yang dapat dibor ke dinding dan menahan motor stepper pada posisinya, selubung dan roda gigi yang digunakan dalam proyek ini ditunjukkan di bawah ini.
Anda dapat menemukan file desain lengkap dan file STL di halaman Arduino Blind Control Thingiverse yang diberikan di bawah ini. Anda tinggal mendownload dan mencetak blind gear dan motor case Anda.
Unduh file STL untuk Blind Gear dan Motor Case
Diagram Sirkuit untuk Arduino Blinds Control
Setelah Anda siap dengan roda gigi dan perakitan, mudah untuk melanjutkan ke bagian elektronik dan perangkat lunak. Diagram rangkaian lengkap untuk proyek kontrol IoT Blind ditunjukkan di bawah ini.
Kami telah menggunakan adaptor 12V untuk memberi daya pada seluruh pengaturan; regulator LM1117-3.3V mengubah 12V menjadi 3.3V yang dapat digunakan untuk menyalakan papan NodeMCU. Modul driver motor stepper diberi daya langsung dari adaptor 12V. Saya mencoba menjalankan motor stepper pada 5V, tetapi tidak memberikan torsi yang cukup untuk menarik kerai, jadi pastikan Anda juga menggunakan 12V.
Selain itu, rangkaiannya cukup sederhana, jika Anda baru mengenal motor stepper, lihat artikel dasar-dasar motor stepper untuk memahami cara kerjanya dan bagaimana ia dapat digunakan dengan mikrokontroler.
Aplikasi Blynk untuk Arduino Blind Control
Sebelum kita masuk ke program Arduino untuk Mengontrol Tirai, mari buka aplikasi blynk dan buat beberapa tombol yang dapat digunakan untuk membuka atau menutup tirai kita. Kami juga akan membutuhkan ini nanti untuk mengontrol dari beranda Google.
Saya baru saja menambahkan dua tombol untuk membuka dan menutup tirai dan satu timer untuk membuka tirai pada pukul 10:00 setiap hari. Anda dapat menambahkan beberapa pengatur waktu untuk membuka atau menutup tirai pada interval yang berbeda hari itu. Pada dasarnya, ketika kita harus menutup tirai, kita harus memicu pin virtual V1 dan ketika kita harus membuka tirai, kita harus memicu pin virtual V2. Program untuk mengontrol motor stepper berdasarkan tombol yang ditekan di sini akan tertulis di Arduino IDE, hal yang sama dibahas di bawah ini.
Pemrograman NodeMCU untuk Mengontrol Tirai menggunakan Blynk
Kode ESP8266 lengkap untuk Proyek Kontrol Buta ini dapat ditemukan di bagian bawah halaman ini. Program kita harus menunggu perintah dari aplikasi blynk dan berdasarkan perintah itu, kita harus memutar motor stepper searah jarum jam atau berlawanan arah jarum jam. Segmen penting dari kode dibahas di bawah ini.
Menurut diagram sirkuit kami, kami telah menggunakan pin digital 1, 2, 3, dan 4 pada nodemcu untuk mengontrol motor stepper kami. Jadi, kita harus membuat instance bernama stepper menggunakan pin ini seperti yang ditunjukkan di bawah ini. Perhatikan bahwa kita telah mendefinisikan pin dalam urutan 1, 3, 2, dan 4. Itu dilakukan dengan sengaja dan bukan kesalahan; kita harus menukar pin 2 dan 3 agar motor dapat bekerja dengan baik.
// buat instance dari kelas stepper menggunakan langkah dan pin Stepper stepper (LANGKAH, D1, D3, D2, D4);
Pada langkah berikutnya, kami harus membagikan token otentikasi aplikasi blynk kami dan kredensial Wi-Fi tempat pengontrol IoT Blind kami harus terhubung. Jika Anda tidak yakin bagaimana cara mendapatkan token autentikasi Blynk ini, lihat proyek Blynk LED Control untuk memahami dasar-dasar aplikasi blynk dan cara menggunakannya.
// Anda harus mendapatkan Token Auth di Aplikasi Blynk. // Buka Pengaturan Proyek (ikon mur). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Kredensial WiFi Anda. // Setel sandi menjadi "" untuk jaringan terbuka. char ssid = "CircuitDigest"; char pass = "dummy123";
Pindah dengan kode kami, setelah fungsi pengaturan, kami telah mendefinisikan dua metode untuk blynk. Seperti yang disebutkan sebelumnya, kita harus menentukan pin virtual apa yang harus dilakukan V1 dan V2. Kode untuk hal yang sama diberikan di bawah ini.
BLYNK_WRITE (V1) // TUTUP BLINDS {Serial.println ("Closing Blinds"); if (dibuka == true) {untuk (int c_val = 0; c_val <= 130; c_val ++) // putar berlawanan arah jarum jam untuk menutup {stepper.step (c_val); menghasilkan(); } ditutup = benar; dibuka = salah; disable_motor (); // selalu motor stepper yang diinginkan setelah digunakan untuk mengurangi konsumsi daya dan pemanasan}} BLYNK_WRITE (V2) // BUKA BLINDS {Serial.println ("Opening Blinds"); if (closed == true) {untuk (int cc_val = 0; cc_val> = -130; cc_val--) // putar searah jarum jam untuk membuka {stepper.step (cc_val); menghasilkan(); } dibuka = benar; ditutup = salah; } disable_motor (); // selalu motor stepper yang diinginkan setelah digunakan untuk mengurangi konsumsi daya dan pemanasan}
Seperti yang Anda lihat, V1 digunakan untuk menutup tirai dan V2 digunakan untuk membuka tirai. A for loop digunakan untuk memutar motor searah jarum jam atau berlawanan arah jarum jam untuk 130 langkah. Saya bereksperimen dengan tirai saya untuk menemukan bahwa dengan 130 langkah, saya dapat membuka dan menutup tirai sepenuhnya. Nomor Anda mungkin berbeda. The untuk loop ke motor stepper rotate dalam searah jarum jam dan berlawanan arah jarum jam arah ditampilkan di bawah.
untuk (int c_val = 0; c_val <= 130; c_val ++) // putar berlawanan arah jarum jam untuk menutup {stepper.step (c_val); menghasilkan(); } untuk (int cc_val = 0; cc_val> = -130; cc_val--) // putar searah jarum jam untuk membuka {stepper.step (cc_val); menghasilkan(); }
Anda juga dapat melihat dua variabel Boolean “dibuka” dan “ditutup” dalam program kami. Kedua variabel ini digunakan untuk mencegah motor membuka atau menutup tirai dua kali. Artinya, tirai lipat hanya akan terbuka jika sebelumnya sudah ditutup dan akan menutup hanya jika sudah dibuka sebelumnya.
Bagaimana cara meningkatkan kecepatan motor 28BJY-48 Stepper?
Salah satu kelemahan menggunakan motor stepper 28BJY-48 adalah sangat lambat. Motor ini awalnya diproduksi untuk digunakan dalam aplikasi kecepatan rendah dengan presisi tinggi, jadi jangan berharap motor ini berputar dengan kecepatan tinggi. Jika Anda ingin meningkatkan kecepatan motor stepper dengan menggunakan Arduino, ada dua parameter yang bisa Anda ubah. Salah satunya adalah #tentukan LANGKAH 64, saya menemukan bahwa saat langkah ditetapkan sebagai 64, motor secara komparatif lebih cepat. Parameter lainnya adalah stepper.setSpeed (500); sekali lagi saya menemukan 500 untuk menjadi nilai optimal, lebih dari itu sebenarnya membuat motor stepper lebih lambat.
Apakah Anda tahu cara lain untuk meningkatkan kecepatan motor ini? Jika ya, tinggalkan di bagian komentar di bawah.
Bagaimana cara mencegah motor stepper dari panas berlebih?
Motor stepper harus selalu dinonaktifkan saat tidak digunakan untuk mencegah panas berlebih. Menonaktifkan motor stepper sangat sederhana; cukup ubah status pin dari keempat pin GPIO yang mengendalikan motor stepper menjadi rendah. Ini sangat penting, kalau tidak motor Anda bisa menjadi sangat panas pada + 12V dan merusak dirinya sendiri secara permanen. Program untuk menonaktifkan motor stepper diberikan di bawah ini.
void disable_motor () // matikan motor setelah selesai untuk menghindari pemanasan {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Mengontrol Tirai Jendela menggunakan Asisten Google
Kami akan menggunakan blynk API untuk mengontrol tirai melalui asisten Google, ini akan mirip dengan proyek otomatisasi Rumah Terkontrol Suara kami, jadi periksa jika tertarik. Pada dasarnya, kami harus memicu tautan di bawah ini ketika kami mengucapkan frasa yang telah ditentukan sebelumnya kepada Asisten Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Pastikan Anda mengubah token otentikasi ke yang disediakan oleh aplikasi blynk Anda. Anda bahkan dapat menguji tautan ini di browser chrome Anda untuk melihat apakah itu berfungsi seperti yang diharapkan. Sekarang tautannya sudah siap, kita cukup menuju ke IFTTT dan membuat dua applet yang dapat memicu pin virtual V1 dan V2 ketika kita meminta untuk menutup dan membuka tirai. Sekali lagi, saya tidak membahas detailnya karena kami telah melakukan ini berkali-kali. Jika Anda membutuhkan bantuan lebih lanjut, lihat proyek radio FM yang dikendalikan Suara ini, cukup ganti layanan adafruit dengan webhook. Saya juga membagikan tangkapan layar dari cuplikan saya untuk referensi.
Kontrol Buta Jendela Otomatis berbasis Arduino - Demonstrasi
Setelah sirkuit dan penutup cetakan 3D siap, pasang saja perangkat di dinding dengan mengebor dua lubang di dinding. Pengaturan pemasangan saya ditunjukkan pada gambar di bawah ini.
Setelah itu pastikan blinds anda dalam kondisi terbuka lalu hidupkan rangkaiannya. Sekarang, Anda dapat mencoba menutup tirai dari aplikasi blynk atau melalui Asisten Google dan itu akan berfungsi. Anda juga dapat mengatur timer pada aplikasi blynk untuk secara otomatis membuka dan menutup tirai pada waktu tertentu dalam sehari.
Pekerjaan lengkap proyek dapat ditemukan dalam video yang diberikan di bawah ini; jika Anda memiliki pertanyaan, silakan tulis di bagian komentar di bawah. Anda juga dapat menggunakan forum kami untuk diskusi teknis lainnya.