arduino+AS608的使用教程
arduino+AS608的使用教程
解决 Adafruit Fingerprint sensor enrollment
Did not find fingerprint sensor ? 的问题
器材的准备
- AS608光学指纹模块
- uno板子一个
- 杜邦线若干
- usb转ttl
接线
这个我就不说了小孩子都知道怎么接线
开始搭载AS608模块
直接上代码,不废话
/*************************************************** This is an example sketch for our optical Fingerprint sensorDesigned specifically to work with the Adafruit BMP085 Breakout ----> http://www.adafruit.com/products/751These displays use TTL Serial to communicate, 2 pins are required to interfaceAdafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!Written by Limor Fried/Ladyada for Adafruit Industries. BSD license, all text above must be included in any redistribution****************************************************/#include <Adafruit_Fingerprint.h>// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
// uncomment this line:
// #define mySerial Serial1// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
// comment these two lines if using hardware serial
SoftwareSerial mySerial(2, 3);Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);uint8_t id;void setup()
{Serial.begin(9600);while (!Serial); // For Yun/Leo/Micro/Zero/...delay(100);Serial.println("\n\nAdafruit Fingerprint sensor enrollment");// set the data rate for the sensor serial portfinger.begin(57600);if (finger.verifyPassword()) {Serial.println("Found fingerprint sensor!");} else {Serial.println("Did not find fingerprint sensor :(");while (1) { delay(1); }}
}uint8_t readnumber(void) {uint8_t num = 0;while (num == 0) {while (! Serial.available());num = Serial.parseInt();}return num;
}void loop() // run over and over again
{Serial.println("Ready to enroll a fingerprint!");Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");id = readnumber();if (id == 0) {// ID #0 not allowed, try again!return;}Serial.print("Enrolling ID #");Serial.println(id);while (! getFingerprintEnroll() );
}uint8_t getFingerprintEnroll() {int p = -1;Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);while (p != FINGERPRINT_OK) {p = finger.getImage();switch (p) {case FINGERPRINT_OK:Serial.println("Image taken");break;case FINGERPRINT_NOFINGER:Serial.println(".");break;case FINGERPRINT_PACKETRECIEVEERR:Serial.println("Communication error");break;case FINGERPRINT_IMAGEFAIL:Serial.println("Imaging error");break;default:Serial.println("Unknown error");break;}}// OK success!p = finger.image2Tz(1);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;}Serial.println("Remove finger");delay(2000);p = 0;while (p != FINGERPRINT_NOFINGER) {p = finger.getImage();}Serial.print("ID "); Serial.println(id);p = -1;Serial.println("Place same finger again");while (p != FINGERPRINT_OK) {p = finger.getImage();switch (p) {case FINGERPRINT_OK:Serial.println("Image taken");break;case FINGERPRINT_NOFINGER:Serial.print(".");break;case FINGERPRINT_PACKETRECIEVEERR:Serial.println("Communication error");break;case FINGERPRINT_IMAGEFAIL:Serial.println("Imaging error");break;default:Serial.println("Unknown error");break;}}// OK success!p = finger.image2Tz(2);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!Serial.print("Creating model for #"); Serial.println(id);p = finger.createModel();if (p == FINGERPRINT_OK) {Serial.println("Prints matched!");} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println("Communication error");return p;} else if (p == FINGERPRINT_ENROLLMISMATCH) {Serial.println("Fingerprints did not match");return p;} else {Serial.println("Unknown error");return p;} Serial.print("ID "); Serial.println(id);p = finger.storeModel(id);if (p == FINGERPRINT_OK) {Serial.println("Stored!");} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println("Communication error");return p;} else if (p == FINGERPRINT_BADLOCATION) {Serial.println("Could not store in that location");return p;} else if (p == FINGERPRINT_FLASHERR) {Serial.println("Error writing to flash");return p;} else {Serial.println("Unknown error");return p;}
}
然后很多人到这一步就会报错
Adafruit Fingerprint sensor enrollment
Did not find fingerprint sensor :(
出现了这个报错
不要紧,拿出早就准备好的usb转ttl然后将usb转ttl和AS608连接,接口部分只用接VCC GND RX TX
第一步:将模块的 Tx、Rx 连接到 USB 转串口设备。(提示:开发板可使用板载的 CH340)。
第二步:在计算机设备管理器找到识别的串口号
第三步:打开模块资料\2,配套软件\指纹模块测试上位机\指纹测试.exe,然后在上位机
选择对应串口号
第四步:点击“确定”,通讯成功。
第五步:通讯成功之后可查看硬件信息、波特率等,可以点击面板上按钮等功能操作。
下面我们点击“录入指纹”按钮,点击后。并输入 0为录入指纹 ID。
第六步:点击“确定”,软件提示“请将手指平放在传感器上”
第七步:按照提示将手指平放在传感器上,等待图像上传, 所示。提示:
上传时间稍微久一点。波特率越高速度越快,使用 USB 模块测试则会更快。
第八步:第一次录入图像成功之后,软件会提示“2.请将手指平放在传感器上”表示第
二次录入图像。
第九步:当两次录入图像的指纹经过对比匹配之后,如果一致的话指纹就录入成功了。
录入成功
第十步:前面操作是录入了一个指纹,下面我们测试一下刷指纹(验证指纹)。首先我
们点击“搜索”
第十一步:点击了搜索之后软件提示“请将手指平放在传感器上”
第十二步:按照提示将手指放在传感器上录入图像成功之后,系统对比录入图像与指纹
库,如果对比成功,则提示“找到相同手指,FingerID=88……”
提示:如果通讯不成功请检查接线方式是否正确,正确方式是模块 Tx、Rx 分别接到 USB
转串口设备的 Rx、Tx。如果更改了模块地址必须更改回默认 OxFFFFFFFF,同时口令也
必须是默认值 0,这样才能正常通讯!CH340 USB 转串口的驱动程序在模块资料\3,配套
软件\CH340 驱动程序。
烧代码部分
结束了上面的操作后你的AS608(相当于激活了)能工作了
下载Adafruit-Fingerprint-Sensor-Library-master这个ardino的库文件
1.在Arduino IDE中,转到File > Examples > Adafruit Fingerprint Sensor Library > Enroll。
2.上传代码到Arduino开发板,并以9600的波特率打开串行监视器。
3.这时您应该输入指纹的ID。由于这是您的第一个指纹,请在左上角输入1,然后单击Send按钮。
大功告成
如果还有不会的伙伴在下方评论,我教你
创作不易,如果对你有帮助的还麻烦点个赞
arduino+AS608的使用教程相关推荐
- 【Arduino】开发入门教程【一】什么是Arduino
Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...
- matlab智能小车避障,Arduino智能小车系列教程4——超声波避障
Arduino智能小车系列教程4--超声波避障 Arduino智能小车系列教程 准备材料 超声波模块HC-SR04 舵机固定架 舵机安装 超声波接线 代码测试 代码详解 int getDistance ...
- 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程
指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 1.4.2 指示灯组 指示灯组的放大图如图1.5所示. 图1.5 指示灯组 各个指示灯对应的功能如下: q RX:对应于0号端口 ...
- Arduino Yun的主要部件介绍选自Arduino Yun快速入门教程
Arduino Yun的主要部件介绍 1.4.1 主要部件 Yun的主要部件如图1.4所示. 图1.4 Arduino Yun的主要部件 在Yun小小的板子上集成了两颗处理器.一个是ATmega3 ...
- Arduino Yun的硬件——Arduino Yun快速入门教程
Arduino Yun的硬件--Arduino Yun快速入门教程 前面也说过,Yun可以看做是拥有网络功能的Leonardo.更专业点来说它集Arduino Leonardo.Arduino Eth ...
- Arduino Yun快速入门教程(大学霸内部资料)
Arduino Yun快速入门教程(大学霸内部资料) 本资料为国内第一本Arduino Yun教程.详细讲解Arduino Yun的基本结构.开发环境.系统配置,并着力讲解关键功能--Bridge.最 ...
- 【Arduino】开发入门教程【六】数据类型转换函数
Arduino数据类型转换函数有 char() : 将任意类型的值转换成char类型; byte(): 将任意类型的值转换成byte类型; int(): 将任意类型的值转换成int类型; long ...
- Arduino基础入门套件教程PDF
Arduino基础入门套件教程PDF: 上期分享了<Arduino+Android互动智作:初入物联网>高清书签中文版,这期分享<Arduino基础入门套件教程PDF>都是在闯 ...
- arduino yun 京东_ArduinoYun教程之配置Arduino Yun环境
ArduinoYun教程之配置Arduino Yun环境 配置Arduino Yun 不管你使用前面介绍的哪种方式连接Arduino Yun.如今都能够配置你的Arduino Yun了.首先须要的是使 ...
最新文章
- “由于/bin 不在PATH 环境变量中,故无法找到该命令”
- html 图片变灰,科技常识:css使图片变灰的实现方法
- 第8章 硬盘和显卡的访问与控制
- 【总结整理】JavaScript的DOM事件学习(慕课网)
- 一加代言人小罗伯特唐尼竟用华为P30 Pro发微博,当然是笑着原谅他
- Abp vnext Web应用程序开发教程 8 —— 作者:应用程序层
- Android Activity界面切换添加动画特效 (转载修改)
- python编写接口自动化脚本_简单的python http接口自动化脚本
- cocos2d-x 3.0 使用Sax解析xml文档(解决中文显示问题)
- Kotlin(android)协程中文翻译
- 65. 雇员管理系统(2)
- 索尼PS4破解之用户层代码执行(Part2)
- Package java.util.stream
- 四、网络层(一)网络层的功能
- MATLAB读取Excel标题行特定字符对应数据
- 掌握python机器学习-读书笔记8 (抽样回归算法)
- 网易云web安全工程师第一天
- wimlib-imagex.exe、DISM、WIMGAPI三种方式应用WIM的速度对比
- Ubuntu上实现多分屏窗口管理
- 首1标准型和尾1标准型