فهرست مطالب:

Arduino High Tech Safe: 6 مرحله
Arduino High Tech Safe: 6 مرحله

تصویری: Arduino High Tech Safe: 6 مرحله

تصویری: Arduino High Tech Safe: 6 مرحله
تصویری: Logic Gates Learning Kit #2 - Transistor Demo 2024, جولای
Anonim
Arduino High Tech Safe
Arduino High Tech Safe

این گاوصندوق آردوینو با تکنولوژی بالا است. شما باید انگشت خود را اسکن کنید ، کارت خود را اسکن کنید ، سپس یک رمز 4 رقمی وارد کنید تا قفل کشو باز شود. این پروژه برای مبتدیان توصیه نمی شود زیرا بسیار پیشرفته است. کد طولانی است ، اما من آن را در این پروژه به اشتراک می گذارم. اگر شما همان گاوصندوق من را بسازید ، هزینه آن حدود 75 دلار است. تکمیل این پروژه همچنین می تواند 1-3 روز طول بکشد. بنابراین ، بیایید شروع کنیم!

تدارکات

برای ساختن گاوصندوق مشابه من به موارد زیر نیاز دارید:

آردوینو (Uno توصیه می شود زیرا مراحل آردوینو مگا یا نانو را ندارم. اما همچنان می توانید از آنها استفاده کنید)

تخته نان

سروو

سیم های جهنده

جوی استیک

20*4 (می توانید از 16*4 استفاده کنید ، اما باید کد را تغییر دهید)

اسکنر اثر انگشت

mfrc522 اسکنر کارت rfid

یک سطل لگو

مرحله 1: ساخت جعبه

ساختن یک جعبه
ساختن یک جعبه

ابتدا به یک جعبه برای قرار دادن وسایل الکترونیکی خود نیاز دارید. می توانید از لگو ، یک جعبه چاپ سه بعدی یا حتی مقوا استفاده کنید! (گرچه ممکن است این کار سخت تر باشد) فراموش نکنید که برای کشو و وسایل برقی خود در آن سوراخ بگذارید. اگر از اسکنر کارت rfid استفاده می کنید ، اگر دیوارهای شما نازک است ، نیازی به ایجاد سوراخ برای آن ندارید. کارت ها هنوز کار می کنند ، اما باید جاکلیدی ها را ببندید تا سنسور کارت rfid بتواند آنها را بخواند. همچنین فضایی برای آردوینو و سیم های داخل خود بگذارید. توجه: هنگام ساخت کشو ، سوراخی در آن بگذارید تا سروو بتواند کشو را بچرخاند و قفل کند.

مرحله 2: سیم کشی

سیم کشی کردن!
سیم کشی کردن!

این مرحله می تواند پیچیده باشد زیرا شما باید سیم ها را در محل دقیق وصل کنید در غیر اینصورت دستگاه های الکترونیکی کار نمی کنند. من نمودار سیم کشی ندارم ، اما به شما می گویم که هر کدام بروند. سیم کشی فقط برای arduino uno است. اگر از آردوینو مگا یا نانو استفاده می کنید ، باید محل قرارگیری سیم ها را جستجو کنید. اگر از تمام قطعات الکترونیکی موجود در من استفاده نمی کنید ، می توانید از سیم کشی صرف نظر کنید.

اسکنر چاپ انگشت: سیم سبز: سیم سفید D2: سیم سیاه D3: سیم قرمز GND: 5 ولت

جوی استیک: 5V = 3.3V GND = GND X = A2 Y = A3 سوئیچ = D4

rfid اسکن کارت: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10

صفحه LCD: 5V = 5V GND = GND sda = A4 sck = A5

سروو: سیم قرمز: 5 ولت سیم قهوه ای: سیم زرد GND: D6

توجه: اسکنر کارت RFID را به 5 ولت وصل نکنید. اگر این کار را بکنید ، خراب می شود !!!

شاید برای شما این سال پیش آمده باشد که چرا وقتی جوی استیک را به طرف مقابل 5 ولت می گوید ، به برق 3.3 ولت وصل کنید. این به این دلیل است که سروو ، صفحه نمایش و اسکنر اثر انگشت به 5 ولت نیاز دارند. اگر جوی استیک را به آن اضافه کنید ، ممکن است قطعات الکترونیکی کار نکنند زیرا همه چیز به 5 ولت نیاز دارد. جوی استیک همچنان با 3.3 ولت کار می کند. فقط حداکثر مقدار آن 1023 نخواهد بود ، 670 پوند خواهد بود.

مرحله 3: بارگیری کتابخانه ها

