กลับไปหน้ารวมไฟล์
door-fingerprint-sensor-lock-0f97a9.md

ชื่อโปรเจกต์: ล็อคประตูด้วยเซ็นเซอร์ลายนิ้วมือ

Zachary Mankowitz

บทนำ

มาอธิบายปัญหาที่สิ่งประดิษฐ์นี้ถูกออกแบบมาเพื่อแก้ไขกัน: เป็นเวลาหลายปีที่ผมถูกพี่น้องแอบปลดล็อคประตูห้องของผมที่ล็อคไว้แล้วแอบเข้ามาเอาของของผมไป ล็อคประตูถูกออกแบบมาให้สามารถเปิดจากด้านนอกได้ด้วยเหรียญ ผมต้องการบางอย่างที่จะไม่ยอมให้พี่น้องของผมปลดล็อคประตูห้องได้ และเป็นกุญแจที่มีเพียงผมเท่านั้นที่เข้าถึงได้ ด้วยเป้าหมายเหล่านี้ ผมจึงเริ่มต้นสร้างโปรเจกต์ของผม (แน่นอนว่าโปรเจกต์นี้สามารถนำไปใช้ในสถานรักษาความปลอดภัยจริงได้เช่นกัน)

ภาพรวม

เพื่อแก้ปัญหาการล็อค ผมได้ใช้กาว Superglue ยึด 3D printed servo mount ที่ออกแบบเองเข้ากับลูกบิดประตูภายในที่เชื่อมต่อโดยตรงกับกลไกการล็อค เนื่องจาก servo motor พยายามคงอยู่ในตำแหน่งที่ตั้งไว้ตลอดเวลา มันจึงต้านทานการงัดแงะจากภายนอกได้อย่างแข็งขัน ปุ่มบนประตูภายในทำหน้าที่เป็น toggle ที่สามารถล็อคและปลดล็อคประตูได้โดยการเปลี่ยนตำแหน่งของ servo

เมื่อปัญหาการล็อคได้รับการแก้ไขแล้ว เราต้องก้าวไปสู่ปัญหาต่อไป: กุญแจที่ผมมีและไม่มีใครมี วิธีแก้ปัญหานี้คือ fingerprint scanner ลายนิ้วมือเป็นสิ่งที่เฉพาะตัวสำหรับแต่ละบุคคล และเป็นสิ่งที่ผมมีอยู่เสมอแต่ไม่สามารถถูกเอาไปจากผมได้ ดังนั้น ผมจึงติดตั้ง optical fingerprint sensor ที่ด้านนอกประตู ซึ่งสามารถสลับตำแหน่งล็อคและปลดล็อคของ servo ได้เช่นกัน

ตอนนี้เรามีแกนหลักของระบบที่ทำงานได้ เพื่อปรับปรุงระบบ ผมยังได้ติดตั้ง OLED display ขนาดเล็กที่ด้านนอกประตูเพื่อแสดงสถานะของระบบ (เช่น ปลดล็อค/ล็อค) สุดท้าย ผมได้เพิ่ม RGB LED strip ล้อมรอบวงกบประตูด้านนอกเพื่อเป็นตัวบ่งชี้สถานะเพิ่มเติม

ระบบทั้งหมดทำงานด้วย dual Arduino Unos และใช้พลังงานจาก portable battery packs การให้ระบบทำงานด้วยแบตเตอรี่ช่วยให้ระบบทำงานได้ต่อเนื่องแม้ในขณะไฟดับ

การใช้งาน

