Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Kunci Pintu Dilindungi Kata Sandi Berbasis Arduino dan Android

Komponen dan persediaan

Arduino UNO
× 1
Modul Bluetooth HC-05
× 1
Servo (Tower Pro MG996R)
× 1

Alat dan mesin yang diperlukan

Printer 3D (generik)

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Pendahuluan

Kunci pintar ini adalah kunci rumah Anda yang aman, sederhana, dan mudah dikelola. Kunci ini tidak memerlukan kunci dan kunci terpasang di dalam pintu dan Anda dapat mengontrolnya dari luar pintu menggunakan Bluetooth. Karena kunci ada di dalam pintu, tidak ada cara untuk mendobrak pintu oleh pencuri. Aplikasi android diperlukan untuk membuka dan menutup kunci dan saya akan menjelaskan detailnya bagaimana Anda dapat mengembangkan aplikasi android di bagian selanjutnya dari tutorial. Kata sandi dikirim ke kunci menggunakan aplikasi Android dan jika kata sandi cocok dengan kata sandi kunci prasetel Anda, maka kunci akan terbuka dan mengirim umpan balik ke ponsel Anda seperti kunci terbuka.

Desain 3D Kunci Pintu

Semua bagian kunci dicetak 3D. Saya ingin mengucapkan terima kasih, pengguna Thingiverse ridercz untuk desainnya yang bagus. Dia merancang dan menerbitkan kunci pintu berbasis servo ini di thingiverse.com. Semua file kecuali Rack_Holder.stl diambil dari desainnya. Anda dapat mengunduh file dari bawah atau dari Thingiverse.com.

Beberapa file memiliki versi LT. Versi ringan membutuhkan lebih sedikit PLA dibandingkan dengan versi normal dan memiliki kekuatan yang lebih sedikit. Saya mencetak versi LT dan berfungsi dengan baik. Saya menggunakan Anet A8 untuk mencetak semua bagian. Foto bagian yang dicetak terlampir..

Merakit Bagian Cetakan 3D

Pasang semua bagian yang dicetak satu per satu seperti yang ditunjukkan pada foto. Anda juga dapat mengikuti instruksi video yang terlampir pada langkah pertama. Setelah perakitan, gunakan empat sekrup untuk mengencangkan semua bagian dengan erat.

Program Arduino untuk Kontrol Bluetooth Kunci Pintu yang Dilindungi Kata Sandi

Kode untuk kunci pintu pintar kontrol bluetooth sangat sederhana. Saya telah merancang aplikasi android sedemikian rupa sehingga mengirimkan perintah dengan kata sandi. Sebenarnya saya menetapkan dua perintah, satu adalah "OPEN=" dan lainnya adalah "CLOSE=" dan kata sandi dapat berisi angka apa pun, nanti atau simbol atau kombinasinya sesuka Anda. Di aplikasi saya menggunakan dua tombol satu untuk membuka pintu dan satu lagi untuk menutup pintu. Ketika kata sandi diberikan ke kotak kata sandi dan tombol buka diklik dari aplikasi, gabungkan perintah "OPEN=" dengan kata sandi dan kirimkan ke arduino. Saya menambahkan tanda '=' dengan perintah untuk itu saya akan memisahkan perintah dan kata sandi dengan menggunakan '=' ini. Setelah menerima string dari telepon, program arduino memisahkan perintah dan kata sandi dari string penerima dan menyimpannya ke dalam dua variabel terpisah. Kemudian cek password terlebih dahulu, jika password cocok dengan password yang disimpan maka buka pintu untuk perintah "OPEN", dan tutup pintu untuk perintah "CLOSE". "=" membantu memisahkan perintah dan kata sandi. Sketsa arduino lengkap diberikan di bawah ini.

Skema

Hubungan antar komponen sangat sederhana. Pertama, sambungkan modul Bluetooth HC-05 ke Arduino. Perhatikan skema. Pin TX papan Arduino terhubung ke pin RX modul Bluetooth dan pin RX Arduino terhubung ke pin TX modul Bluetooth.

Menyetel Kunci ke Pintu

Saya harap Anda memprogram papan Arduino Anda dengan sketsa terlampir pada langkah sebelumnya dan Anda sudah menguji semua koneksi sesuai dengan skema. Jika Anda menyelesaikan semua langkah maka inilah saatnya untuk menempatkan kunci di tempat pintu yang sesuai. Pertama, tempatkan kunci dengan empat sekrup. Kemudian, pasang modul Bluetooth di tempat yang tepat dari kunci dan tambahkan lem panas untuk menyesuaikan modul dengan kunci dengan erat. Setelah itu, letakkan papan Arduino ke sisi bawah kunci dan hubungkan semua kabel sesuai skema. Setelah memasang kunci dan membuat sambungan, Anda harus menyalakan kunci. Saya menggunakan adaptor dinding 5V, 1A untuk memberikan daya ke sirkuit.

Pengembangan Aplikasi Android untuk Kunci Pintu yang Dilindungi Kata Sandi

Saya akan menunjukkan kepada Anda bagaimana mengembangkan aplikasi android Bluetooth menggunakan MIT App Inventor. Saya menggunakan App Inventor karena tidak memerlukan pengkodean apa pun dan tidak ada instalasi perangkat lunak. Anda hanya perlu akun google. Buka http://ai2.appinventor.mit.edu/, Anda akan diminta untuk login menggunakan akun google.

Masuk ke App Inventor menggunakan gmail dan ikuti langkah-langkah di bawah ini:

  • i. Terima syarat &ketentuan gambar 1
  • ii. Klik 'ikuti survei nanti' lalu 'lanjutkan' untuk menutup gambar layar splash 2, 3
  • iii. Mulai proyek baru (tanpa spasi!) gambar 4
  • iv. Beri nama proyek "BluetoothControlDoorLock" (tanpa spasi!) gambar 5

Anda sekarang berada di Desainer, tempat Anda meletakkan "antarmuka pengguna" aplikasi Anda (gambar 6). Jendela Perancang adalah tempat Anda menata tampilan dan nuansa aplikasi Anda, dan menentukan fungsionalitas apa yang seharusnya dimilikinya. Anda memilih berbagai hal untuk antarmuka pengguna seperti Tombol, Gambar, Label, Kotak teks, dan fungsi seperti Text-to-Speech, Bluetooth, Sensor, dan GPS.

Sekarang, ikuti gambar 7 dan tambahkan List Picker ke viewer. Ubah namanya menjadi "Connect to Bluetooth Device" (gambar 8). Tambahkan satu Label, satu Kotak Teks Kata Sandi, dan dua tombol yang ditunjukkan pada gambar 10. Ubah properti teks komponen masing-masing sebagai "Masukkan Kata Sandi", "Buka Pintu", dan "Tutup Pintu". Antarmuka Pengguna Akhir akan terlihat seperti gambar 11. Sekarang tambahkan Klien Bluetooth ke penampil. Ini adalah komponen yang tidak terlihat dan tidak memiliki UI. Lihat Gambar 12.

Beralih ke Editor Blok

Saatnya memberi tahu aplikasi Anda apa yang harus dilakukan! Klik "Blok" untuk pindah ke Editor Blok (gambar 13). Pikirkan tombol Designer dan Blocks seperti tab- Anda menggunakannya untuk bergerak maju mundur di antara dua area App Inventor. Editor Blok adalah tempat Anda memprogram perilaku aplikasi Anda. Ada blok bawaan yang menangani hal-hal seperti matematika, logika, dan teks. Di bawah ini adalah blok yang menyertai setiap komponen di aplikasi Anda. Agar blok untuk komponen tertentu muncul di Editor Blok, Anda harus terlebih dahulu menambahkan komponen itu ke aplikasi Anda melalui Desainer.

