- Diagram Sirkuit untuk Otomatisasi Rumah yang dikontrol Asisten Google
- Menyiapkan Aplikasi Blynk
- Menyiapkan IFTTT dengan Asisten Google dan Blynk untuk Membaca String
- Pemrograman Arduino untuk Blynk Home Automation
- Fabrikasi PCB menggunakan PCBGoGo
- Merakit PCB
- Menghubungkan Papan dengan Unit Daya AC / Papan Ekstensi
Dengan kemajuan dalam asisten virtual seperti Google Assistant dan Alexa, otomatisasi Rumah dan aplikasi yang dikendalikan Suara menjadi normal. Sekarang, kami sendiri telah membangun banyak proyek otomatisasi rumah, dari Lampu Tangga Otomatis sederhana hingga Otomatisasi Rumah yang dikontrol web berbasis IoT menggunakan Raspberry Pi. Tetapi proyek ini berbeda, idenya di sini adalah untuk membuat papan otomatisasi Rumah praktis yang dapat dimasukkan ke unit daya AC di dinding kita dan tetap tersembunyi di dalamnya. Papan tidak boleh mengganggu kerja normal sakelar unit daya kami, yaitu sakelar ON atau OFF dengan sakelar manual juga. Dan tanpa dikatakan, itu juga harus dapat mengontrol beban yang sama dengan suara menggunakan asisten google dan juga mengatur pengatur waktu sehingga beban apa pun dapat secara otomatis AKTIF atau MATI selama waktu yang telah ditentukan pada hari itu.
Proyek ini sangat mirip dengan colokan Wi-Fi Cerdas ESP8266 kami tetapi di sini karena kami akan menggunakan ESP12, kami akan memiliki lebih banyak pin GPIO yang memungkinkan kami untuk mengontrol empat beban AC secara bersamaan. Selain itu, karena kami telah mengintegrasikan Blynk dan Asisten Google, proyek ini menjadi menarik dan praktis untuk digunakan. Untuk proyek ini kami telah membangun papan sirkuit menggunakan layanan pembuatan PCBGOGO PCB. Di bagian selanjutnya dari artikel kami telah menyediakan file Gerber yang dirancang untuk sirkuit dan juga menjelaskan prosedur lengkap untuk memesan PCB dari PCBGOGO.
Peringatan: Proyek ini melibatkan pengerjaan dengan tegangan listrik AC. Berhati-hatilah saat bekerja dengan tegangan AC tinggi. Pastikan Anda diawasi oleh orang yang berpengalaman jika Anda baru.
Diagram Sirkuit untuk Otomatisasi Rumah yang dikontrol Asisten Google
Diagram sirkuit lengkap untuk otomatisasi rumah dapat ditemukan di bawah.
Seperti yang Anda lihat, rangkaiannya sangat sederhana, mari kita mulai penjelasan dari Modul Wi-Fi ESP12E. Anda juga dapat melihat video di bawah ini untuk penjelasan proyek secara mendetail. Modul ini dapat diprogram seperti papan pengembangan nodeMCU dan mengurangi banyak ruang. Secara default, saat dihidupkan, ESP12E akan memasuki mode operasi. Untuk memprogramnya, kita harus menggunakan tombol Reset dan Flash. Itu untuk meletakkan ESP12 dalam mode pemrograman, tekan dan tahan tombol Reset dan Flash, lalu lepaskan tombol reset. Ini akan mem-boot ESP12E dengan tombol flash ditekan, sekarang lepaskan tombol flash dan ESP12E akan masuk ke mode pemrograman. Setelah pemrograman, Anda harus menekan tombol reset lagi untuk mem-boot ESP12E dalam mode operasi normal untuk menjalankan Program yang diunggah. Pin pemrograman Rx, Rx,dan Ground diperpanjang agar dapat terhubung dengan papan FTDI atau konverter USB ke TTL. Pastikan untuk menghubungkan pin Tx ESP12 ke pin Rx Programmer dan sebaliknya.
Pin flag lainnya I1 ke I4 dan R1 ke R4 digunakan untuk menghubungkan Sakelar dan Relai. Pin I1 hingga I4 adalah singkatan dari pin Input. Semua pin ini mendukung resistor pull-up internal sehingga kita hanya perlu menghubungkan sakelar pada kotak ekstensi ke pin Input kami melalui resistor pull-down seperti yang ditunjukkan di bawah ini.
Demikian pula dengan pin keluaran Relai R1 sampai R4 digunakan untuk mengontrol Relai. Kami telah menggunakan rangkaian driver relai standar dengan Dioda BC547 dan IN4007 seperti yang ditunjukkan di bawah ini. Perhatikan bahwa relai harus dipicu dengan 5V tetapi pin keluaran ESP12E hanya 3,3V. Jadi, wajib menggunakan transistor untuk menggerakkan relai. Kami juga telah menempatkan LED di jalur basis transistor sehingga setiap kali transistor dipicu, LED juga akan menyala.
Akhirnya, untuk menyalakan semua sirkuit kami, kami telah menggunakan konverter AC-DC Hi-Link untuk mengubah AC 220V kami menjadi DC 5V. DC 5V ini kemudian diubah menjadi 3,3V menggunakan regulator tegangan AMS117-3,3V. 5V digunakan untuk memicu Relai dan 3.3V digunakan untuk memberi daya pada Modul Wi-Fi ESP21.
Menyiapkan Aplikasi Blynk
Kami sebelumnya telah membangun banyak proyek Blynk seperti Robot Arduino Terkendali Wi-Fi, jadi kami tidak akan membahas detail pengaturan aplikasi blynk. Tetapi sederhananya, cukup instal aplikasi, buat proyek baru untuk NodeMCU dan mulailah menempatkan widget Anda seperti yang ditunjukkan di bawah ini.
Saya telah menggunakan pin virtual V1 ke V4 untuk mengontrol relai 1 hingga 4 pada proyek kami. Pastikan untuk mengubah jenis tombol untuk beralih. Opsi pengatur waktu juga dapat digunakan untuk memicu pin virtual secara otomatis untuk waktu yang ditentukan, bahkan jika telepon dimatikan. Saya telah menggunakan pengatur waktu hanya untuk pin virtual V1 di sini, misalnya, tetapi Anda dapat menggunakannya untuk keempat pin jika diperlukan.
Pastikan untuk mendapatkan nilai token autentikasi blynk dari halaman proyek Anda. Cukup klik pada ikon mur (dilingkari merah pada gambar di atas) dan salin token auth menggunakan opsi salin semua dan tempelkan di tempat yang aman, yang kita perlukan saat memprogram papan Arduino.
Menyiapkan IFTTT dengan Asisten Google dan Blynk untuk Membaca String
Cara termudah untuk menggunakan Asisten Google untuk otomatisasi rumah adalah dengan menggunakan IFTTT. Kami juga telah membangun banyak proyek IFTTT sebelumnya dengan NodeMCU dan Raspberry Pi. Dalam proyek ini, kami akan menggunakan aplikasi Blynk untuk memicu webhook menggunakan asisten Google. Ini sangat mirip dengan otomatisasi rumah yang dikendalikan suara dan proyek radio FM yang dikendalikan suara. Kecuali, di sini kita akan menggunakan blynk dengan IFTTT untuk mengirim string yang membuatnya lebih mudah dan menarik.
Pada dasarnya, kami akan menggunakan pin virtual V5 dan V6 di blynk untuk mengirim perintah pemicu. V5 akan digunakan untuk perintah turn-on dan V6 akan digunakan untuk perintah mematikan. Misalnya jika kita mengatakan menyalakan TV dan Lampu. Perintah string di sini "TV dan Lampu" akan dikirim ke NodeMCU menggunakan API. Sintaks API adalah seperti di bawah ini.
http://188.166.206.43//update/V5?value=TV dan Lamp
Sekarang yang harus kita lakukan di IFTTT adalah menggunakan asisten google sebagai IF dan webhook sebagai ITU jadi dengarkan perintah ini dan kirim informasi ke NodeMCU menggunakan API yang disebutkan di atas. Bentuk applet turn-on yang sama ditunjukkan di bawah ini.
Perhatikan bahwa Anda harus memilih ucapkan frase dengan opsi bahan teks saat membuat resep untuk Asisten Google. Demikian pula, Anda harus mengulangi hal yang sama untuk pin virtual V6 untuk mematikan relai. Anda dapat memeriksa video di bagian bawah halaman ini untuk informasi rinci.
Pemrograman Arduino untuk Blynk Home Automation
Kode Arduino lengkap untuk proyek ini dapat ditemukan di bagian bawah halaman ini. Penjelasannya adalah sebagai berikut. Sebelum itu pastikan Anda bisa menggunakan Blynk dan Program NodeMCU dari Arduino IDE. Jika tidak, ikuti artikel memulai ESP12. Juga, tambahkan pustaka blynk ke Arduino IDE menggunakan pengelola papan.
Seperti biasa, kami memulai kode kami dengan menentukan pin input dan output, di sini input akan dari sakelar dan output akan dari relai. Kami telah menetapkan nama pin untuk keempat sakelar sebagai sw dan relai sebagai rel seperti yang Anda lihat di bawah.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Pada tahap selanjutnya, Anda harus memasukkan beberapa kredensial seperti blynk auth token dan nama pengguna serta kata sandi untuk router Wi-Fi yang harus dihubungkan dengan nodeMCU Anda. Token autentikasi blink dapat diperoleh dari aplikasi blynk. Kami akan mempelajari lebih lanjut tentang itu di bagian menyiapkan aplikasi blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // dapatkan dari blynk application char ssid = "home_wifi"; char pass = "fakepass123";
Selanjutnya, kami telah memberikan definisi untuk fungsi yang disebut read_switch_toggle () . Dalam fungsi ini, kami akan membandingkan status saat ini dan status sebelumnya dari sakelar kami. Jika sakelar telah dihidupkan atau dimatikan yaitu Jika sakelar telah dimatikan. Akan ada perubahan status sakelar, fungsi akan memantau perubahan ini dan mengembalikan nomor sakelar. Jika tidak ada perubahan yang terdeteksi, itu akan mengembalikan 0.
int read_switch_toggle () {int result = 0; // Catat semua nilai sebelumnya untuk (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Baca status sakelar saat ini crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // bandingkan status saat ini dan pvs untuk (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // jika ada saklar yang toggled kita mendapatkan nomor saklar sebagai hasil pengembalian; } hasil lain = 0; // jika tidak ada hasil perubahan 0} hasil pengembalian; // kembalikan resul}
Selanjutnya, kami memiliki kode untuk aplikasi blynk. Kami akan menggunakan pin virtual V1 ke V6 untuk mengontrol kotak persimpangan pintar kami. Pin V1 ke V4 akan digunakan untuk mengontrol relai 1 hingga 4 secara langsung dari aplikasi blynk. Kode di bawah ini menunjukkan apa yang terjadi ketika V1 dipicu dari aplikasi blynk. Kami cukup membaca status (TINGGI atau RENDAH) dan mengontrol relai yang sesuai.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Demikian pula, pin virtual juga dapat digunakan untuk membaca string dari aplikasi blynk. Kita akan belajar cara mengirim string dari asisten google ke NodeMCU menggunakan IFTTT dan asisten Google nanti, tetapi untuk saat ini, mari kita lihat bagaimana kode NodeMCU membaca string ini dan mencari kata kunci tertentu dan memicu relai yang sesuai.
Pada kode di bawah ini, Anda dapat melihat bahwa ketika pin virtual V5 dipicu, kita mendapatkan string yang diteruskannya ke dalam variabel string yang disebut ON_message . Kemudian menggunakan variabel string dan metode inderOf ini, kami mencari jika ada kata kunci seperti "lampu", "LED", "musik", "TV", jika ya, kami mengaktifkan beban tersebut. Jika kata kunci "semuanya" terdeteksi, kami mengaktifkan semuanya. Hal yang sama juga dapat dilakukan untuk V6 untuk mematikan relai. Kami akan memahami lebih banyak tentang ini saat masuk ke bagian IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lamp")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("everything")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Terakhir, di dalam fungsi loop, kita hanya perlu memeriksa apakah ada tombol yang posisi sakelar telah berubah. Jika ya, maka kami menggunakan sakelar sakelar seperti yang ditunjukkan di bawah ini untuk mengalihkan posisi relai tertentu.
switch (toggle_pin) {case 0: break; case 1: Serial.println ("Toggling Relay 1"); digitalWrite (rel1, relay_state); istirahat; kasus 2: Serial.println ("Toggling Relay 2"); digitalWrite (rel2, relay_state); istirahat; kasus 3: Serial.println ("Toggling Relay 3"); digitalWrite (rel3, relay_state); istirahat; kasus 4: Serial.println ("Toggling Relay 4"); digitalWrite (rel4, relay_state); istirahat; }}
Fabrikasi PCB menggunakan PCBGoGo
Sekarang kami memahami cara kerja skema, kami dapat melanjutkan dengan membangun PCB untuk proyek otomasi Rumah kami. Tata letak PCB untuk rangkaian di atas juga tersedia untuk diunduh sebagai Gerber dari tautan.
- Unduh GERBER untuk Otomatisasi Rumah yang Dikendalikan Suara menggunakan Asisten Google
Sekarang desain kita sudah siap, sekarang saatnya membuatnya dibuat menggunakan file Gerber. Untuk menyelesaikan PCB dari PCBGOGO cukup mudah, cukup ikuti langkah-langkah di bawah ini-
Langkah 1: Masuk ke www.pcbgogo.com, daftar jika ini adalah pertama kalinya Anda. Kemudian di tab Prototipe PCB, masukkan dimensi PCB Anda, jumlah lapisan, dan jumlah PCB yang Anda butuhkan. Dengan asumsi PCB berukuran 80cm × 80cm, Anda dapat mengatur dimensinya seperti yang ditunjukkan di bawah ini.
Langkah 2: Lanjutkan dengan mengklik tombol Kutip Sekarang . Anda akan dibawa ke halaman di mana untuk mengatur beberapa parameter tambahan jika diperlukan seperti material yang digunakan jarak trek, dll. Tetapi kebanyakan, nilai default akan berfungsi dengan baik. Satu-satunya hal yang harus kita pertimbangkan di sini adalah harga dan waktu. Seperti yang Anda lihat, Build Time hanya 2-3 hari dan biayanya hanya $ 5 untuk PCB kami. Anda kemudian dapat memilih metode pengiriman yang disukai berdasarkan kebutuhan Anda.
Langkah 3: Langkah terakhir adalah mengunggah file Gerber dan melanjutkan pembayaran. Untuk memastikan prosesnya lancar, PCBGOGO akan memverifikasi apakah file Gerber Anda valid sebelum melanjutkan pembayaran. Dengan cara ini, Anda dapat yakin bahwa PCB Anda ramah fabrikasi dan akan menghubungi Anda sesuai komitmen.
Merakit PCB
Setelah papan dipesan, papan itu sampai kepada saya setelah beberapa hari melalui kurir dalam kotak berlabel rapi yang dikemas dengan baik, dan seperti biasa, kualitas PCBnya luar biasa. PCB yang saya terima ditampilkan di bawah ini. Seperti yang Anda lihat, lapisan atas dan bawah telah berubah seperti yang diharapkan.
Vias dan pad semuanya dalam ukuran yang tepat. Saya membutuhkan waktu sekitar 15 menit untuk memasang papan PCB untuk mendapatkan sirkuit yang berfungsi. Papan yang dirakit ditunjukkan di bawah ini.
Menghubungkan Papan dengan Unit Daya AC / Papan Ekstensi
Papan dirancang untuk dipasang di dalam soket daya AC di rumah kita. Tetapi demi proyek ini, kami akan menggunakan kotak ekstensi. Jika Anda menginginkan solusi yang lebih permanen, pasang kabel ini di dalam soket daya AC Anda, seperti yang Anda lihat di bawah ini, panjang PCB cukup kompak untuk ditempatkan di dalam soket daya AC.
Pastikan Anda mengikuti tindakan pencegahan keselamatan saat bekerja dengan sumber listrik AC. Ikuti diagram sirkuit di bawah ini untuk memahami cara menghubungkan relai dan sakelar Anda ke papan PCB kami.
Diagram koneksi turun hanya untuk satu Relay dan sakelar tetapi Anda dapat mereplikasi yang sama untuk tiga yang tersisa juga. Setelah koneksi selesai, papan Anda akan terlihat seperti ini
Setelah sambungan dibuat, pastikan Anda telah mengencangkannya dengan erat dengan terminal sekrup dan juga menggunakan lem panas untuk keamanan tambahan. Kemas semuanya kembali ke dalam kotak dan kami harus siap untuk pengujian. Anda dapat menemukan pekerjaan lengkap proyek ini di video di bawah ini.
Saya harap Anda menikmati artikel ini dan mempelajari sesuatu yang bermanfaat. Jika Anda memiliki pertanyaan, silakan tinggalkan di bagian komentar di bawah atau gunakan forum kami.