Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Ini adalah brankas berteknologi tinggi arduino saya. Anda harus memindai jari Anda, memindai kartu Anda, lalu memasukkan kata sandi 4 digit untuk membuka kunci laci. Proyek ini tidak disarankan untuk pemula karena sangat canggih. Kodenya panjang, tetapi saya akan membagikannya dalam proyek ini. Biayanya sekitar $75 jika Anda membuat brankas yang sama dengan saya. Proyek ini juga bisa memakan waktu 1-3 hari untuk diselesaikan. Jadi, mari kita mulai!
Perlengkapan
Untuk membangun brankas yang sama dengan milik saya, Anda perlu:
Arduino (Uno direkomendasikan karena saya tidak memiliki langkah-langkah untuk arduino mega atau nano. Tapi Anda masih bisa menggunakannya)
papan tempat memotong roti
servo
kabel jumper
joystik
20*4 (Anda dapat menggunakan 16*4, tetapi Anda harus mengubah kode)
pemindai sidik jari
pemindai kartu rfid mfrc522
ember lego
Langkah 1: Membangun Kotak
Pertama, Anda memerlukan kotak untuk meletakkan barang elektronik Anda. Anda bisa menggunakan lego, kotak cetak 3d, atau bahkan karton! (Meskipun ini mungkin lebih sulit) Jangan lupa untuk membuat lubang di dalamnya untuk laci, dan barang elektronik Anda. Jika Anda menggunakan pemindai kartu rfid, Anda tidak perlu melubanginya jika dinding Anda tipis. Kartu masih berfungsi, tetapi Anda harus menutup gantungan kunci agar sensor kartu rfid dapat membacanya. Juga sisakan ruang untuk arduino dan kabel Anda di dalamnya. CATATAN: Saat Anda membuat laci, tinggalkan lubang di dalamnya agar servo Anda dapat berputar dan mengunci laci.
Langkah 2: Pengkabelan
Langkah ini bisa jadi rumit karena Anda harus mencolokkan kabel di tempat yang tepat atau elektronik tidak akan berfungsi. Saya tidak memiliki diagram pengkabelan, tetapi saya akan memberi tahu Anda masing-masing akan berjalan. Kabel hanya untuk arduino uno. Anda harus mencari untuk meletakkan kabel jika Anda menggunakan arduino mega atau nano. Jika Anda tidak menggunakan semua perangkat elektronik yang saya miliki, Anda dapat melewati kabel itu.
Pemindai sidik jari: kabel hijau: D2 kabel putih: D3 kabel hitam: GND kabel merah: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Saklar = D4
pemindai kartu rfid: 3.3V = 3.3V pertama = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
layar lcd: 5V = 5V GND = GND sda = A4 sck = A5
Servo: kabel merah: 5V Kabel coklat: GND kabel kuning: D6
CATATAN: JANGAN MASUKKAN PEMINDAI KARTU RFID KE 5V. JIKA ANDA MELAKUKANNYA, ITU AKAN RUSAK!!!
Anda mungkin bertanya-tanya mengapa saya mengatakan untuk menyambungkan daya joystick ke 3.3V ketika tertulis 5V di samping. Itu karena servo, layar, dan pemindai sidik jari membutuhkan 5V. Jika Anda menambahkan joystick ke dalamnya, elektronik mungkin tidak berfungsi karena semuanya membutuhkan 5V. Joystick masih akan bekerja dengan 3.3V. Hanya saja nilai maksimalnya bukan 1023, itu akan menjadi ~670.
Langkah 3: Mengunduh Perpustakaan
Dalam proyek ini, Anda akan memerlukan 6 perpustakaan untuk menggunakan semua elektronik. 1 untuk servo, 1 untuk sensor sidik jari, 2 untuk pemindai kartu rfid, dan 2 untuk layar. Joystick tidak membutuhkan perpustakaan. Sekarang, apa itu perpustakaan? Ini pada dasarnya adalah file yang menyimpan banyak kode yang dapat Anda gunakan dalam proyek Anda dengan perintah sederhana. Untuk mendapatkan perpustakaan ini, Anda harus pergi ke tempat bernama GitHub. Jika Anda tahu cara mengunduh dan membuka zip perpustakaan, cukup buka tautan di bawah untuk mengunduh. Jika Anda tidak tahu caranya, Anda dapat pergi ke instruksi saya yang berbicara tentang cara mengunduh perpustakaan pada langkah 3:
atau cari video youtube tentang cara mengunduh perpustakaan arduino dari GitHub
LINK KE PERPUSTAKAAN:
Servo
sensor sidik jari:
spi
sensor kartu rfid
perpustakaan layar 1
perpustakaan layar 2
Langkah 4: Menyiapkan Sensor Sidik Jari dan Sensor Kartu RFID
Langkah ini berbicara tentang cara mengatur sensor sidik jari dan sensor kartu rfid. Kecuali Anda telah menggunakan sensor sidik jari Anda, Anda harus menunjukkan seperti apa sidik jari Anda sehingga dapat menyimpannya di memorinya. Bahkan jika Anda telah menggunakannya sebelumnya, Anda mungkin masih harus melakukan langkah ini. Saya akan memberi tahu Anda cara melakukannya secara singkat, tetapi jika tidak masuk akal, buka tautan yang dapat diinstruksikan yang sama di langkah terakhir. Ini melewatinya dengan sangat baik. Dasar hanya membuka ide arduino. Buka file > contoh > adafruit sensor sidik jari > daftar. Unggah kode ke arduino, buka serial monitor, dan ikuti langkah-langkahnya. Ketika ia memberitahu Anda untuk memberikan nomor. Ketik 1#.
Nah untuk kartu rfid, langkah ini cukup mudah. Buka ide arduino. Buka file > contoh > mfrc522 > baca data pribadi. Upload ke arduino dan buka serial monitor. Pindai kartu atau gantungan kunci yang ingin Anda gunakan yang disertakan dengan sensor Anda. Kemudian itu akan memberi Anda beberapa informasi. Cari ID kartu itu akan menjadi 4 set 2 digit. Sesuatu seperti ini: AB 45 2Y 45 tetapi kode Anda akan berbeda. Tuliskan ini di selembar kertas. Anda akan membutuhkannya lagi nanti. Itu saja untuk langkah ini.
Langkah 5: KODE
Ini akan menjadi langkah tersulit bagi sebagian besar dari Anda, tetapi ini cukup sederhana. Pertama salin dan tempel kode ke dalam ide arduino dari bawah. Kedua, edit 2 bagian yang bertuliskan EDIT CODE. 1 bagian untuk pemindai kartu, 1 bagian untuk joystick. Langkah-langkah ini tidak dapat dilewati. Setelah selesai, unggah kode ke arduino!
#sertakan #sertakan Sidik Jari.h>
#termasuk
#termasuk
#termasuk
#termasuk
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIF);
#tentukan RST_PIN 9
#tentukan SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
Servo servo;
karakter d1;
karakter d2;
karakter d3;
karakter d4;
batalkan pengaturan(){
servo.attach(6);
servo.menulis(170);
lcd.begin(20, 4);
Serial.begin(9600);
while (!Serial);
SPI.mulai();
mfrc522. PCD_Init();
penundaan (4);
mfrc522. PCD_DumpVersionToSerial();
penundaan(100);
Serial.println("\n\nTes deteksi jari ada buah");
jari.mulai(57600);
penundaan (5);
if (finger.verifyPassword()) {
Serial.println("Semua sistem berfungsi, ");
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Silahkan pindai jari");
} lain {
Serial.println("ERROR: Sensor sidik jari tidak ditemukan!");
lcd.setCursor(0, 0);
lcd.print("KESALAHAN: Sidik jari");
lcd.setCursor(1, 1);
lcd.print("sensor tidak ditemukan!");
while (1) { penundaan(1); }
}
finger.getTemplateCount();
Serial.print("Sensor berisi "); Serial.print(finger.templateCount); Serial.println("template"); Serial.println("Menunggu jari yang valid…"); }
void(* resetFunc) (void) = 0;
lingkaran kosong() {
getFingerprintIDez();
penundaan(50);
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
beralih (p) {
kasus FINGERPRINT_OK:
Serial.println("Gambar diambil");
merusak;
kasus FINGERPRINT_NOFINGER:
Serial.println("Tidak ada jari yang terdeteksi");
kembali hal;
kasus FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Kesalahan Komunikasi");
kembali hal;
kasus FINGERPRINT_IMAGEFAIL:
Serial.println("Kesalahan Pencitraan");
kembali p;
bawaan:
Serial.println("Kesalahan tidak diketahui");
kembali p;
}
p = jari.gambar2Tz();
beralih (p) {
kasus FINGERPRINT_OK:
Serial.println("Gambar dikonversi");
merusak;
kasus FINGERPRINT_IMAGEMESS:
Serial.println("Gambar terlalu berantakan");
kembali hal;
kasus FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Kesalahan Komunikasi");
kembali p;
kasus FINGERPRINT_FEATUREFAIL:
Serial.println("Tidak dapat menemukan fitur sidik jari");
kembali p;
kasus FINGERPRINT_INVALIDIMAGE:
Serial.println("Tidak dapat menemukan fitur sidik jari");
kembali p;
bawaan:
Serial.println("Kesalahan tidak diketahui");
kembali p;
}
p = finger.fingerFastSearch();
if (p == SIDIK JARI_OK) {
Serial.println("Menemukan hasil cetak yang cocok!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Kesalahan komunikasi");
kembali p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Tidak menemukan kecocokan");
kembali p;
} lain {
Serial.println("Kesalahan tidak diketahui");
kembali p;
}
Serial.print("ID Ditemukan #"); Serial.print(finger.fingerID);
Serial.print(" dengan keyakinan "); Serial.println(jari.keyakinan);
kembali finger.fingerID;
}
int getFingerprintIDez() {
uint8_t p = finger.getImage();
jika (p != FINGERPRINT_OK) kembali -1;
p = jari.gambar2Tz();
jika (p != FINGERPRINT_OK) kembali -1;
p = finger.fingerFastSearch();
jika (p != FINGERPRINT_OK) kembali -1;
Serial.print("ID Ditemukan #"); Serial.print(finger.fingerID);
Serial.print(" dengan keyakinan "); Serial.println(jari.keyakinan);
if(finger.fingerID == 1){
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Jari diterima, ");
lcd.setCursor(2, 0);
lcd.print("Sekarang pindai kartu…");
lcd.setCursor(0, 3);
lcd.print("====================>");
while(! mfrc522. PICC_IsNewCardPresent());
while(! mfrc522. PICC_ReadCardSerial());
if (mfrc522.uid.uidByte[0] == 0x92 && //========================EDIT KODE======== ================
mfrc522.uid.uidByte[1] == 0xAB && //Ambil selembar kertas dengan ID di atasnya, ada 4 set 2 digit
mfrc522.uid.uidByte[2] == 0x90 && //Lihat kodenya, lihat di mana tertulis 0x92, 0xAB, 0x90, 0x1c? Masukkan masing-masing
mfrc522.uid.uidByte[3] == 0x1C) { //dari bagian 2 digit setelah 0x. Misalnya, bagian ID mengatakan
lcd.clear(); //3E, lalu masukkan 3E setelah 0x untuk membuat 0x3E. Lakukan ini untuk setiap bagian
lcd.setCursor(3, 0);
lcd.print("Akhirnya masuk");
lcd.setCursor(1, 1);
lcd.print("password joystik");
while(analogRead(A2) >= 100 &&
analogBaca(A2) <= 670 &&
analogRead(A3) >= 100 &&
analogBaca(A3) <= 670){
}
lcd.setCursor(8, 4);
lcd.print("*"); if(analogRead(A2) <= 100){
d1 = L;
}
if(analogRead(A2) >= 670){
d1 = R;
}
if(analogRead(A3) <= 100){
d1 = U;
}
if(analogRead(A3) >= 670){
d1 = D;
}
penundaan (500);
while(analogRead(A2) >= 100 &&
analogBaca(A2) <= 670 &&
analogRead(A3) >= 100 &&
analogBaca(A3) <= 670){
}
lcd.print("*");
if(analogRead(A2) <= 100){
d2 = L;
}
if(analogRead(A2) >= 670){
d2 = R;
}
if(analogRead(A3) <= 100){
d2 = U;
}
if(analogRead(A3) >= 670){
d2 = D;
}
penundaan (500);
while(analogRead(A2) >= 100 &&
analogBaca(A2) <= 670 &&
analogRead(A3) >= 100 &&
analogBaca(A3) <= 670){
}
lcd.print("*");
if(analogRead(A2) <= 100){
d3 = L;
}
if(analogRead(A2) >= 670){
d3 = R;
}
if(analogRead(A3) <= 100){
d3 = U;
}
if(analogRead(A3) >= 670){
d3 = D;
}
penundaan (500);
while(analogRead(A2) >= 10 &&
analogBaca(A2) <= 670 &&
analogRead(A3) >= 100 &&
analogBaca(A3) <= 670){
}
lcd.print("*");
if(analogRead(A2) <= 100){
d4 = L;
}
if(analogRead(A2) >= 670){
d4 = R;
}
if(analogRead(A3) <= 100){
d4 = U;
}
if(analogRead(A3) >= 670){
d4 = D;
}
penundaan (500);
if(d1 == L && d2 == U && d3 == L && d4 == R){ //================EDIT KODE====== ==================
lcd.clear(); //Bagian ini adalah Anda dapat mengedit kata sandi dengan joystick
lcd.setCursor(2, 0); // kata sandi disetel ke kiri, kiri atas, kanan. Jika Anda ingin berubah
lcd.print("Akses diberikan!"); //itu, letakkan L untuk kiri, R untuk kanan, U untuk atas, atau D untuk bawah di salah satu dari
lcd.setCursor(2, 1); //4 bagian dengan huruf setelah tanda ==.
lcd.print("Laci tidak terkunci.");
lcd.setCursor(2, 2);
lcd.print("Setelah selesai, pindahkan");
lcd.setCursor(1, 3);
lcd.print("joystick untuk mengunci kembali");
servo.menulis(90);
while(analogRead(A2) >= 100 &&
analogBaca(A2) <= 670 &&
analogRead(A3) >= 100 &&
analogRead(A3) <= 670);
servo.menulis(170);
lcd.setCursor(3, 0);
lcd.print("Laci terkunci");
penundaan(3000);
resetFunc();
}lain{
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("AKSES DITOLAK!!!");
lcd.setCursor(0, 2);
lcd.print("Restart sistem…");
penundaan(3000);
resetFunc();
}
}lain{
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("AKSES DITOLAK!!!");
lcd.setCursor(0, 2);
lcd.print("Restart sistem…");
penundaan(3000);
resetFunc();
}
}lain{
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("AKSES DITOLAK!!!");
lcd.setCursor(0, 2);
lcd.print("Restart sistem…");
penundaan(3000);
resetFunc();
}
kembali finger.fingerID; }
Langkah 6: Selesai
Satu hal yang saya lupa untuk memberitahu Anda, baik 2 hal adalah bahwa saya membangun ini sebelum saya mengambil gambar, jadi saya tidak bisa menunjukkan bagaimana saya membangun kotak. Yang lainnya adalah disarankan untuk memasang bagian servo ke bagian yang berputar. Jika tidak, seseorang dapat menarik laci saat terkunci dan menariknya keluar. Tetapi sebelum Anda memasangnya, temukan tempat yang tepat untuk memasangnya karena servo berputar ke tingkat tertentu. Atau Anda bisa mengubahnya dalam kode. Jika beberapa elektronik bertingkah lucu, Anda mungkin ingin menemukan cara berbeda untuk mendapatkan 5V untuk beberapa di antaranya. Saya perhatikan ketika pemindai sidik jari saya berkedip, layar akan sedikit berkedip, dan servo akan mengeluarkan suara. Ketika servo bergerak, layar akan menjadi redup. Saya harap Anda menikmati proyek ini! Jika Anda memiliki pertanyaan, tinggalkan di komentar. Saya tidak banyak menggunakan instruksi, tetapi saya akan menjawabnya sesegera mungkin!
Direkomendasikan:
Corona Safe: Keran Penghemat Air Otomatis: 6 Langkah
Corona Safe: Keran Penghemat Air Otomatis: Kita semua harus mencuci tangan setiap saat untuk menghilangkan virus dan bakteri khusus untuk virus Corona kita perlu mencuci tangan selama 20 detik untuk menghilangkannya sepenuhnya. Dispenser sabun atau kenop keran juga mungkin tidak higienis atau
Tip Stylus iPad - (Cara Menghidupkan Bagian Kecil pada Mesin Bubut Jet), Saya Membuatnya di Tech Shop!: 7 Langkah
IPad Stylus Tip - (Cara Menghidupkan Bagian Kecil pada Mesin Bubut Jet), Saya Membuat Ini di Tech Shop!: Buat ujung kuningan ini untuk memegang ujung karet stylus! Ini adalah bagian tersulit dari membuat stylus kapasitif Anda sendiri! Saya membutuhkan ujung kuningan untuk menahan ujung karet untuk stylus sensitif tekanan yang sedang saya kembangkan. Instruksi ini akan menunjukkan kepada Anda
B-Safe, Brankas Portabel: 8 Langkah (dengan Gambar)
B-Aman, Brankas Portabel: *** 4 September 2019: Saya mengunggah file 3D baru dari kotak itu sendiri. Tampaknya kunci saya terlalu tinggi 10 mm untuk penutupan yang baik ***MasalahnyaBayangkan ini:Anda bangun di suatu pagi dan cuacanya sangat bagus. Anda ingin pergi ke pantai. Karena Anda tidak
Arduino 101: Kursus dari Tech Guy: 4 Langkah
Arduino 101: Kursus dari Tech Guy: Saya berharap, banyak orang, terutama pemula, yang ingin terjun ke dunia Arduino, akan mengetahui ini dan artikel/Petunjuk lainnya (yang akan saya posting secara teratur) bermanfaat .Ini tidak akan seperti pelajaran Copy-&-Paste biasa. Dia
SAFE?, Robot Penghemat Barang: 6 Langkah (Dengan Gambar)
AMAN?, Robot yang Menyelamatkan Barang.: Hai dan Selamat datang di instruksi ini!. Robot: AMAN? bisa menjadi keren seperti yang Anda inginkan untuk membuatnya. Robot ramah ini juga lho, bisa membuat kita jadi gemar menyelamatkan barang-barang kita. Selanjutnya, dalam versi SAFE ini? kami tidak dapat menentukan t