Mari kita, merancang blok untuk List Picker. List Picker adalah elemen UI ketika diklik itu menunjukkan daftar elemen yang sesuai di sini adalah perangkat Bluetooth yang dipasangkan. Kita harus menambahkan dua blok ListPicker.BeforePicking dan ListPicker.AfterPicking (gambar 14). Blok Lengkap ditunjukkan pada gambar 18 &19.

Membuat file apk

Desain kita sudah selesai, sekarang kita perlu membangun file apk untuk ponsel android kita. Klik untuk membangun menu dan pilih "Aplikasi (simpan .apk ke komputer saya)". Tunggu sebentar. File apk akan diunduh ke folder unduhan default Anda. Instal dan gunakan.

Aplikasi Android yang Lebih Kaya Fitur

Pada langkah sebelumnya saya telah menunjukkan kepada Anda bagaimana mengembangkan aplikasi bluetooth dasar di App Inventor. Tetapi aplikasi itu tidak begitu ramah pengguna. Ini tidak akan menampilkan pesan apa pun baik pintu Anda terbuka atau tertutup atau bluetooth tidak dapat terhubung karena kesalahan apa pun. Saya telah melampirkan di sini aplikasi yang lebih canggih untuk proyek kami.

Saat Anda menjalankan aplikasi Anda, aplikasi ini memeriksa apakah radio bluetooth Anda diaktifkan atau tidak, jika tidak mengaktifkan dialog pengaktifan bluetooth akan muncul. Klik ya untuk menyalakan radio bluetooth Anda. Kemudian pasangkan perangkat menggunakan tombol pasangkan perangkat. Kemudian klik tombol untuk menghubungkan, jika berhasil terhubung ke perangkat apa pun, aplikasi menunjukkan alamat MAC dan nama perangkat yang terhubung. Masukkan kata sandi ke kotak kata sandi lalu klik tombol buka pintu, jika Anda memasukkan kata sandi yang benar, pintu akan terbuka dan aplikasi akan menampilkan pesan bahwa pintu Anda sekarang terbuka. Kemudian masukkan kata sandi lagi jika Anda ingin menutup pintu. Jika Anda memberikan kata sandi yang salah, maka aplikasi akan menampilkan pesan kata sandi yang salah.

File sumber App Inventor lengkap (BTcontrol.aia) terlampir dengan ini. Jika Anda tidak suka membuat aplikasi sendiri atau memodifikasinya, cukup unduh BTcontrol.apk dan instal ke ponsel Android Anda.

Anda juga dapat mengunduhnya dari Google Play Store menggunakan tautan:

https://play.google.com/store/apps/details?id=appinventor.ai_khairul_uapstu.BTcontrol&hl=id

Untuk memodifikasi sumber klik menu "Projects" dan pilih "Import project (.aia) from my computer" yang ditunjukkan pada gambar 24 dan telusuri file BTcontrol.aia dari komputer Anda. Setelah mengimpor, Anda dapat memodifikasinya dengan mudah.

Jika Anda ingin tahu lebih banyak tentang pengembangan aplikasi Android menggunakan App Inventor, telusuri:http://appinventor.mit.edu/explore/ai2/tutorials.html. Anda juga dapat mencoba http://meta-guide.com/videography/100-best-appinventor-videos/

Kode

  • Sketsa Arduino
