Mục lục:
- Quân nhu
- Bước 1: Xây dựng một hộp
- Bước 2: Lên dây
- Bước 3: Tải xuống thư viện
- Bước 4: Thiết lập cảm biến vân tay và cảm biến thẻ Rfid
- Bước 5: MÃ SỐ
- Bước 6: Kết thúc
Video: Arduino High Tech Safe: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Đây là két an toàn công nghệ cao arduino của tôi. Bạn phải quét ngón tay, quét thẻ, sau đó nhập mật khẩu 4 chữ số để mở khóa ngăn kéo. Dự án này không được khuyến khích cho người mới bắt đầu vì nó rất tiên tiến. Code dài, nhưng tôi sẽ chia sẻ nó trong dự án này. Chi phí là khoảng $ 75 nếu bạn xây dựng cùng một chiếc két sắt như tôi. Dự án này cũng có thể mất 1-3 ngày để hoàn thành. Vậy hãy bắt đầu!
Quân nhu
Để xây dựng két sắt giống như của tôi, bạn sẽ cần:
Arduino (Nên dùng Uno vì tôi không có các bước cho arduino mega hoặc nano. Nhưng bạn vẫn có thể sử dụng chúng)
breadboard
servo
dây nhảy
cần điều khiển
20 * 4 (bạn có thể sử dụng 16 * 4, nhưng bạn sẽ phải thay đổi mã)
máy quét dấu vân tay
mfrc522 máy quét thẻ rfid
một xô chân
Bước 1: Xây dựng một hộp
Trước tiên, bạn sẽ cần một chiếc hộp để đặt các thiết bị điện tử của mình vào. Bạn có thể sử dụng legos, hộp in 3d hoặc thậm chí là bìa cứng! (Mặc dù việc này có thể khó hơn) Đừng quên khoét lỗ để làm ngăn kéo và đồ điện tử của bạn. Nếu bạn đang sử dụng máy quét thẻ rfid, bạn không cần phải đặt lỗ cho nó nếu tường của bạn mỏng. Các thẻ vẫn hoạt động, nhưng bạn phải đặt móc khóa lại để người senor thẻ rfid có thể đọc chúng. Cũng để lại chỗ cho arduino và dây bên trong của bạn. LƯU Ý: Khi bạn tạo ngăn kéo, hãy để lại một lỗ trên đó để servo của bạn có thể quay và khóa ngăn kéo.
Bước 2: Lên dây
Bước này có thể phức tạp vì bạn cần cắm dây vào vị trí chính xác nếu không thiết bị điện tử sẽ không hoạt động. Tôi không có sơ đồ đấu dây, nhưng tôi sẽ cho bạn biết mỗi thứ sẽ đi. Hệ thống dây chỉ dành cho arduino una. Bạn sẽ phải tìm cách đặt dây nếu bạn đang sử dụng arduino mega hoặc nano. Nếu bạn không sử dụng tất cả các điện mà tôi có, bạn có thể bỏ qua hệ thống dây đó.
Máy quét vân tay: dây xanh lá cây: dây trắng D2: dây đen D3: dây đỏ GND: 5V
Cần điều khiển: 5V = 3,3V GND = GND X = A2 Y = A3 Công tắc = D4
máy quét thẻ rfid: 3,3V = 3,3V đầu tiên = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
màn hình LCD: 5V = 5V GND = GND sda = A4 sck = A5
Servo: dây đỏ: 5V Dây nâu: Dây vàng GND: D6
LƯU Ý: KHÔNG CẮM BỘ QUÉT THẺ RFID VÀO 5V. NẾU BẠN LÀM ĐƯỢC, NÓ SẼ THẤT BẠI !!!
Bạn có thể tự hỏi tại sao tôi nói cắm nguồn cần điều khiển thành 3.3V khi nó nói 5V ở bên cạnh. Đó là bởi vì servo, màn hình và máy quét dấu vân tay cần 5V. Nếu bạn thêm cần điều khiển vào đó, thiết bị điện tử có thể không hoạt động vì mọi thứ đều cần nguồn 5V. Cần điều khiển sẽ vẫn hoạt động với 3.3V. Nó chỉ là giá trị tối đa không phải là 1023, nó sẽ là ~ 670.
Bước 3: Tải xuống thư viện
Trong dự án này, bạn sẽ cần 6 thư viện để sử dụng tất cả các thiết bị điện tử. 1 cho servo, 1 cho cảm biến vân tay, 2 cho máy quét thẻ rfid và 2 cho màn hình. Cần điều khiển không cần thư viện. Bây giờ, thư viện là gì? Về cơ bản, nó là một tệp chứa rất nhiều mã mà bạn có thể sử dụng trong dự án của mình bằng các lệnh đơn giản. Để có được các thư viện này, bạn cần đến một nơi có tên là GitHub. Nếu bạn biết cách tải xuống và giải nén thư viện, chỉ cần truy cập các liên kết bên dưới để tải xuống. Nếu bạn không biết cách, bạn có thể truy cập tài liệu hướng dẫn của tôi nói về cách tải xuống thư viện ở bước 3:
hoặc tìm kiếm video trên youtube về cách tải xuống thư viện arduino từ GitHub
LIÊN KẾT VỚI CÁC CHIM:
Servo
cảm biến vân tay:
spi
cảm biến thẻ rfid
thư viện màn hình 1
thư viện màn hình 2
Bước 4: Thiết lập cảm biến vân tay và cảm biến thẻ Rfid
Bước này nói về cách thiết lập cảm biến vân tay và cảm biến thẻ rfid. Trừ khi bạn đã sử dụng cảm biến vân tay của mình, bạn sẽ cần cho nó biết vân tay của bạn trông như thế nào để có thể lưu vào bộ nhớ. Ngay cả khi bạn đã sử dụng nó trước đây, có lẽ bạn vẫn nên thực hiện bước này. Tôi sẽ cho bạn biết cách thực hiện ngắn gọn, nhưng nếu nó không hợp lý, hãy truy cập cùng một liên kết hướng dẫn trong bước cuối cùng. Nó đi qua nó rất tốt. Cơ bản chỉ cần mở arduino Ide. Đi tới tệp> ví dụ> cảm biến vân tay adafruit> đăng ký. Tải mã lên arduino, mở màn hình nối tiếp và làm theo các bước mà nó cho bạn biết. Khi nó bảo bạn hãy cho nó một con số. Nhập 1 #.
Bây giờ đối với thẻ rfid, bước này khá dễ dàng. Mở arduino Ide. Đi tới tệp> ví dụ> mfrc522> đọc dữ liệu cá nhân. Tải lên arduino và mở màn hình nối tiếp. Quét thẻ hoặc chuỗi khóa bạn muốn sử dụng đi kèm với cảm biến của bạn. Sau đó, nó sẽ cung cấp cho bạn một số thông tin. Hãy tìm ID của thẻ, nó sẽ có 4 bộ gồm 2 chữ số. Một cái gì đó như thế này: AB 45 2Y 45 nhưng mã của bạn sẽ khác. Viết điều này ra một mảnh giấy. Bạn sẽ cần nó một lần nữa sau này. Đó là nó cho bước này.
Bước 5: MÃ SỐ
Đây sẽ là bước khó nhất đối với hầu hết các bạn, nhưng nó khá đơn giản. Đầu tiên, sao chép và dán mã vào arduino Ide từ bên dưới. Thứ hai, chỉnh sửa 2 phần có ghi CHỈNH SỬA MÃ. 1 phần dành cho máy quét thẻ, 1 phần dành cho phím điều khiển. Không thể bỏ qua các bước này. Sau khi hoàn tất, hãy tải mã lên arduino!
#include #include Fingerprint.h>
#bao gồm
#bao gồm
#bao gồm
#bao gồm
Màn hình LCD LiquidCrystal_I2C (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_Fingerprint ngón tay = Adafruit_Fingerprint (& mySerial);
Servo servo;
ký tự d1;
ký tự d2;
ký tự d3;
ký tự d4;
void setup () {
servo.attach (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
while (! nối tiếp);
SPI.begin ();
mfrc522. PCD_Init ();
chậm trễ (4);
mfrc522. PCD_DumpVersionToSerial ();
chậm trễ (100);
Serial.println ("\ n / n Kiểm tra phát hiện ngón tay quả");
ngón tay.begin (57600);
chậm trễ (5);
if (finger.verifyPassword ()) {
Serial.println ("Tất cả các hệ thống đang hoạt động");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Vui lòng quét ngón tay");
} khác {
Serial.println ("LỖI: Không tìm thấy cảm biến vân tay!");
lcd.setCursor (0, 0);
lcd.print ("LỖI: Dấu vân tay");
lcd.setCursor (1, 1);
lcd.print ("không tìm thấy cảm biến!");
while (1) {delay (1); }
}
finger.getTemplateCount ();
Serial.print ("Cảm biến chứa"); Serial.print (finger.templateCount); Serial.println ("mẫu"); Serial.println ("Đang đợi ngón tay hợp lệ…"); }
void (* resetFunc) (void) = 0;
void loop () {
getFingerprintIDez ();
chậm trễ (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
chuyển đổi (p) {
trường hợp FINGERPRINT_OK:
Serial.println ("Đã chụp ảnh");
nghỉ;
trường hợp FINGERPRINT_NOFINGER:
Serial.println ("Không phát hiện ngón tay");
trả lại p;
trường hợp FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Lỗi giao tiếp");
trả lại p;
trường hợp FINGERPRINT_IMAGEFAIL:
Serial.println ("Lỗi hình ảnh");
trả lại p;
vỡ nợ:
Serial.println ("Lỗi không xác định");
trả lại p;
}
p = ngón tay.image2Tz ();
chuyển đổi (p) {
trường hợp FINGERPRINT_OK:
Serial.println ("Đã chuyển đổi hình ảnh");
nghỉ;
trường hợp FINGERPRINT_IMAGEMESS:
Serial.println ("Hình ảnh quá lộn xộn");
trả lại p;
trường hợp FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Lỗi giao tiếp");
trả lại p;
trường hợp FINGERPRINT_FEATUREFAIL:
Serial.println ("Không thể tìm thấy các tính năng của dấu vân tay");
trả lại p;
trường hợp FINGERPRINT_INVALIDIMAGE:
Serial.println ("Không thể tìm thấy các tính năng của dấu vân tay");
trả lại p;
vỡ nợ:
Serial.println ("Lỗi không xác định");
trả lại p;
}
p = finger.fingerFastSearch ();
if (p == FINGERPRINT_OK) {
Serial.println ("Đã tìm thấy một bản in khớp!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Lỗi giao tiếp");
trả lại p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Không tìm thấy kết quả phù hợp");
trả lại p;
} khác {
Serial.println ("Lỗi không xác định");
trả lại p;
}
Serial.print ("ID Tìm thấy #"); Serial.print (finger.fingerID);
Serial.print ("với độ tin cậy là"); Serial.println (ngón tay. độ tin cậy);
trả lại ngón tay.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
if (p! = FINGERPRINT_OK) trả về -1;
p = ngón tay.image2Tz ();
if (p! = FINGERPRINT_OK) trả về -1;
p = finger.fingerFastSearch ();
if (p! = FINGERPRINT_OK) trả về -1;
Serial.print ("ID Tìm thấy #"); Serial.print (finger.fingerID);
Serial.print ("với độ tin cậy là"); Serial.println (ngón tay. độ tin cậy);
if (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Ngón tay được chấp nhận,");
lcd.setCursor (2, 0);
lcd.print ("bây giờ quét thẻ…");
lcd.setCursor (0, 3);
lcd.print ("===================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== CHỈNH SỬA MÃ ========== ==============
mfrc522.uid.uidByte [1] == 0xAB && // Lấy mảnh giấy có ghi ID trên đó, có 4 bộ gồm 2 chữ số
mfrc522.uid.uidByte [2] == 0x90 && // Nhìn theo mã, xem nơi nó cho biết 0x92, 0xAB, 0x90, 0x1c? Nhập từng
mfrc522.uid.uidByte [3] == 0x1C) {// của phần 2 chữ số sau chữ số 0x. Ví dụ: phần của ID cho biết
lcd.clear (); // 3E, sau đó nhập 3E sau 0x để tạo thành 0x3E. Làm điều này cho từng phần
lcd.setCursor (3, 0);
lcd.print ("Cuối cùng, nhập");
lcd.setCursor (1, 1);
lcd.print ("mật khẩu phím điều khiển");
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (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 = Ư;
}
if (analogRead (A3)> = 670) {
d1 = D;
}
chậm trễ (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d2 = L;
}
if (analogRead (A2)> = 670) {
d2 = R;
}
if (analogRead (A3) <= 100) {
d2 = Ư;
}
if (analogRead (A3)> = 670) {
d2 = D;
}
chậm trễ (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d3 = L;
}
if (analogRead (A2)> = 670) {
d3 = R;
}
if (analogRead (A3) <= 100) {
d3 = Ư;
}
if (analogRead (A3)> = 670) {
d3 = D;
}
chậm trễ (500);
while (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d4 = L;
}
if (analogRead (A2)> = 670) {
d4 = R;
}
if (analogRead (A3) <= 100) {
d4 = Ư;
}
if (analogRead (A3)> = 670) {
d4 = D;
}
chậm trễ (500);
if (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= CHỈNH SỬA MÃ ====== ================
lcd.clear (); // Phần này là bạn có thể chỉnh sửa mật khẩu bằng phím điều khiển
lcd.setCursor (2, 0); // mật khẩu được đặt sang trái, lên trái, phải. Nếu bạn muốn thay đổi
lcd.print ("Đã cấp quyền truy cập!"); // nó, đặt L cho trái, R cho phải, U cho lên hoặc D cho xuống ở bất kỳ
lcd.setCursor (2, 1); // 4 phần có một chữ cái sau dấu ==.
lcd.print ("Đã mở khóa ngăn kéo.");
lcd.setCursor (2, 2);
lcd.print ("Khi xong, di chuyen");
lcd.setCursor (1, 3);
lcd.print ("cần điều khiển để khóa lại");
servo.write (90);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("Đã khóa ngăn kéo");
chậm trễ (3000);
resetFunc ();
}khác{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("TRUY CẬP BỊ TỪ CHỐI !!!");
lcd.setCursor (0, 2);
lcd.print ("Khởi động lại hệ thống…");
chậm trễ (3000);
resetFunc ();
}
}khác{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("TRUY CẬP BỊ TỪ CHỐI !!!");
lcd.setCursor (0, 2);
lcd.print ("Khởi động lại hệ thống…");
chậm trễ (3000);
resetFunc ();
}
}khác{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("TRUY CẬP BỊ TỪ CHỐI !!!");
lcd.setCursor (0, 2);
lcd.print ("Khởi động lại hệ thống…");
chậm trễ (3000);
resetFunc ();
}
trả lại ngón tay.fingerID; }
Bước 6: Kết thúc
Một điều tôi quên nói với bạn, 2 điều là tôi đã xây dựng cái này trước khi tôi chụp ảnh, vì vậy tôi không thể chỉ cho bạn cách tôi xây dựng chiếc hộp. Khác là bạn nên vặn vít phần servo vào phần quay. Nếu bạn không làm vậy, ai đó có thể kéo ngăn kéo trong khi nó bị khóa và kéo mảnh ngăn ra. Nhưng trước khi bạn vặn nó vào, hãy tìm đúng vị trí để đặt nó vào vì servo quay ở một mức độ nhất định. Hoặc bạn có thể chỉ cần thay đổi nó trong mã. Nếu một số thiết bị điện tử hoạt động buồn cười, bạn có thể muốn tìm một cách khác để lấy 5V cho một số thiết bị điện tử đó. Tôi nhận thấy khi máy quét dấu vân tay của tôi nhấp nháy, màn hình sẽ nhấp nháy nhẹ và servo sẽ phát ra tiếng ồn. Khi servo di chuyển, màn hình sẽ mờ đi. Tôi hy vọng bạn thích dự án! Nếu bạn có bất kỳ câu hỏi nào, hãy để lại chúng trong phần bình luận. Tôi không có nhiều hướng dẫn, nhưng tôi sẽ trả lời chúng ngay khi tôi có thể!
Đề xuất:
Mẹo dành cho bút cảm ứng iPad - (Cách xoay các bộ phận nhỏ trên máy tiện phản lực), tôi đã làm điều này tại Tech Shop!: 7 bước
Mẹo dành cho bút cảm ứng dành cho iPad - (Cách xoay các bộ phận nhỏ trên máy tiện phản lực), Tôi đã sản xuất cái này tại Tech Shop !: Làm đầu bằng đồng này để giữ ngòi cao su của bút cảm ứng! Đây là phần khó nhất của việc tạo ra bút cảm ứng điện dung của riêng bạn! Tôi cần một đầu bằng đồng để giữ ngòi cao su cho bút cảm ứng nhạy áp mà tôi đang phát triển. Hướng dẫn này sẽ cho bạn thấy
B-Safe, Két an toàn di động: 8 bước (có hình ảnh)
B-Safe, Két an toàn Di động: *** Ngày 4 tháng 9 năm 2019: Tôi đã tải lên một tệp 3D mới của chính chiếc hộp. Có vẻ như ổ khóa của tôi quá cao 10 mm để đóng tốt *** Vấn đề Hãy tưởng tượng điều này: Bạn thức dậy vào một buổi sáng và thời tiết thật tốt. Bạn muốn đi biển, vì bạn không
Arduino 101: Khóa học từ Tech Guy: 4 bước
Arduino 101: Khóa học từ anh chàng công nghệ: Tôi hy vọng rằng nhiều người, đặc biệt là người mới, những người muốn khám phá thế giới của Arduino, sẽ thấy điều này và các bài viết / Hướng dẫn khác của tôi (mà tôi sẽ đăng thường xuyên) hữu ích Đây sẽ không giống như một bài học Copy- & -Paste thông thường. Nó
Angela's Key Safe: 5 bước
Angela's Key Safe: Lấy cảm hứng từ: https://www.instructables.com/id/Key-Safe/ Một chiếc két sắt có cấu trúc tốt để cất giữ đồ đạc cá nhân của bạn. Tôi đã thực hiện một số điều chỉnh dựa trên phiên bản gốc. Bằng cách thêm 3 mật khẩu khác, " A ", " B ", " C " và &
Quiz Safe: 5 bước
Trắc nghiệm An toàn: Khi điểm kiểm tra của bạn kém, bạn không muốn chia sẻ nó với cha mẹ của mình. Bạn có thể sử dụng nó để đặt giấy thử nghiệm của mình vào hộp. Nếu cha mẹ thấy rằng con cần cuốn sách của mình, cha mẹ sẽ tìm thấy nó. Mật khẩu sẽ mở nó .inspiration từ: https: // www