กลับหน้าหลัก
views
วิธีใช้งาน Arduino กับเซ็นเซอร์สแกนลายนิ้วมือ ควบคุมเปิดปิด LED
Last updated on

วิธีใช้งาน Arduino กับเซ็นเซอร์สแกนลายนิ้วมือ ควบคุมเปิดปิด LED


วิธีใช้งาน Arduino กับเซ็นเซอร์สแกนลายนิ้วมือ ควบคุมเปิดปิด LED

ในบทความนี้จะสอนใช้งาน Arduino กับ Fingerprint Sensor เพื่อสแกนลายนิ้วมือแล้วควบคุมการเปิด-ปิดไฟ LED เราจะเริ่มจากการบันทึกลายนิ้วมือเก็บไว้ในเซ็นเซอร์ จากนั้นนำมาเปรียบเทียบว่าเป็น ID ไหน ถ้าเป็นนิ้วโป้ง (ID1) จะสั่งให้ LED ติด ถ้าเป็นนิ้วชี้ (ID2) จะสั่งให้ LED ดับ

แผนภาพแสดงอุปกรณ์ที่ใช้ทั้งหมด - Arduino UNO R3, Fingerprint Sensor, LED, สายไฟจัมเปอร์, บอร์ดทดลอง

อุปกรณ์ที่ต้องเตรียม

  • Arduino UNO R3 พร้อมสาย USB
  • Fingerprint Sensor V2.0 หรือ V3.0
  • LED 5mm สีแดง 1 ดวง
  • ตัวต้านทาน 220 Ohm 1/4W
  • บอร์ดทดลอง (Breadboard MB-102)
  • สายไฟจัมเปอร์ ผู้-ผู้ และ ผู้-เมีย

วิธีต่อวงจร Fingerprint Sensor กับ Arduino

ต่อสายระหว่าง Fingerprint Sensor กับ Arduino UNO R3 ดังนี้

Fingerprint SensorArduino UNO R3
สายสีแดง (5V)ขา 5V
สายสีดำ (GND)ขา GND
สายสีเขียว (TX)ขา 2
สายสีขาว (RX)ขา 3

ส่วน LED ต่อเข้ากับขา 13 ผ่านตัวต้านทาน 220 Ohm อนุกรมกัน

วงจร Breadboard แสดงการต่อสาย Fingerprint Sensor และ LED กับ Arduino UNO R3 บนบอร์ดทดลอง

ติดตั้ง Library สำหรับ Fingerprint Sensor

ดาวน์โหลด Adafruit Fingerprint Sensor Library จาก GitHub หรือเปิด Arduino IDE ไปที่ Sketch > Include Library > Manage Libraries แล้วค้นหาคำว่า “Adafruit Fingerprint” แล้วกด Install

หลังติดตั้งเสร็จ รีสตาร์ท Arduino IDE แล้วไปที่ File > Examples > Adafruit Fingerprint Sensor Library จะเห็นตัวอย่างโค้ดสำหรับทดสอบ

ขั้นตอนบันทึกลายนิ้วมือ

ก่อนจะใช้งานต้องบันทึกลายนิ้วมือลงในเซ็นเซอร์ก่อน อัปโหลดโค้ดด้านล่างลงใน Arduino

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup() {
  Serial.begin(9600);
  finger.begin(57600);

  if (finger.verifyPassword()) {
    Serial.println("พบเซ็นเซอร์สแกนลายนิ้วมือ");
  } else {
    Serial.println("ไม่พบเซ็นเซอร์ โปรดตรวจสอบการต่อสาย");
    while (1);
  }

  Serial.println("พิมพ์ ID ที่ต้องการบันทึก (1-127)");
}

void loop() {
  if (Serial.available()) {
    int id = Serial.parseInt();
    if (id > 0 && id < 128) {
      enrollFingerprint(id);
    }
  }
}

uint8_t enrollFingerprint(uint8_t id) {
  int p = -1;
  Serial.print("สแกนนิ้วเพื่อบันทึก ID ");
  Serial.println(id);

  // สแกนครั้งที่ 1
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
  }
  p = finger.image2Tz(1);

  Serial.println("ยกนิ้วออกแล้วสแกนใหม่");
  delay(2000);

  // สแกนครั้งที่ 2
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
  }
  p = finger.image2Tz(2);

  // สร้างโมเดลลายนิ้วมือ
  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    Serial.print("บันทึก ID ");
    Serial.println(id);
    p = finger.storeModel(id);
    if (p == FINGERPRINT_OK) {
      Serial.println("สำเร็จ!");
    }
  }

  return p;
}

เปิด Serial Monitor (เลือก Baud Rate 9600) จะเห็นข้อความแจ้งให้พิมพ์ ID ที่ต้องการบันทึก

  1. พิมพ์เลข 1 แล้วกด Send → ไฟสีเขียวที่เซ็นเซอร์จะติด → นำนิ้วโป้งสแกนครั้งที่ 1
  2. ยกนิ้วออก
  3. สแกนนิ้วโป้งครั้งที่ 2 → สำเร็จจะขึ้น “บันทึก ID 1 สำเร็จ!”
  4. พิมพ์เลข 2 แล้วทำซ้ำขั้นตอนเดียวกันกับนิ้วชี้ → บันทึกเป็น ID 2
หน้าต่าง Serial Monitor แสดงผลการบันทึกลายนิ้วมือสำเร็จ

โค้ดควบคุม LED ด้วยลายนิ้วมือ

หลังจากบันทึกลายนิ้วมือเสร็จแล้ว อัปโหลดโค้ดด้านล่างเพื่อให้ระบบตรวจสอบลายนิ้วมือแล้วสั่งเปิด-ปิดไฟ LED ตาม ID ที่ตรวจพบ

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

#define LED_PIN 13

void setup() {
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);

  finger.begin(57600);

  if (finger.verifyPassword()) {
    Serial.println("พบเซ็นเซอร์สแกนลายนิ้วมือ");
  } else {
    Serial.println("ไม่พบเซ็นเซอร์");
    while (1);
  }

  Serial.println("รอสแกนลายนิ้วมือ...");
}

void loop() {
  getFingerprintID();
  delay(100);
}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();

  if (p != FINGERPRINT_OK) {
    return p;
  }

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK) {
    return p;
  }

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK) {
    Serial.println("ไม่พบลายนิ้วมือที่ลงทะเบียน");
    digitalWrite(LED_PIN, LOW);
    return p;
  }

  Serial.print("พบ ID:");
  Serial.println(finger.fingerID);

  // ตรวจสอบ ID แล้วควบคุม LED
  if (finger.fingerID == 1) {
    digitalWrite(LED_PIN, HIGH);  // นิ้วโป้ง → เปิดไฟ
    Serial.println(">>> เปิดไฟ LED");
  } else if (finger.fingerID == 2) {
    digitalWrite(LED_PIN, LOW);   // นิ้วชี้ → ปิดไฟ
    Serial.println(">>> ปิดไฟ LED");
  }

  return finger.fingerID;
}

เปิด Serial Monitor แล้วลองสแกนนิ้วโป้ง จะเห็นขึ้น “พบ ID:1” และ LED ที่ขา 13 จะติด ลองสแกนนิ้วชี้ จะขึ้น “พบ ID:2” และ LED จะดับ

วิธีลบลายนิ้วมือที่บันทึกไว้

ถ้าต้องการลบลายนิ้วมือออกจากเซ็นเซอร์ ให้ใช้โค้ดด้านล่าง

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup() {
  Serial.begin(9600);
  finger.begin(57600);

  if (finger.verifyPassword()) {
    Serial.println("พบเซ็นเซอร์สแกนลายนิ้วมือ");
  } else {
    Serial.println("ไม่พบเซ็นเซอร์");
    while (1);
  }

  Serial.println("พิมพ์ ID ที่ต้องการลบ (เช่น 1)");
}

void loop() {
  if (Serial.available()) {
    int id = Serial.parseInt();
    if (id > 0 && id < 128) {
      deleteFingerprint(id);
    }
  }
}

uint8_t deleteFingerprint(uint8_t id) {
  uint8_t p = finger.deleteModel(id);

  if (p == FINGERPRINT_OK) {
    Serial.print("ลบ ID ");
    Serial.print(id);
    Serial.println(" สำเร็จ");
  } else {
    Serial.print("ไม่สามารถลบ ID ");
    Serial.println(id);
  }

  return p;
}

พิมพ์หมายเลข ID ที่ต้องการลบลงใน Serial Monitor แล้วกด Send เช่น พิมพ์ “1” เพื่อลบลายนิ้วมือ ID 1

สรุป

จากบทความนี้เราได้เรียนรู้วิธีใช้งาน Arduino กับ Fingerprint Sensor โดยสามารถบันทึกลายนิ้วมือหลาย ID ลงในเซ็นเซอร์ได้ แล้วนำมาตรวจสอบเพื่อควบคุมการทำงานของอุปกรณ์อื่น เช่น เปิด-ปิดไฟ LED ตามที่เราต้องการ

อยากทำโปรเจคแบบนี้?

รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน

หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

จ้างทำโปรเจคเลย

ความคิดเห็น