Sketsa ArduinoArduino
#include Servo myservo; // buat objek servo untuk mengontrol servoString inputString ="";String command ="";Nilai string ="";String password ="arduPi"; // ini adalah kata sandi untuk membuka dan menutup pintu Anda // Anda dapat mengatur kata sandi apa pun yang Anda suka menggunakan digit dan simbolboolean stringComplete =false; void setup(){ //mulai koneksi serial Serial.begin(9600); // baud rate adalah 9600 harus sesuai dengan bluetooth //Fungsi String reserve() memungkinkan Anda mengalokasikan buffer di memori untuk memanipulasi string. inputString.reserve(50); // simpan 50 byte di memori untuk disimpan untuk manipulasi string command.reserve(50); nilai.cadangan(50); string booleanOK =salah; myservo.attach(9); // menempelkan servo pada pin 9 ke objek servo }void loop(){ // jika arduino menerima karakter pemutusan string seperti \n stringComplete akan disetel ke true if (stringComplete) { //Serial.println(inputString); penundaan(100); // mengidentifikasi posisi '=' dalam string dan mengatur indeksnya ke variabel pos int pos =inputString.indexOf('='); // nilai variabel pos> atau =0 berarti '=' ada dalam string yang diterima. if (pos> -1) { // substring(start, stop) function memotong bagian tertentu dari string dari awal hingga berhenti // di sini perintah akan menjadi bagian dari string yang diterima hingga '=' // biarkan string yang diterima terbuka=test123 // maka perintahnya adalah 'buka' command =inputString.substring(0, pos); // nilai akan dari after =ke perintah baris baru // untuk contoh di atas nilai test123 // kita abaikan saja '=' mengambil parameter pertama substring sebagai 'pos+1' // kita menggunakan '=' sebagai pemisah antara perintah dan vale // tanpa '=' karakter lain dapat digunakan // kita menggunakan =menas perintah atau kata sandi kita tidak boleh mengandung '=', jika tidak maka akan menyebabkan nilai kesalahan =inputString.substring(pos+1 , inputString.length()-1); // ekstrak perintah hingga \n dikecualikan //Serial.println(perintah); //Serial.println(nilai); // password.compareTo(value) membandingkan antara string password dan nilai string, jika cocok kembali 0 if(!password.compareTo(value) &&(command =="OPEN")){ // jika password cocok dan perintah 'OPEN ' dari pintu harus membuka openDoor(); // panggil fungsi openDoor() Serial.println("OPEN"); // mengirim umpan balik terbuka ke penundaan telepon (100); } else if(!password.compareTo(value) &&(command =="CLOSE")){ // jika password cocok dan perintah 'CLOSE' maka pintu harus menutup closeDoor(); Serial.println("TUTUP"); // mengirim string " TUTUP" ke penundaan telepon(100); } else if(password.compareTo(value)){ // jika kata sandi tidak cocok daripada mengirim umpan balik yang salah ke telepon Serial.println(" WRONG"); penundaan(100); } } // hapus string untuk iterasi berikutnya inputString =""; stringLengkap =salah; } }void serialEvent() { while (Serial.available()) { // dapatkan byte baru:char inChar =(char)Serial.read(); //Serial.tulis(dalamChar); // tambahkan ke inputString:inputString +=inChar; // jika karakter yang masuk adalah baris baru atau carriage return, setel flag // sehingga loop utama dapat melakukan sesuatu tentangnya:if (inChar =='\n' || inChar =='\r') { stringComplete =benar; } }}kosongkan openDoor(){ myservo.write(0); penundaan(100); }void closeDoor(){ myservo.write(65); penundaan(100); }

Suku cadang dan penutup khusus

Thingiverse
https://www.thingiverse.com/thing:2350856File CAD di thingiverse.com

Skema

door-lock_android_source_PDi5PbxDwC.aia door-lock_android_app_K05l3Csr61.apk

Proses manufaktur

  1. Bank Vault
  2. Kanal dan Kunci
  3. Tutorial Kunci RFID Arduino
  4. Kontrol Jarak Jauh Universal menggunakan Arduino, 1Sheeld, dan Android
  5. Animasi dan Permainan LCD
  6. Mengontrol Robot Roomba Dengan Arduino Dan Perangkat Android
  7. Kunci Pintu Berbasis Kata Sandi
  8. Python3 dan Komunikasi Arduino
  9. Otomata Seluler berbasis Arduino dan OLED
  10. Smart Door Lock Menggunakan Halaman Login WiFi oleh Arduino &ESP8266