จากด้านนอกประตู ผู้ใช้จะพบกับ fingerprint sensor และหน้าจอแสดงสถานะว่าประตูล็อคหรือปลดล็อคอยู่ เมื่อใดก็ตามที่ระบบอยู่ในโหมดพัก RGB LED จะค่อยๆ เปลี่ยนสีแบบสุ่มผ่านสี 16.8 ล้านสี หากวางนิ้วผิดพลาด LED จะกะพริบเป็นสีแดงอย่างดุดัน และ OLED จะแสดงข้อความ “Incorrect Finger” หากวางนิ้วที่ถูกต้อง LED จะสว่างเป็นสีเขียวอย่างร่าเริง ประตูจะปลดล็อค และหน้าจอจะต้อนรับคุณเข้าสู่ภายใน จากด้านใน คุณสามารถกด reset pin บน Arduino เพื่อล็อคหรือปลดล็อคประตูได้ ไม่ว่าจะจากด้านในหรือด้านนอก เมื่อประตูถูกล็อค LED จะเปลี่ยนเป็นสีแดง และเมื่อประตูถูกปลดล็อค LED จะเปลี่ยนเป็นสีเขียว

ข้อมูลจำเพาะ

โปรเจกต์นี้ใช้การออกแบบทางไฟฟ้าอย่างละเอียด ดังนั้นแผนภาพและการออกแบบต่อไปนี้มีจุดประสงค์เพื่อช่วยให้เข้าใจและออกแบบระบบนี้และระบบในอนาคต โค้ดสำหรับโปรเจกต์นี้มีมากกว่า 350 บรรทัด และสามารถดูได้ ที่นี่. ในฐานะผู้เชื่อมั่นใน open software และการช่วยเหลือผู้อื่น ทรัพยากรทั้งหมดที่ใช้ในโปรเจกต์นี้เปิดให้สาธารณะเข้าถึงได้ และสามารถดูได้ ที่นี่. เหตุผลที่มี Arduino สองตัวเป็นเพราะว่า Arduino สามารถทำงานได้แบบเชิงเส้นเท่านั้นและมี processing core เพียงอันเดียว จึงไม่สามารถควบคุม LED ได้นอกเหนือจาก fingerprint sensor เนื่องจากทั้งสองทำงานพร้อมกัน ดังนั้นจึงมี master Arduino หนึ่งตัวที่ควบคุม Servo, OLED และ fingerprint sensor ในขณะที่ slave Arduino ควบคุม LED ทั้งสองเชื่อมต่อกันด้วยสายไฟเส้นเดียวที่เชื่อมจาก PWM (Pulse Width Modulation) enabled pin บน master ไปยัง analog pin บน slave เมื่อใช้ PWM, master สามารถส่งแรงดันไฟฟ้าที่แตกต่างกันไปยัง slave ได้ ขึ้นอยู่กับแรงดันไฟฟ้า slave จะสั่งให้ LED ทำงานในโหมดที่กำหนด (เช่น 0v สำหรับปิด, 1v สำหรับกะพริบสีแดง, 2v สำหรับเปลี่ยนเป็นสีเขียว เป็นต้น)

LED ทำงานที่ 12 volts, 5 Amps ซึ่งเกินขีดจำกัดภายในของ Arduino (ซึ่งอยู่ที่ประมาณ 5v และ 40mA) เราต้องการ interface ที่สามารถจัดการพลังงาน DC ที่สูงขึ้นเพื่อควบคุม LED ในการทำเช่นนี้ เราใช้สิ่งที่เรียกว่า logic level Metal–Oxide–Semiconductor Field-Effect Transistor, หรือเรียกสั้นๆ ว่า MOSFET ส่วนนี้มีสามขา: drain, signal และ source signal คือแรงดันไฟฟ้าตั้งแต่ 0-5v ที่ควบคุมปริมาณกระแสไฟฟ้าระหว่าง source และ drain (โดยปกติสูงสุด 60v, 10A แต่ขึ้นอยู่กับกรณีการใช้งานอย่างมาก นี่คือแผ่นควบคุมสำหรับ 520N MOSFET) เนื่องจากมีสายไฟสามเส้นสำหรับสีแดง, เขียว และน้ำเงิน จึงมี MOSFETS ที่แตกต่างกันสามตัวสำหรับแต่ละสี MOSFET แต่ละตัวมี PWM แยกกันสำหรับ signal ของมัน เนื่องจาก Arduino สามารถเขียนค่า 0-255 ซึ่งอยู่ในช่วง 0-5 volts ไปยัง MOSFET แต่ละตัวได้ เราจึงมีชุดค่าผสมสีที่แตกต่างกัน 256^3 = 16, 777, 216 แบบ

นี่คือ 3D model mount สำหรับ servo พร้อมกับ interface วัตถุสีฟ้าอ่อนที่ด้านล่างคือ 9g servo motor ส่วนสีน้ำเงินเข้มที่อยู่ด้านบนเรียกว่า servo horn ซึ่งช่วยให้ servo มีแรงงัดมากขึ้นเมื่อติดเข้าด้วยกัน servo จะขันเข้ากับฐานสีขาว/เขียว ฐานมีจุดสัมผัสสี่จุดสำหรับติดกาวกับลูกบิด ชิ้นส่วนสีขาวที่ด้านบนจะเชื่อมต่อกับ locking pin และเชื่อมต่อกับ servo horn

นี่คือลักษณะของระบบเมื่อติดตั้งจริง และมุมมองแบบ schematic:

นี่คือ schematic ของระบบโดยไม่มี fingerprint sensor

รูปภาพ

ด้านบนขวาคือ custom solderboard ที่รวบรวม MOSFET ทั้งหมดและการเดินสายไว้ด้วยกัน ด้านบนซ้ายคือ solderboard ที่เชื่อมต่อกับระบบ ด้านล่างซ้ายคือภาพภายนอกของ fingerprint sensor และ OLED display

RGB Exterior - แสดง LED ในสีต่างๆ

รายละเอียดทางเทคนิคเพิ่มเติม

สถาปัตยกรรมความปลอดภัย Biometric

โปรเจกต์นี้แทนที่กุญแจแบบดั้งเดิมด้วย Optical or Capacitive Fingerprint Scanner ความปลอดภัยสูง (เช่น FPM10 / AS608)

  • การจับคู่ Template: Arduino สื่อสารกับ sensor ผ่าน Serial. processor ภายในของ sensor จะจับภาพลายนิ้วมือ, แยกจุด "Minutiae" และเปรียบเทียบกับฐานข้อมูลที่เก็บไว้ใน Flash memory ภายในของมัน
  • การควบคุมสถานะ: เมื่อ "Match" สำเร็จ, Arduino จะส่ง high-current pulse ไปยัง 12V Solenoid Door Lock ผ่าน relay หรือ log

ข้อมูล Frontmatter ดั้งเดิม

title: "Door fingerprint sensor lock"
description: "Fingerprint sensor that locks/unlocks door with RGB LED and OLED display feedback"
author: "zmankowitz"
category: ""
tags:
  - "smart appliances"
  - "human welfare"
  - "security"
views: 5353
likes: 0
price: 2450
difficulty: "Intermediate"
components:
  - "1x Adafruit NeoPixel Digital RGB LED Strip 144 LED, 1m White"
  - "1x 3D Printer (generic)"
  - "2x Arduino UNO"
  - "1x Breadboard (generic)"
  - "1x Fingerprint Sensor"
  - "1x Drill / Driver, Cordless"
  - "1x Power MOSFET N-Channel"
  - "1x Hot glue gun (generic)"
  - "1x SG90 Micro-servo motor"
  - "1x OLED Display, Blue on Black"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "fae85f9e2bd6a9c2adf7b4453231335a7c33978153d4ac94cc7ef130bfbd22ab"
encryptedPayload: "U2FsdGVkX1/iwoIi3Q/BC2UVs1Gt0eKtHPGg5U92WoHHFFC0FdC17Vdxd+Dic18ngpJCvc3uciz2Lpn/vi5m8JeUEc5F8aNyA+q/UuvD13I="
seoDescription: "DIY Arduino door lock project using Fingerprint sensor with RGB LED and OLED display feedback."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/door-fingerprint-sensor-lock-0f97a9_cover.jpg"
lang: "th"