جدول المحتويات:
- اللوازم
- الخطوة 1: بناء صندوق
- الخطوة 2: توصيل الأسلاك
- الخطوة 3: تنزيل المكتبات
- الخطوة 4: إعداد مستشعر بصمة الإصبع ومستشعر بطاقة RFID
- الخطوة 5: الكود
- الخطوة 6: الإنهاء
فيديو: اردوينو عالية التقنية الآمنة: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
هذا هو بلدي اردوينو التكنولوجيا العالية الآمن. يجب عليك مسح إصبعك ضوئيًا ، ومسح بطاقتك ضوئيًا ، ثم إدخال كلمة مرور مكونة من 4 أرقام لإلغاء قفل الدرج. لا ينصح بهذا المشروع للمبتدئين لأنه متقدم جدًا. الرمز طويل ، لكنني سأشاركه في هذا المشروع. تبلغ التكلفة حوالي 75 دولارًا إذا قمت ببناء نفس الخزنة مثلي. قد يستغرق هذا المشروع أيضًا من 1-3 أيام حتى يكتمل. لذلك دعونا نبدأ!
اللوازم
لبناء نفس الخزنة الخاصة بي ، ستحتاج إلى:
Arduino (يوصى باستخدام Uno لأنني لا أملك خطوات لـ arduino mega أو nano. ولكن لا يزال بإمكانك استخدامها)
اللوح
المؤازرة
أسلاك العبور
عصا التحكم
20 * 4 (يمكنك استخدام 16 * 4 ، لكن سيتعين عليك تغيير الرمز)
ماسح بصمة الأصبع
mfrc522 الماسح الضوئي لبطاقة تتفاعل
دلو من ليغو
الخطوة 1: بناء صندوق
ستحتاج أولاً إلى صندوق لوضع إلكترونياتك فيه. يمكنك استخدام ليغو أو صندوق مطبوع ثلاثي الأبعاد أو حتى كرتون! (على الرغم من أن هذا قد يكون أصعب) لا تنس أن تضع فيه ثقوبًا للدرج والإلكترونيات الخاصة بك. إذا كنت تستخدم الماسح الضوئي لبطاقة rfid ، فلن تحتاج إلى عمل ثقب لذلك إذا كانت جدرانك رقيقة. لا تزال البطاقات تعمل ، ولكن يجب عليك إغلاق سلاسل المفاتيح حتى يتمكن مُرسِل بطاقة rfid من قراءتها. اترك أيضًا مساحة لاردوينو والأسلاك بالداخل. ملاحظة: عندما تقوم ببناء الدرج ، اترك فتحة فيه حتى تتمكن المؤازرة الخاصة بك من الدوران وقفل الدرج.
الخطوة 2: توصيل الأسلاك
قد تكون هذه الخطوة معقدة لأنك تحتاج إلى توصيل الأسلاك في المكان المحدد وإلا فلن تعمل الإلكترونيات. ليس لدي رسم تخطيطي للأسلاك ، لكنني سأخبرك بأن كل واحد يذهب. الأسلاك مخصصة لاردوينو أونو فقط. سيكون عليك البحث عن وضع الأسلاك إذا كنت تستخدم اردوينو ميجا أو نانو. إذا كنت لا تستخدم كل الإلكترونات التي أملكها ، فيمكنك فقط تخطي تلك الأسلاك.
ماسح بصمات الأصابع: السلك الأخضر: السلك الأبيض D2: السلك الأسود D3: السلك الأحمر GND: 5V
عصا التحكم: 5V = 3.3V GND = GND X = A2 Y = A3 Switch = 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
المؤازرة: السلك الأحمر: 5V السلك البني: السلك الأصفر GND: D6
ملاحظة: لا تقم بتوصيل الماسح الضوئي لبطاقة RFID بجهد 5 فولت. إذا قمت بذلك ، فسوف ينكسر !!!
قد تتساءل لماذا قلت لتوصيل قوة عصا التحكم إلى 3.3 فولت عندما تقول 5 فولت على الجانب. ذلك لأن جهاز المسح الضوئي المؤازر والشاشة وبصمات الأصابع يحتاج إلى 5 فولت. إذا أضفت عصا التحكم إلى ذلك ، فقد لا تعمل الإلكترونيات لأن كل شيء يحتاج إلى 5 فولت. ستظل عصا التحكم تعمل مع 3.3 فولت. إنها فقط القيمة القصوى لن تكون 1023 ، وستكون ~ 670.
الخطوة 3: تنزيل المكتبات
في هذا المشروع ، ستحتاج إلى 6 مكتبات لاستخدام جميع الأجهزة الإلكترونية. 1 للمضاعفات ، 1 لمستشعر بصمات الأصابع ، 2 للماسح الضوئي لبطاقة rfid ، و 2 للشاشة. عصا التحكم لا تحتاج إلى مكتبة. الآن ، ما هي المكتبة؟ إنه في الأساس ملف يحتوي على الكثير من التعليمات البرمجية التي يمكنك استخدامها في مشروعك بأوامر بسيطة. للحصول على هذه المكتبات ، عليك الذهاب إلى مكان يسمى GitHub. إذا كنت تعرف كيفية تنزيل المكتبات وفك ضغطها ، فما عليك سوى الانتقال إلى الروابط أدناه للتنزيلات. إذا كنت لا تعرف كيف يمكنك الانتقال إلى التعليمات الخاصة بي والتي تتحدث عن كيفية تنزيل مكتبة في الخطوة 3:
أو ابحث في مقطع فيديو youtube حول كيفية تنزيل مكتبة اردوينو من GitHub
روابط إلى LIRARIES:
سيرفو
مستشعر البصمة:
spi
مستشعر بطاقة rfid
مكتبة الشاشة 1
مكتبة الشاشة 2 https://github.com/fdebrabander/Arduino-L LiquidCrys …
الخطوة 4: إعداد مستشعر بصمة الإصبع ومستشعر بطاقة RFID
تتحدث هذه الخطوة عن كيفية إعداد مستشعر بصمات الأصابع ومستشعر بطاقة rfid. ما لم تكن قد استخدمت بالفعل مستشعر بصمة الإصبع ، فستحتاج إلى إظهار شكل بصمة إصبعك له حتى يتمكن من حفظه في ذاكرته. حتى إذا كنت قد استخدمته من قبل ، فلا يزال من المحتمل أن تقوم بهذه الخطوة. سأخبرك بكيفية القيام بذلك باختصار ، ولكن إذا لم يكن ذلك منطقيًا ، فانتقل إلى نفس الرابط القابل للتوجيه في الخطوة الأخيرة. إنها تتجاوزها بشكل جيد للغاية. الأساسي فقط افتح اردوينو بيئة تطوير متكاملة. انتقل إلى ملف> أمثلة> مستشعر بصمة Adafruit> التسجيل. قم بتحميل الكود إلى arduino ، وافتح الشاشة التسلسلية ، واتبع الخطوات التي تخبرك بها. عندما يخبرك أن تعطيه رقمًا. اكتب 1 #.
الآن بالنسبة لبطاقة rfid ، هذه الخطوة سهلة للغاية. افتح اردوينو بيئة تطوير متكاملة. انتقل إلى ملف> أمثلة> mfrc522> قراءة البيانات الشخصية. تحميل إلى اردوينو وفتح الشاشة التسلسلية. امسح البطاقة أو سلسلة المفاتيح التي تريد استخدامها والتي تأتي مع المستشعر. ثم ستعطيك بعض المعلومات. ابحث عن معرّف البطاقة الذي سيتكون من 4 مجموعات من رقمين. شيء من هذا القبيل: AB 45 2Y 45 لكن الكود الخاص بك سيكون مختلفًا. اكتب هذا على قطعة من الورق. سوف تحتاجه مرة أخرى في وقت لاحق. هذا كل شيء في هذه الخطوة.
الخطوة 5: الكود
ستكون هذه أصعب خطوة لمعظمكم ، لكنها بسيطة جدًا. قم أولاً بنسخ الكود ولصقه في اردوينو بيئة تطوير متكاملة من الأسفل. ثانيًا ، قم بتحرير القسمين حيث يقول EDIT CODE. 1 قسم لماسح البطاقة ، 1 لعصا التحكم. لا يمكن تخطي هذه الخطوات. بمجرد الانتهاء من ذلك ، قم بتحميل الكود إلى اردوينو!
# تضمين # تضمين بصمة الإصبع. h>
#يشمل
#يشمل
#يشمل
#يشمل
LiquidCrystal_I2C lcd (0x27 ، 2 ، 1 ، 0 ، 4 ، 5 ، 6 ، 7 ، 3 ، إيجابي) ؛
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522 (SS_PIN ، RST_PIN) ؛
SoftwareSerial mySerial (2 ، 3) ؛
Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial) ؛
أجهزة مؤازرة
شار d1 ؛
شار d2
شار d3
شار d4
الإعداد باطل(){
مؤازرة (6) ؛
مؤازرة كتابة (170) ؛
lcd.begin (20 ، 4) ؛
Serial.begin (9600) ؛
بينما (! المسلسل) ؛
SPI.begin () ،
mfrc522. PCD_Init () ،
تأخير (4) ؛
mfrc522. PCD_DumpVersionToSerial () ،
تأخير (100) ؛
Serial.println ("\ n / n اختبار كشف الإصبع في Adafruit") ؛
Finger.begin (57600) ؛
تأخير (5) ؛
إذا (finger.verifyPassword ()) {
Serial.println ("جميع الأنظمة تعمل") ؛
lcd.clear () ؛
lcd.setCursor (1 ، 0) ؛
lcd.print ("الرجاء مسح الإصبع") ؛
} آخر {
Serial.println ("خطأ: لم يتم العثور على مستشعر بصمة الإصبع!") ؛
lcd.setCursor (0 ، 0) ؛
lcd.print ("خطأ: بصمة الإصبع") ؛
lcd.setCursor (1 ، 1) ؛
lcd.print ("المستشعر غير موجود!") ؛
بينما (1) {تأخير (1) ؛ }
}
finger.getTemplateCount () ،
Serial.print ("يحتوي المستشعر") ؛ Serial.print (finger.templateCount) ؛ Serial.println ("القوالب") ؛ Serial.println ("انتظار إصبع صالح …")؛ }
باطل (* resetFunc) (باطل) = 0 ؛
حلقة فارغة() {
getFingerprintIDez () ،
تأخير (50) ؛
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage () ؛
التبديل (ع) {
حافظة FINGERPRINT_OK:
Serial.println ("الصورة ملتقطة") ؛
استراحة؛
الحافظة FINGERPRINT_NOFINGER:
Serial.println ("لم يتم اكتشاف إصبع") ؛
عودة ص ؛
الحافظة FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("خطأ اتصال") ؛
عودة ص ؛
الحافظة FINGERPRINT_IMAGEFAIL:
Serial.println ("خطأ في التصوير") ؛
عودة ص ؛
إفتراضي:
Serial.println ("خطأ غير معروف") ؛
عودة ص ؛
}
ع = finger.image2Tz () ؛
التبديل (ع) {
حافظة FINGERPRINT_OK:
Serial.println ("صورة محولة") ؛
استراحة؛
الحافظة FINGERPRINT_IMAGEMESS:
Serial.println ("الصورة شديدة الفوضى") ؛
عودة ص ؛
الحافظة FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("خطأ اتصال") ؛
عودة ص ؛
الحافظة FINGERPRINT_FEATUREFAIL:
Serial.println ("تعذر العثور على ميزات بصمات الأصابع") ؛
عودة ص ؛
الحافظة FINGERPRINT_INVALIDIMAGE:
Serial.println ("تعذر العثور على ميزات بصمات الأصابع") ؛
عودة ص ؛
إفتراضي:
Serial.println ("خطأ غير معروف") ؛
عودة ص ؛
}
p = finger.fingerFastSearch () ؛
إذا (ع == FINGERPRINT_OK) {
Serial.println ("تم العثور على تطابق طباعة!")؛
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("خطأ اتصال") ؛
عودة ص ؛
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println ("لم يتم العثور على تطابق")؛
عودة ص ؛
} آخر {
Serial.println ("خطأ غير معروف") ؛
عودة ص ؛
}
Serial.print ("معرف العثور #") ؛ Serial.print (finger.fingerID) ؛
Serial.print ("مع الثقة في") ؛ Serial.println (Finger.confidence) ؛
عودة الإصبع.
}
int getFingerprintIDez () {
uint8_t p = finger.getImage () ؛
إذا كان (p! = FINGERPRINT_OK) يعود -1 ؛
ع = finger.image2Tz () ؛
إذا كان (p! = FINGERPRINT_OK) يعود -1 ؛
p = finger.fingerFastSearch () ؛
إذا كان (p! = FINGERPRINT_OK) يعود -1 ؛
Serial.print ("معرف العثور #") ؛ Serial.print (finger.fingerID) ؛
Serial.print ("مع الثقة في") ؛ Serial.println (Finger.confidence) ؛
إذا (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 ()) ،
بينما (! mfrc522. PICC_ReadCardSerial ()) ،
إذا (mfrc522.uid.uidByte [0] == 0x92 && // ======================== كود التحرير ======== ==============
mfrc522.uid.uidByte [1] == 0xAB && // خذ هذه القطعة من الورق مع المعرف عليها ، كانت هناك 4 مجموعات من رقمين
mfrc522.uid.uidByte [2] == 0x90 && // انظر إلى الكود ، انظر أين تقول 0x92 ، 0xAB ، 0x90 ، 0x1c؟ أدخل كل
mfrc522.uid.uidByte [3] == 0x1C) {// المقطع المكون من رقمين بعد 0x. على سبيل المثال ، قسم المعرف يقول
lcd.clear () ؛ // 3E ، ثم أدخل 3E بعد 0x لجعل 0x3E. افعل هذا لكل قسم
lcd.setCursor (3 ، 0) ؛
lcd.print ("أخيرًا ، أدخل") ؛
lcd.setCursor (1 ، 1) ؛
lcd.print ("كلمة مرور جويستيك") ؛
بينما (analogRead (A2)> = 100 &&
القراءة التناظرية (A2) <= 670 &&
القراءة التناظرية (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8 ، 4) ؛
lcd.print ("*") ؛ إذا (analogRead (A2) <= 100) {
د 1 = لام ؛
}
إذا (analogRead (A2)> = 670) {
د 1 = ص ؛
}
إذا (analogRead (A3) <= 100) {
د 1 = يو ؛
}
إذا (analogRead (A3)> = 670) {
د 1 = د ؛
}
تأخير (500) ؛
بينما (analogRead (A2)> = 100 &&
القراءة التناظرية (A2) <= 670 &&
القراءة التناظرية (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*") ؛
إذا (analogRead (A2) <= 100) {
د 2 = لام ؛
}
إذا (analogRead (A2)> = 670) {
د 2 = ص ؛
}
إذا (analogRead (A3) <= 100) {
د 2 = يو ؛
}
إذا (analogRead (A3)> = 670) {
د 2 = د ؛
}
تأخير (500) ؛
بينما (analogRead (A2)> = 100 &&
القراءة التناظرية (A2) <= 670 &&
القراءة التناظرية (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*") ؛
إذا (analogRead (A2) <= 100) {
د 3 = لام ؛
}
إذا (analogRead (A2)> = 670) {
د 3 = ص ؛
}
إذا (analogRead (A3) <= 100) {
د 3 = يو ؛
}
إذا (analogRead (A3)> = 670) {
د 3 = د ؛
}
تأخير (500) ؛
بينما (analogRead (A2)> = 10 &&
القراءة التناظرية (A2) <= 670 &&
القراءة التناظرية (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*") ؛
إذا (analogRead (A2) <= 100) {
د 4 = لام ؛
}
إذا (analogRead (A2)> = 670) {
د 4 = ص ؛
}
إذا (analogRead (A3) <= 100) {
د 4 = يو ؛
}
إذا (analogRead (A3)> = 670) {
د 4 = د ؛
}
تأخير (500) ؛
إذا (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= كود التعديل ====== ================
lcd.clear () ؛ // هذا القسم هو المكان الذي يمكنك فيه تعديل كلمة المرور باستخدام عصا التحكم
lcd.setCursor (2 ، 0) ؛ // تم تعيين كلمة المرور على اليسار ، أعلى اليسار ، اليمين. إذا كنت تريد التغيير
lcd.print ("تم منح الوصول!")؛ // ، ضع L لليسار ، R لليمين ، U لأعلى ، أو D لأسفل في أي من
lcd.setCursor (2 ، 1) ؛ // 4 أقسام بحرف بعد علامات ==.
lcd.print ("الدرج مفتوح.") ؛
lcd.setCursor (2 ، 2) ؛
lcd.print ("عند الانتهاء ، تحرك") ؛
lcd.setCursor (1 ، 3) ؛
lcd.print ("عصا التحكم لإعادة القفل") ؛
مؤازرة كتابة (90) ؛
بينما (analogRead (A2)> = 100 &&
القراءة التناظرية (A2) <= 670 &&
القراءة التناظرية (A3)> = 100 &&
analogRead (A3) <= 670) ؛
مؤازرة كتابة (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 () ،
}
عودة الإصبع. }
الخطوة 6: الإنهاء
هناك شيء واحد نسيت أن أخبرك به ، حسنًا شيئين هو أنني قمت ببناء هذا قبل أن ألتقط الصور ، لذلك لم أستطع أن أوضح لك كيف صنعت الصندوق. والآخر هو أنه يوصى بربط جزء مؤازر على الجزء الذي يتحول. إذا لم تقم بذلك ، يمكن لشخص ما سحب الدرج أثناء قفله وسحب القطعة. ولكن قبل تثبيته ، ابحث عن المكان الصحيح الذي تريد وضعه فيه لأن المؤازرة تتحول إلى درجة معينة. أو يمكنك فقط تغييره في الكود. إذا كانت بعض الأجهزة الإلكترونية تعمل بطريقة مضحكة ، فقد ترغب في إيجاد طريقة مختلفة للحصول على 5 فولت لبعضها. لقد لاحظت أنه عندما يومض ماسح بصمات الأصابع ، ستومض الشاشة قليلاً ، وستحدث المؤازرة ضوضاء. عندما تتحرك المؤازرة ، ستصبح الشاشة خافتة. أتمنى أن تكون قد استمتعت بالمشروع! إذا كان لديك أي أسئلة ، اتركها في التعليقات. أنا لست على التعليمات كثيرًا ، لكنني سأجيب عليها بأسرع ما يمكن!
موصى به:
شجرة عيد الميلاد الآمنة: 6 خطوات
شجرة الكريسماس الآمنة: هذه هي مجموعة Starter Kit الكاملة من Elegoo مع Arduino Mega. قبل أيام قليلة ، أرسل إلي Elegoo عدة أدوات وتحداني لبناء مشروع عيد الميلاد معه. تتضمن هذه المجموعة عدة مكونات. Arduino Mega ، أجهزة ، أجهزة استشعار بالموجات فوق الصوتية ، عن بعد
البرمجة الشيئية: إنشاء كائنات ، طريقة التعلم / التدريس / التقنية باستخدام أداة تشكيل الأشكال: 5 خطوات
البرمجة الشيئية: إنشاء كائنات طريقة التعلم / التدريس / التقنية باستخدام Shape Puncher: طريقة التعلم / التدريس للطلاب الجدد في البرمجة الموجهة للكائنات. هذه طريقة للسماح لهم بالتخيل ورؤية عملية إنشاء الكائنات من الفئات. لكمة كبيرة بحجم 2 بوصة من EkTools ؛ الأشكال الصلبة هي الأفضل .2. قطعة من الورق أو ج
مقياس أو علامة مستوى الضوضاء غير الآمنة: 4 خطوات (بالصور)
مقياس مستوى ضوضاء غير آمن أو علامة: أحب النظر إلى المشاريع الإبداعية للناس. الأدوات الحديثة وأمبير. تمنحنا التكنولوجيا العديد من الخيارات الإبداعية. أقوم بتدريس مواد صلبة لطلاب المدارس الثانوية في مدرسة ثانوية في نيوزيلندا ، لذلك فأنا دائمًا أطور & amp؛ تجربة أشياء جديدة. ثي
عن قرب تصوير الحياة البرية بدون معدات عالية التقنية. تحديث: 7 خطوات (بالصور)
عن قرب تصوير الحياة البرية بدون معدات عالية التقنية. تحديث: العودة في الستينيات وأمبير. في السبعينيات عندما كنت طفلاً صغيراً ، كنا نعيش أسلوب حياة مختلفًا عن معظم الأطفال هذه الأيام ، عندما كنت في الرابعة من عمري ، انتقلنا من بيتنا الصغير فوق The Broadway وهو شارع سريع مزدحم في Loughton Essex إلى Stevenage وهي بلدة جديدة في Hertfordshire
أرخص اردوينو -- أصغر اردوينو -- اردوينو برو ميني -- البرمجة -- اردوينو نينو: 6 خطوات (مع صور)
أرخص اردوينو || أصغر اردوينو || اردوينو برو ميني || البرمجة || اردوينو نينو: …………………………. الرجاء الاشتراك في قناتي على يوتيوب لمزيد من مقاطع الفيديو ……. يدور هذا المشروع حول كيفية التعامل مع أصغر وأرخص اردوينو على الإطلاق. أصغر وأرخص اردوينو هو اردوينو برو ميني. إنه مشابه لاردوينو