Isi kandungan:
- Bekalan
- Langkah 1: Membina Kotak
- Langkah 2: Pendawaian
- Langkah 3: Memuat turun Perpustakaan
- Langkah 4: Menyiapkan Sensor Cap Jari dan Sensor Kad Rfid
- Langkah 5: KOD
- Langkah 6: Selesaikan
Video: Arduino High Tech Safe: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Ini adalah peti keselamatan berteknologi tinggi arduino saya. Anda mesti mengimbas jari, mengimbas kad anda, kemudian memasukkan kata laluan 4 digit untuk membuka kunci laci. Projek ini tidak digalakkan untuk pemula kerana sangat maju. Kodnya panjang, tetapi saya akan kongsikan dalam projek ini. Kosnya sekitar $ 75 jika anda membina peti besi yang sama dengan saya. Projek ini juga memerlukan masa 1-3 hari untuk disiapkan. Oleh itu, mari bermula!
Bekalan
Untuk membina peti keselamatan yang sama dengan saya, anda memerlukan:
Arduino (Tidak disarankan kerana saya tidak mempunyai langkah untuk arduino mega atau nano. Tetapi anda masih boleh menggunakannya)
papan roti
servo
wayar pelompat
kayu bedik
20 * 4 (anda boleh menggunakan 16 * 4, tetapi anda harus menukar kodnya)
pengimbas cap jari
pengimbas kad mfrc522 rfid
baldi legos
Langkah 1: Membina Kotak
Mula-mula anda memerlukan kotak untuk memasukkan elektronik anda. Anda boleh menggunakan Lego, kotak bercetak 3d, atau kadbod! (Walaupun ini lebih sukar) Jangan lupa meletakkan lubang di dalam laci dan barang elektronik anda. Sekiranya anda menggunakan pengimbas kad rfid, anda tidak perlu meletakkan lubang jika dinding anda nipis. Kad masih berfungsi, tetapi anda harus meletakkan kunci kunci sehingga senor kad rfid dapat membacanya. Tinggalkan juga ruang untuk arduino dan kabel anda di dalamnya. CATATAN: Semasa anda membina laci, tinggalkan lubang di dalamnya supaya servo anda dapat menghidupkan dan mengunci laci.
Langkah 2: Pendawaian
Langkah ini boleh menjadi rumit kerana anda perlu memasang wayar di tempat yang tepat atau elektronik tidak berfungsi. Saya tidak mempunyai gambarajah pendawaian, tetapi saya akan memberitahu anda masing-masing akan pergi. Pendawaian hanya untuk arduino uno. Anda mesti mencari untuk memasang wayar jika anda menggunakan arduino mega atau nano. Sekiranya anda tidak menggunakan semua elektron yang saya ada, anda boleh melangkau pendawaian itu.
Pengimbas cap jari: wayar hijau: Kawat putih D2: Kawat hitam D3: Kawat merah GND: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Suis = D4
pengimbas kad rfid: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
Skrin lcd: 5V = 5V GND = GND sda = A4 sck = A5
Servo: wayar merah: 5V Kawat coklat: Kawat kuning GND: D6
CATATAN: JANGAN MEMASANG RFID CARD SCANNER DALAM 5V. JIKA ANDA LAKUKAN, ITU AKAN BREAK !!!
Anda mungkin tertanya-tanya mengapa saya mengatakan untuk memasang kuasa joystick ke 3.3V apabila ia mengatakan 5V di sebelah. Ini kerana servo, skrin, dan pengimbas cap jari memerlukan 5V. Sekiranya anda menambahkan kayu bedik, elektronik mungkin tidak berfungsi kerana semuanya memerlukan 5V. Joystick akan tetap berfungsi dengan 3.3V. Ia hanya nilai maksimum tidak akan 1023, ia akan menjadi ~ 670.
Langkah 3: Memuat turun Perpustakaan
Dalam projek ini, anda memerlukan 6 perpustakaan untuk menggunakan semua elektronik. 1 untuk servo, 1 untuk sensor cap jari, 2 untuk pengimbas kad rfid, dan 2 untuk skrin. Joystick tidak memerlukan perpustakaan. Sekarang, apa itu perpustakaan? Ini pada dasarnya adalah fail yang menyimpan banyak kod yang boleh anda gunakan dalam projek anda dengan perintah mudah. Untuk mendapatkan perpustakaan ini, anda perlu pergi ke tempat yang dipanggil GitHub. Sekiranya anda tahu cara memuat turun dan membuka zip pustaka, pergi ke pautan di bawah untuk memuat turun. Sekiranya anda tidak tahu caranya, anda boleh pergi ke arahan saya yang membincangkan cara memuat turun perpustakaan pada langkah 3:
atau cari video youtube mengenai cara memuat turun pustaka arduino dari GitHub
HUBUNGAN KE LIRARI:
Servo
sensor cap jari:
spi
sensor kad rfid
perpustakaan skrin 1
perpustakaan skrin 2
Langkah 4: Menyiapkan Sensor Cap Jari dan Sensor Kad Rfid
Langkah ini membincangkan mengenai cara memasang sensor cap jari dan sensor kad rfid. Kecuali anda sudah menggunakan sensor cap jari anda, anda perlu menunjukkan seperti apa cap jari anda sehingga dapat menyimpannya dalam ingatannya. Walaupun anda telah menggunakannya sebelumnya, anda mungkin masih boleh melakukan langkah ini. Saya akan memberitahu anda bagaimana untuk melakukannya secara ringkas, tetapi jika tidak masuk akal, pergi ke pautan yang sama yang boleh diarahkan pada langkah terakhir. Ia mengatasinya dengan baik. Asas hanya buka idea arduino. Pergi ke fail> contoh> sensor cap jari adafruit> daftar. Muat naik kod ke arduino, buka monitor bersiri, dan ikuti langkah-langkah yang diberitahu kepada anda. Apabila ia memberitahu anda untuk memberikannya nombor. Taipkan 1 #.
Sekarang untuk kad rfid, langkah ini cukup mudah. Buka idea arduino. Pergi ke fail> contoh> mfrc522> baca data peribadi. Muat naik ke arduino dan buka monitor bersiri. Imbas kad atau rantai kunci yang anda mahu gunakan yang disertakan dengan sensor anda. Kemudian ia akan memberi anda beberapa maklumat. Cari ID kad itu akan menjadi 4 set 2 digit. Sesuatu seperti ini: AB 45 2Y 45 tetapi kod anda akan berbeza. Tuliskan ini pada sehelai kertas. Anda akan memerlukannya lagi kemudian. Itu sahaja untuk langkah ini.
Langkah 5: KOD
Ini akan menjadi langkah paling sukar bagi kebanyakan anda, tetapi cukup mudah. Pertama salin dan tampal kod ke dalam idea arduino dari bawah. Kedua, edit 2 bahagian yang mengatakan EDIT KOD. 1 bahagian untuk pengimbas kad, 1 bahagian untuk kayu bedik. Langkah-langkah ini tidak boleh dilangkau. Setelah selesai, muat naik kod ke arduino!
#include #include Fingerprint.h>
#sertakan
#sertakan
#sertakan
#sertakan
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 jari = Adafruit_Fingerprint (& mySerial);
Servo servo;
char d1;
char d2;
char d3;
char d4;
batal persediaan () {
servo.attach (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
sementara (! bersiri);
SPI.begin ();
mfrc522. PCD_Init ();
kelewatan (4);
mfrc522. PCD_DumpVersionToSerial ();
kelewatan (100);
Serial.println ("\ n / nMenguji ujian mengesan jari");
jari.begin (57600);
kelewatan (5);
jika (finger.verifyPassword ()) {
Serial.println ("Semua sistem berfungsi,");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Sila imbas jari");
} lain {
Serial.println ("RALAT: Sensor cap jari tidak dijumpai!");
lcd.setCursor (0, 0);
lcd.print ("RALAT: Cetakan jari");
lcd.setCursor (1, 1);
lcd.print ("sensor tidak dijumpai!");
sementara (1) {kelewatan (1); }
}
jari.getTemplateCount ();
Serial.print ("Sensor mengandungi"); Serial.print (finger.templateCount); Serial.println ("templat"); Serial.println ("Menunggu jari yang sah …"); }
void (* resetFunc) (void) = 0;
gelung kosong () {
getFingerprintIDez ();
kelewatan (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
beralih (p) {
kes FINGERPRINT_OK:
Serial.println ("Gambar diambil");
rehat;
kes FINGERPRINT_NOFINGER:
Serial.println ("Tidak ada jari yang dikesan");
pulangan p;
kes FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kesalahan komunikasi");
pulangan p;
kes FINGERPRINT_IMAGEFAIL:
Serial.println ("Kesalahan pengimejan");
pulangan p;
lalai:
Serial.println ("Ralat tidak diketahui");
pulangan p;
}
p = jari.image2Tz ();
beralih (p) {
kes FINGERPRINT_OK:
Serial.println ("Imej ditukar");
rehat;
kes FINGERPRINT_IMAGEMESS:
Serial.println ("Gambar terlalu tidak kemas");
pulangan p;
kes FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kesalahan komunikasi");
pulangan p;
kes FINGERPRINT_FEATUREFAIL:
Serial.println ("Tidak dapat menemui ciri cap jari");
pulangan p;
kes FINGERPRINT_INVALIDIMAGE:
Serial.println ("Tidak dapat menemui ciri cap jari");
pulangan p;
lalai:
Serial.println ("Ralat tidak diketahui");
pulangan p;
}
p = finger.fingerFastSearch ();
jika (p == FINGERPRINT_OK) {
Serial.println ("Menemui padanan cetak!");
} lain jika (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Kesalahan komunikasi");
pulangan p;
} lain jika (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Tidak menemui padanan");
pulangan p;
} lain {
Serial.println ("Ralat tidak diketahui");
pulangan p;
}
Serial.print ("Found ID #"); Serial.print (finger.fingerID);
Serial.print ("dengan keyakinan"); Serial.println (jari.keyakinan);
mengembalikan jari.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
jika (p! = FINGERPRINT_OK) kembali -1;
p = jari.image2Tz ();
jika (p! = FINGERPRINT_OK) kembali -1;
p = finger.fingerFastSearch ();
jika (p! = FINGERPRINT_OK) kembali -1;
Serial.print ("Found ID #"); Serial.print (finger.fingerID);
Serial.print ("dengan keyakinan"); Serial.println (jari.keyakinan);
jika (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Jari diterima,");
lcd.setCursor (2, 0);
lcd.print ("sekarang kad imbasan …");
lcd.setCursor (0, 3);
lcd.print ("===================>");
sementara (! mfrc522. PICC_IsNewCardPresent ());
sementara (! mfrc522. PICC_ReadCardSerial ());
jika (mfrc522.uid.uidByte [0] == 0x92 && // ======================== KOD EDIT ======== ==============
mfrc522.uid.uidByte [1] == 0xAB && // Ambil sekeping kertas dengan ID di atasnya, terdapat 4 set 2 digit
mfrc522.uid.uidByte [2] == 0x90 && // Lihat kodnya, lihat di mana tertera 0x92, 0xAB, 0x90, 0x1c? Masukkan masing-masing
mfrc522.uid.uidByte [3] == 0x1C) {// bahagian 2 digit selepas 0x. Contohnya, bahagian ID menyatakan
lcd.clear (); // 3E, kemudian masukkan 3E selepas 0x untuk menjadikan 0x3E. Lakukan ini untuk setiap bahagian
lcd.setCursor (3, 0);
lcd.print ("Akhirnya, masukkan");
lcd.setCursor (1, 1);
lcd.print ("kata laluan kayu bedik");
manakala (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); jika (analogRead (A2) <= 100) {
d1 = L;
}
jika (analogRead (A2)> = 670) {
d1 = R;
}
jika (analogRead (A3) <= 100) {
d1 = U;
}
jika (analogRead (A3)> = 670) {
d1 = D;
}
kelewatan (500);
manakala (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
jika (analogRead (A2) <= 100) {
d2 = L;
}
jika (analogRead (A2)> = 670) {
d2 = R;
}
jika (analogRead (A3) <= 100) {
d2 = U;
}
jika (analogRead (A3)> = 670) {
d2 = D;
}
kelewatan (500);
manakala (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
jika (analogRead (A2) <= 100) {
d3 = L;
}
jika (analogRead (A2)> = 670) {
d3 = R;
}
jika (analogRead (A3) <= 100) {
d3 = U;
}
jika (analogRead (A3)> = 670) {
d3 = D;
}
kelewatan (500);
sementara (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
jika (analogRead (A2) <= 100) {
d4 = L;
}
jika (analogRead (A2)> = 670) {
d4 = R;
}
jika (analogRead (A3) <= 100) {
d4 = U;
}
jika (analogRead (A3)> = 670) {
d4 = D;
}
kelewatan (500);
jika (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDIT KOD ====== ================
lcd.clear (); // Bahagian ini adalah sekiranya anda dapat mengedit kata laluan dengan kayu bedik
lcd.setCursor (2, 0); // kata laluan ditetapkan ke kiri, atas kiri, kanan. Sekiranya anda mahu berubah
lcd.print ("Akses diberikan!"); // itu, letakkan L untuk kiri, R untuk kanan, U untuk atas, atau D untuk turun di salah satu
lcd.setCursor (2, 1); // 4 bahagian dengan huruf selepas tanda ==.
lcd.print ("Laci tidak dikunci.");
lcd.setCursor (2, 2);
lcd.print ("Apabila selesai, bergerak");
lcd.setCursor (1, 3);
lcd.print ("joystick untuk memuat semula");
servo.write (90);
manakala (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("Laci dikunci");
kelewatan (3000);
tetapkan semulaFunc ();
} lain {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESS DENIED !!!");
lcd.setCursor (0, 2);
lcd.print ("Memulakan semula sistem …");
kelewatan (3000);
tetapkan semulaFunc ();
}
} lain {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESS DENIED !!!");
lcd.setCursor (0, 2);
lcd.print ("Memulakan semula sistem …");
kelewatan (3000);
tetapkan semulaFunc ();
}
} lain {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESS DENIED !!!");
lcd.setCursor (0, 2);
lcd.print ("Memulakan semula sistem …");
kelewatan (3000);
tetapkan semulaFunc ();
}
mengembalikan jari.fingerID; }
Langkah 6: Selesaikan
Satu perkara yang saya terlupa untuk memberitahu anda, baik 2 perkara ialah saya membina ini sebelum saya mengambil gambar, jadi saya tidak dapat menunjukkan kepada anda bagaimana saya membina kotak itu. Yang lain adalah disyorkan untuk memusingkan bahagian servo ke bahagian yang berpusing. Sekiranya tidak, seseorang boleh menarik laci sambil dikunci dan mengeluarkannya. Tetapi sebelum anda memasangnya, cari tempat yang tepat untuk meletakkannya kerana servo beralih ke tahap tertentu. Atau anda boleh menukarnya dalam kod. Sekiranya sebilangan elektronik bertindak lucu, anda mungkin ingin mencari cara lain untuk mendapatkan 5V untuk sebilangan dari mereka. Saya perhatikan ketika pengimbas cap jari saya berkedip, layar akan sedikit berkelip dengannya, dan servo akan mengeluarkan suara. Apabila servo bergerak, skrin akan redup. Saya harap anda menikmati projek ini! Sekiranya anda mempunyai sebarang pertanyaan, tinggalkan di komen. Saya tidak banyak mengajar, tetapi saya akan menjawabnya secepat mungkin!
Disyorkan:
Corona Safe: Tekan Penjimatan Air Automatik: 6 Langkah
Corona Safe: Tekan penjimatan air automatik: Kita semua mesti mencuci tangan setiap saat untuk menyingkirkan virus dan bakteria khas untuk virus Corona kita perlu mencuci tangan selama 20 saat untuk menyingkirkannya sepenuhnya. Dispenser sabun atau tombol paip mungkin tidak perlu menjadi kebersihan atau
Petua Stadus IPad - (Cara Menghidupkan Bahagian Kecil pada Jet Lathe), Saya Membuat Ini di Tech Shop !: 7 Langkah
Petua Stadus IPad - (Cara Menghidupkan Bahagian Kecil pada Mesin Pelarik Jet), Saya Membuat Ini di Kedai Teknikal !: Buat hujung tembaga ini untuk memegang penahan getah stylus! Ini adalah bahagian paling sukar untuk membuat stylus kapasitif anda sendiri! Saya memerlukan hujung tembaga untuk menahan penahan getah untuk stylus sensitif terhadap tekanan yang saya bangunkan. Instruksional ini akan menunjukkan
B-Safe, Safe Portable: 8 Langkah (dengan Gambar)
B-Safe, Safe Portable: *** 4 September 2019: Saya memuat naik fail 3D baru kotak itu sendiri. Nampaknya kunci saya terlalu tinggi 10 mm untuk penutupan yang baik *** Masalahnya Bayangkan ini: Anda bangun suatu pagi dan cuaca sangat baik. Anda mahu pergi ke pantai. Kerana anda tidak
Arduino 101: Kursus Dari Tech Guy: 4 Langkah
Arduino 101: Kursus Dari Tech Guy: Saya harap, banyak orang, terutama pemula, yang ingin menyelami dunia Arduino, akan mengetahui perkara ini dan artikel / Arahan saya yang lain (yang akan saya hantar secara berkala) berguna . Ini tidak seperti pelajaran Salin- & Tampal biasa. Ia
Tutup Fotografi Hidupan Liar Tanpa Peralatan Hi-Tech. Kemas kini: 7 Langkah (dengan Gambar)
Tutup Fotografi Hidupan Liar Tanpa Peralatan Hi-Tech. Kemas kini: Kembali pada tahun 60-an & Pada tahun 70-an ketika saya masih kecil, kami menjalani gaya hidup yang berbeza untuk kebanyakan anak-anak hari ini, ketika berusia empat tahun kami bergerak dari maisonette kami di atas The Broadway jalan raya yang sibuk di Loughton Essex ke Stevenage sebuah bandar baru di Hertfordshire