门禁系统
此代码的主要功能是使用 RFID 模块进行用户身份验证。 如果认证成功,它将控制步进电机打开门,并通过蜂鸣器发出声音指示认证结果。 如果认证失败,门将不会打开。
您可以打开串口监视器查看 RFID 卡的 ID,并在此代码中重新配置密码。
所需元件
在这个项目中,我们需要以下元件。
购买整套套件会更方便,以下是链接:
名称 |
套件所含项目 |
链接 |
|---|---|---|
Elite Explorer 套件 |
300+ |
您也可以从下面的链接单独购买。
元件介绍 |
购买链接 |
|---|---|
- |
|
- |
|
- |
接线
备注
为了保护 电源模块 的电池,首次使用前请将其充满电。
原理图
代码
备注
您可以直接打开路径
elite-explorer-kit-main\fun_project09_access_control_system下的09_access_control_system.ino文件。或者将这段代码复制到 Arduino IDE 中。
备注
工作原理
以下是代码的逐步说明:
包含库文件 :您包含了三个库文件:
rfid1.h、Stepper.h和Wire.h。这些库用于与 RFID 模块、步进电机进行通信以及进行 I2C 通信。常量定义 :您定义了一些常量,包括
ID_LEN``(ID 长度)、``stepsPerRevolution``(步进电机每转步数)、``rolePerMinute``(步进电机速度),以及四个步进电机引脚(IN1、IN2、IN3、IN4)、蜂鸣器引脚(``buzPin)和与认证相关的变量。变量定义 :您定义了变量,例如用于存储读取的用户 ID 的数组(
userIdRead)、经过身份验证的用户 ID(userId),以及指示认证成功的布尔变量(approved)。对象实例化 :您创建了两个对象的实例:
RFID1 rfid和Stepper stepper,用于分别与 RFID 模块和步进电机交互。setup():在setup()函数中,您初始化步进电机的速度,将蜂鸣器引脚设置为输出,并初始化 RFID 模块。loop():在loop()函数中,您的主要逻辑运行。如果approved为 0(表示尚未认证),则调用rfidRead()函数从 RFID 模块读取数据,然后清除userIdRead数组。如果approved为 1(表示认证成功),则调用openDoor()函数打开门,并将approved重置为 0。beep():此函数根据提供的duration和frequency参数控制蜂鸣器声音。verifyPrint():此函数根据result参数产生不同的蜂鸣器声音,以指示认证是否成功。openDoor():此函数控制步进电机将门打开到一定角度(doorStep),然后等待一段时间再关闭门。rfidRead():此函数从 RFID 模块读取数据,首先调用getId()获取用户 ID,然后调用idVerify()验证用户 ID 是否与认证 ID 匹配。getId():此函数从 RFID 模块获取用户 ID 并将其存储在userIdRead数组中。如果读取失败,则发出蜂鸣声。idVerify():此函数验证用户 ID 是否与认证 ID 匹配,并发出表示认证成功或失败的声音。