# DFRobot_Biometric
**Repository Path**: dfrobot/DFRobot_Biometric
## Basic Information
- **Project Name**: DFRobot_Biometric
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-05
- **Last Updated**: 2026-06-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DFRobot_Biometric
- [English Version](./README.md)
FP001和FP002是人脸掌静脉识别模组,搭载仿生人脸识别算法,支持 UVC/UAC 方式传输,MJPEG 视
频格式,既实现了安全性,又兼具了良好的用户体验,具有功耗低、成本低、快速识别、外观
精致、产品结构小巧等特点,采用了高算力芯片,快速完成人脸识别和掌静脉识别的完整过程
Biometric库是对于这两个模块的功能进行统一的封装,SEN0736和SEN0737都具有人脸录入,人脸识别,用户查询,用户删除等功能。此外,SEN0737还具有三种颜色的指示灯,为其封装了三通不同颜色等的控制功能。算法在模块内完成,本库主要进行指令交互,下达命令,接受反馈,命令响应及时。
## 产品链接 (www.dfrobot.com)
SKU:SEN0736 FP001和SEN0737FP002人脸与掌静脉识别模块
## 目录
* [概述](#概述)
* [库安装](#库安装)
* [方法](#方法)
* [兼容性](#兼容性)
* [历史](#历史)
* [创作者](#创作者)
## 概述
本库实现了人脸与掌静脉注册用户,用户识别,用户的删除管理,获取用户数量,控制指示灯等功能
## 库安装
使用此库前,请首先下载库文件,将其粘贴到\Arduino\libraries目录中,然后打开examples文件夹并在该文件夹中运行演示。
## 方法
```C++
/**
* @fn checkState
* @brief 检查模块是否就绪且空闲
* @return bool 类型
* @retval true 模块就绪
* @retval false 模块未就绪
* @note 在初始化或执行命令前使用 checkState() 检查状态
*/
bool checkState(void);
/**
* @fn enrollUser
* @brief 录入人脸或掌静脉用于识别
* @details 请确保传入的参数符合要求
* @param kind eFaceUser 表示录入人脸,ePalmUser 表示录入掌静脉
* @param userName 用户名,长度 1 到 32 个字符
* @param id 存储录入后的用户 ID,范围 1 到 800
* @param idAdmin 设置用户角色,eRoleAdmin 为管理员,eRoleNormal 为普通用户
* @return 任务执行结果
* @retval NO_ACK -1 没有收到模块的应答
* @retval ERROR -2 用户参数错误,如无效的用户类型或名称长度不符合要求
* @retval 1 成功
* @retval 2 重复
* @retval 3 录入超时
*/
int8_t enrollUser(eUserKind_t kind, const char* userName, uint16_t* id, eIsAdmin_t idAdmin);
/**
* @fn getAllNumsFaceUserIDs
* @brief 获取人脸用户的数量
* @return 人脸用户的数量
* @retval NO_ACK -1 没有收到模块的应答
*/
int16_t getAllNumsFaceUserIDs(void);
/**
* @fn getAllNumsPalmUserIDs
* @brief 获取掌静脉用户的数量
* @return 掌静脉用户的数量
* @retval NO_ACK -1 没有收到模块的应答
*/
int16_t getAllNumsPalmUserIDs(void);
/**
* @fn getAllFaceUserIDs
* @brief 获取人脸用户的具体信息
* @param id_buffer 存储人脸用户 ID 的数组
* @param length id_buffer 的长度
* @return 执行结果
* @retval NO_ACK -1 没有收到模块的应答
* @retval ERROR -2 用户参数错误:传入的数组长度小于用户数量
*/
int8_t getAllFaceUserIDs(uint16_t *id_buffer, uint16_t length);
/**
* @fn getRecognitionResult
* @brief 对用户进行识别
* @param ID 存储识别到的用户信息
* @return 执行结果
* @retval NO_ACK -1 没有收到模块的应答
* @retval 1 成功
* @retval 2 超时
* @retval 3 用户未找到
*/
int8_t getRecognitionResult(sId_t* ID);
/**
* @fn deleteUser
* @brief 删除指定用户
* @details ID 必须在有效范围内
* @param id 用户 ID,范围 1 到 800
* @return 删除结果
* @retval NO_ACK -1 没有收到模块的应答
* @retval ERROR -2 ID 超出 1 到 800 的范围
* @retval 1 删除成功
* @retval 2 用户未找到
* @retval 3 未知错误,建议重试
*/
int8_t deleteUser(uint16_t id);
/**
* @fn deleteAllUser
* @brief 删除所有用户
* @return 删除结果
* @retval NO_ACK -1 没有收到模块的应答
* @retval 1 删除成功
* @retval 2 未知错误,建议重试
*/
int8_t deleteAllUser(void);
/**
* @fn ledColor
* @brief 控制 LED 状态
* @details 请确保传入的参数符合要求
* @param color LED 颜色:COLOR_GREEN 绿色,COLOR_RED 红色,COLOR_WHITE 白色
* @param kind LED_ON 开灯,LED_OFF 关灯
* @return 执行结果
* @retval NO_ACK -1 没有收到模块的应答
* @retval ERROR -2 kind 或 color 参数无效
* @retval 1 成功
*/
int8_t ledColor(uint8_t color, uint8_t kind);
```
## 兼容性
| MCU | 表现良好 | 表现异常 | 未测试 | 备注 |
| ------------------ | :------: | :------: | :-----: | ---- |
| Arduino Uno | | √ | | 不稳定 |
| Arduino Leonardo | √ | | | |
| Arduino MEGA2560 | √ | | | |
| FireBeetle-ESP32 | √ | | | |
| ESP8266 | √ | | | |
| FireBeetle-M0 | √ | | | |
| Micro:bit | | √ | | |
## 历史
- 2026/06/02 - 1.0.0 版本
## 创作者
Written by Olive-hy(feng.yang@dfrobot.com), 2026-6-02 (Welcome to our [website](https://www.dfrobot.com/))