در این پروژه ، شما به 6 کتابخانه برای استفاده از تمام وسایل الکترونیکی نیاز دارید. 1 برای سروو ، 1 برای سنسور اثر انگشت ، 2 برای اسکنر کارت rfid و 2 برای صفحه نمایش. جوی استیک نیازی به کتابخانه ندارد. حالا ، کتابخانه چیست؟ این در اصل یک فایل است که دارای کد زیادی است که می توانید با دستورات ساده در پروژه خود استفاده کنید. برای دریافت این کتابخانه ها ، باید به مکانی به نام GitHub بروید. اگر می دانید چگونه کتابخانه ها را بارگیری و از حالت فشرده خارج کنید ، برای بارگیری فقط به پیوندهای زیر بروید. اگر نمی دانید چگونه ، می توانید به دستورالعمل من بروید که در مورد نحوه بارگیری کتابخانه در مرحله 3 صحبت می کند:

یا در مورد نحوه بارگیری کتابخانه arduino از GitHub ویدئوی YouTube را جستجو کنید

پیوندها به کتابخانه ها:

سروو

حسگر اثر انگشت:

spi

سنسور کارت rfid

کتابخانه صفحه 1

کتابخانه صفحه 2

مرحله 4: تنظیم سنسور اثر انگشت و سنسور کارت Rfid

این مرحله در مورد نحوه تنظیم سنسور اثر انگشت و سنسور کارت rfid صحبت می کند. مگر اینکه قبلاً از حسگر اثر انگشت خود استفاده کرده اید ، باید به آن نشان دهید که اثر انگشت شما چگونه است تا بتواند آن را در حافظه خود ذخیره کند. حتی اگر قبلاً از آن استفاده کرده اید ، احتمالاً باید این مرحله را انجام دهید. من نحوه انجام این کار را به طور مختصر به شما می گویم ، اما اگر منطقی نیست در آخرین مرحله به همان لینک قابل آموزش بروید. خیلی خوب از پسش برمیاد ساده فقط ایده آردوینو باز کنید. به پرونده> نمونه ها> حسگر اثر انگشت adafruit> ثبت نام بروید. کد را در arduino بارگذاری کنید ، مانیتور سریال را باز کنید و مراحلی را که به شما می گوید دنبال کنید. وقتی به شما می گوید یک عدد بدهید. 1#را تایپ کنید

در مورد کارت rfid ، این مرحله بسیار آسان است. آردوینو ایده را باز کنید به فایل> نمونه ها> mfrc522> خواندن داده های شخصی بروید. بارگذاری در arduino و باز کردن مانیتور سریال. کارت یا جا کلیدی را که می خواهید استفاده کنید همراه با سنسور خود اسکن کنید. سپس به شما اطلاعاتی می دهد. به دنبال شناسه کارت باشید 4 مجموعه 2 رقمی خواهد بود. چیزی شبیه به این: AB 45 2Y 45 اما کد شما متفاوت خواهد بود. این را روی یک تکه کاغذ بنویسید. بعداً دوباره به آن نیاز خواهید داشت. همین برای این مرحله.

مرحله 5: کد

این سخت ترین مرحله برای اکثر شما خواهد بود ، اما بسیار ساده است. ابتدا کد را از زیر در arduino ide کپی و جایگذاری کنید. دوم ، 2 قسمتی را که در آن EDIT CODE آمده است ویرایش کنید. 1 بخش مربوط به اسکنر کارت ، 1 قسمت جوی استیک است. این مراحل را نمی توان رد کرد. پس از اتمام کار ، کد را در arduino بارگذاری کنید!

#شامل #شامل انگشت نگاری. h>

#عبارتند از

#عبارتند از

#عبارتند از

#عبارتند از

LiquidCrystal_I2C ال سی دی (0x27 ، 2 ، 1 ، 0 ، 4 ، 5 ، 6 ، 7 ، 3 ، POSITIVE) ؛

#تعریف RST_PIN 9

#SS_PIN 10 را تعریف کنید

MFRC522 mfrc522 (SS_PIN ، RST_PIN) ؛

SoftwareSerial mySerial (2 ، 3) ؛

Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial)؛

سرو سرو ؛

char d1؛

char d2؛

char d3؛

char d4؛

void setup () {

servo.attach (6)؛

servo.write (170)؛

lcd.begin (20 ، 4) ؛

Serial.begin (9600)؛

در حالی که (! سریال) ؛

SPI.begin ()؛

mfrc522. PCD_Init ()؛

تأخیر (4) ؛

mfrc522. PCD_DumpVersionToSerial ()؛

تأخیر (100) ؛

Serial.println ("\ n / n آزمایش تشخیص انگشت ادفروت")؛

finger.begin (57600) ؛

تأخیر (5) ؛

if (finger.verifyPassword ()) {

Serial.println ("همه سیستم ها کار می کنند ،") ؛

lcd.clear ()؛

lcd.setCursor (1 ، 0) ؛

lcd.print ("لطفاً انگشت را اسکن کنید") ؛

} دیگری {

Serial.println ("ERROR: سنسور چاپ انگشت پیدا نشد!")؛

lcd.setCursor (0 ، 0) ؛

lcd.print ("ERROR: Finger print") ؛

lcd.setCursor (1 ، 1) ؛

lcd.print ("سنسور پیدا نشد!") ؛

در حالی که (1) {تاخیر (1)؛ }

}

finger.getTemplateCount ()؛

Serial.print ("سنسور شامل") ؛ Serial.print (finger.templateCount) ؛ Serial.println ("قالب") ؛ Serial.println ("در انتظار انگشت معتبر …") ؛ }

void (* resetFunc) (void) = 0؛

حلقه خالی () {

getFingerprintIDez ()؛

تأخیر (50) ؛

}

uint8_t getFingerprintID () {

uint8_t p = finger.getImage ()؛

تغییر (p) {

مورد FINGERPRINT_OK:

Serial.println ("تصویر گرفته شده")؛

زنگ تفريح؛

مورد FINGERPRINT_NOFINGER:

Serial.println ("انگشتی شناسایی نشد")؛

بازگشت p؛

مورد FINGERPRINT_PACKETRECIEVEERR:

Serial.println ("خطای ارتباطی") ؛

بازگشت p؛

مورد FINGERPRINT_IMAGEFAIL:

Serial.println ("خطای تصویر") ؛

بازگشت p؛

پیش فرض:

Serial.println ("خطای ناشناخته") ؛

بازگشت p؛

}

p = finger.image2Tz ()؛

تغییر (p) {

مورد FINGERPRINT_OK:

Serial.println ("تصویر تبدیل شد")؛

زنگ تفريح؛

مورد FINGERPRINT_IMAGEMESS:

Serial.println ("تصویر خیلی کثیف است")؛

بازگشت p؛

مورد FINGERPRINT_PACKETRECIEVEERR:

Serial.println ("خطای ارتباطی") ؛

بازگشت p؛

مورد FINGERPRINT_FEATUREFAIL:

Serial.println ("ویژگی های اثر انگشت پیدا نشد")؛

بازگشت p؛

مورد FINGERPRINT_INVALIDIMAGE:

Serial.println ("ویژگی های اثر انگشت پیدا نشد")؛

بازگشت p؛

پیش فرض:

Serial.println ("خطای ناشناخته") ؛

بازگشت p؛

}

p = finger.fingerFastSearch ()؛

if (p == FINGERPRINT_OK) {

Serial.println ("مطابقت چاپی پیدا شد!") ؛

} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("خطای ارتباطی") ؛

بازگشت p؛

} else if (p == FINGERPRINT_NOTFOUND) {

Serial.println ("مطابقت پیدا نکرد")؛

بازگشت p؛

} دیگری {

Serial.println ("خطای ناشناخته") ؛

بازگشت p؛

}

Serial.print ("شناسه پیدا شد") ؛ Serial.print (finger.fingerID) ؛

Serial.print ("با اطمینان از") ؛ Serial.println (انگشت اعتماد)؛

بازگشت انگشت. FingerID؛

}

int getFingerprintIDez () {

uint8_t p = finger.getImage ()؛

if (p! = FINGERPRINT_OK) return -1؛

p = finger.image2Tz ()؛

if (p! = FINGERPRINT_OK) return -1؛

p = finger.fingerFastSearch ()؛

if (p! = FINGERPRINT_OK) return -1؛

Serial.print ("شناسه پیدا شد")؛ Serial.print (finger.fingerID) ؛

Serial.print ("با اطمینان از") ؛ Serial.println (انگشت اعتماد)؛

if (finger.fingerID == 1) {

lcd.clear ()؛

lcd.setCursor (2 ، 0) ؛

lcd.print ("انگشت مورد قبول است") ؛

lcd.setCursor (2 ، 0) ؛

lcd.print ("اکنون کارت را اسکن کنید …") ؛

lcd.setCursor (0 ، 3) ؛

lcd.print ("==================>>)؛

در حالی که (! mfrc522. PICC_IsNewCardPresent ()) ؛

while (! mfrc522. PICC_ReadCardSerial ()) ؛

if (mfrc522.uid.uidByte [0] == 0x92 && // ====================== ویرایش کد ======== ==============

mfrc522.uid.uidByte [1] == 0xAB && // آن کاغذ را با شناسنامه بردارید ، 4 مجموعه 2 رقمی وجود داشت

mfrc522.uid.uidByte [2] == 0x90 && // به کد نگاه کنید ، ببینید کجا نوشته شده است 0x92 ، 0xAB ، 0x90 ، 0x1c؟ هر کدام را وارد کنید

mfrc522.uid.uidByte [3] == 0x1C) {// بخش 2 رقمی بعد از 0x. به عنوان مثال ، بخش شناسه می گوید

lcd.clear ()؛ // 3E ، سپس 3E را بعد از 0x وارد کنید تا 0x3E شود. این کار را برای هر بخش انجام دهید

lcd.setCursor (3 ، 0) ؛

lcd.print ("در نهایت ، وارد شوید") ؛

lcd.setCursor (1 ، 1) ؛

lcd.print ("رمز عبور جوی استیک") ؛

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 = U ؛

}

if (analogRead (A3)> = 670) {

d1 = D ؛

}

تأخیر (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 = U ؛

}

if (analogRead (A3)> = 670) {

d2 = D ؛

}

تأخیر (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 = U ؛

}

if (analogRead (A3)> = 670) {

d3 = D ؛

}

تأخیر (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 = U ؛

}

if (analogRead (A3)> = 670) {

d4 = D ؛

}

تأخیر (500) ؛

if (d1 == L && d2 == U && d3 == L && d4 == R) {// ================ ویرایش کد ====== =================

lcd.clear ()؛ // این قسمت مربوط به جایی است که می توانید رمز عبور را با جوی استیک ویرایش کنید

lcd.setCursor (2 ، 0) ؛ // رمز عبور روی چپ ، بالا چپ ، راست تنظیم شده است. اگر می خواهید تغییر دهید

lcd.print ("دسترسی داده شد!") ؛ // it ، در سمت چپ یک L برای سمت چپ ، R برای راست ، U برای بالا یا D برای پایین قرار دهید

lcd.setCursor (2 ، 1) ؛ // 4 قسمت با یک حرف بعد از علامت ==.

lcd.print ("کشو قفل شده است.")؛

lcd.setCursor (2 ، 2) ؛

lcd.print ("وقتی کار تمام شد ، حرکت کنید") ؛

lcd.setCursor (1 ، 3) ؛

lcd.print ("جوی استیک برای جابجایی مجدد") ؛

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 ("کشو قفل شده است") ؛

تاخیر (3000) ؛

resetFunc ()؛

} دیگری {

lcd.clear ()؛

lcd.setCursor (2 ، 0) ؛

lcd.print ("دسترسی انکار شد !!!")؛

lcd.setCursor (0 ، 2) ؛

lcd.print ("راه اندازی مجدد سیستم …") ؛

تاخیر (3000) ؛

resetFunc ()؛

}

} دیگری {

lcd.clear ()؛

lcd.setCursor (2 ، 0) ؛

lcd.print ("دسترسی انکار شد !!!")؛

lcd.setCursor (0 ، 2) ؛

lcd.print ("راه اندازی مجدد سیستم …") ؛

تاخیر (3000) ؛

resetFunc ()؛

}

} دیگری {

lcd.clear ()؛

lcd.setCursor (2 ، 0) ؛

lcd.print ("دسترسی انکار شد !!!") ؛

lcd.setCursor (0 ، 2) ؛

lcd.print ("راه اندازی مجدد سیستم …") ؛

تاخیر (3000) ؛

resetFunc ()؛

}

بازگشت انگشت. FingerID؛ }

مرحله ششم: تمام کنید

یک نکته را فراموش کردم به شما بگویم ، خوب 2 نکته این است که من قبل از عکس گرفتن این را ساختم ، بنابراین نمی توانم نحوه ساخت جعبه را به شما نشان دهم. مورد دیگر این است که توصیه می شود قسمت سرو را روی قسمتی که می چرخد پیچ کنید. اگر این کار را نکنید ، کسی می تواند کشو را در حالی که قفل شده است بکشد و قطعه را بیرون بکشد. اما قبل از خراب کردن آن ، محل مناسب را برای قرار دادن آن پیدا کنید زیرا سروو به میزان مشخصی می چرخد. یا فقط می توانید آن را در کد تغییر دهید. اگر برخی از وسایل الکترونیکی خنده دار عمل می کنند ، ممکن است بخواهید راهی متفاوت برای دریافت 5V برای برخی از آنها پیدا کنید. متوجه شدم که اسکنر اثر انگشت من چشمک می زند ، صفحه نمایش با آن کمی چشمک می زند و سروو صدا ایجاد می کند. وقتی سروو حرکت می کرد ، صفحه تاریک می شد. امیدوارم از پروژه لذت برده باشید! اگر س questionsالی دارید ، آنها را در نظرات بنویسید. من زیاد دستورالعمل ندارم ، اما در اسرع وقت به آنها پاسخ خواهم داد!

توصیه شده: