2019-4-25 14:07:02 [显示全部楼层]
6782浏览
查看: 6782|回复: 5

[项目] 这个箱子只有我能开,怎么做一个指纹开锁的箱子

[复制链接]

这个箱子只有我能开,怎么做一个指纹开锁的箱子图1

材料清单

硬件部分
指纹识别传感器(SKU:SEN0188)
光子(Particle Photon)物联网开发板(SKU:DFR0373)
5mm LED

软件应用程序Particle Build Web IDE



制作过程

概念:


无论你是不是有一些爱管闲事的兄弟姐妹或者喜欢翻你的东西的室友,能够有一个能够可以通过指纹识别来开启的箱子来放你的私人物品都会是一个好主意。

当我有了这个想法之后,
DFRobot向我提供了一个指纹识别传感器并认为我的这个想法一定会实现的,我十分的感谢他们。

这个箱子只有我能开,怎么做一个指纹开锁的箱子图2
布线:
这个项目的布线非常简单。

这个箱子只有我能开,怎么做一个指纹开锁的箱子图3

要识别指纹,我要做的第一步就是注册一个Particle Cloud IDE的账号。这么做是为了把图像存储在传感器的板载存储中。

这个箱子只有我能开,怎么做一个指纹开锁的箱子图4

接下来就是在指纹传感器上上传我的指纹,我们需要尽可能多的让传感器记录各个角度的指纹。

这个箱子只有我能开,怎么做一个指纹开锁的箱子图5

现在我的指纹已存储,我上传了附加的草图并运行它。

这个箱子只有我能开,怎么做一个指纹开锁的箱子图6

接下来,它就会开始识别匹配指纹。如果指纹是正确的绿色LED灯就会亮起来。

这个箱子只有我能开,怎么做一个指纹开锁的箱子图7

原理图

这个箱子只有我能开,怎么做一个指纹开锁的箱子图8

代码:
[mw_shl_code=applescript,true]#include "Adafruit_Fingerprint.h"

int getFingerprintIDez();

const int red_led_pin = 2, green_led_pin = 3;

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1);

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

  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1);
  }
  Serial.println("Waiting for valid finger...");
  pinMode(red_led_pin, OUTPUT);
  pinMode(green_led_pin, OUTPUT);
  digitalWrite(red_led_pin, 1);
  digitalWrite(green_led_pin, 0);
}

void loop()                     // run over and over again
{
  getFingerprintIDez();
}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No finger detected");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }

  // OK success!

  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }
  
  // OK converted!
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }   
  
  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
}

// returns -1 if failed, otherwise returns ID #
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;
  
  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  digitalWrite(green_led_pin, 1);
  digitalWrite(red_led_pin, 0);
  delay(6000);
  digitalWrite(green_led_pin, 0);
  digitalWrite(red_led_pin, 1);
  return finger.fingerID;
}[/mw_shl_code]

未经许可不得转载

gada888  版主

发表于 2019-4-27 13:22:27

挺有意思的。这个主控是STM32的
回复

使用道具 举报

Kelby  学徒 来自手机

发表于 2019-6-4 13:48:58

KIKIYA 发表于 2019-4-25 14:07
材料清单

硬件部分

还可以袄 学习一下
回复

使用道具 举报

suxiaohan  学徒

发表于 2019-6-12 23:50:56

开玩笑,塑料确定只有你能开,哈哈
回复

使用道具 举报

gray6666  初级技神

发表于 2019-6-28 14:59:44

有意思。。。。。。。。
回复

使用道具 举报

熹宝快睡觉  见习技师

发表于 2019-8-8 16:47:14

有点意思  赞赞赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail