电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>因素身份验证锁开源资料

因素身份验证锁开源资料

2022-07-04 | zip | 0.14 MB | 次下载 | 2积分

资料介绍

PCB图如下:
poYBAGKxtpmAZ-jFAAIGkCwesOM526.png
poYBAGKxtpyAVHm1AAD6YTdwofg469.png



poYBAGKxtqWAaQPjAABjfmqSd70921.jpg

成分

A000066
阿杜诺
× 1
6-1462034-7
TE Con​​nectivity Potter & Brumfield 继电器
× 1
40 针跳线母对母 20 厘米 × 1
LCD-09053
火花乐趣
× 1
ATMEGA32-16AI
芯片技术
× 1
106CKR063M
伊利诺伊电容器
× 1
741C083510JP
CTS电阻器产品
× 1
16针公头 × 1
16针母头 × 1
1624117-3
TE Con​​nectivity / Sigma 电感器
× 1

描述

2 因素身份验证锁

什么是银行安全数字门锁系统?

简单地说,它是一个数字门锁系统,它通过使用数字键盘和使用 Arduino Uno 板帮助门锁的安全性。这个想法有助于银行储物柜的安全

poYBAGKxtr2Afrt2AACAv7_g1Bc46.jpeg

项目所需的组件清单

Arduino UNO

16*2液晶显示器

伺服电机

Arduino 的 4*3 或 4*4 矩阵键盘

3D打印门锁或定制门锁系统

4” / 6”塑料盒、跳线、螺母螺栓、塑料外壳等。

用于 1 安培 5 伏移动充电器电源的附加组件。

pYYBAGKxtsCABVQvAADybLz7fB0129.png

项目描述

首先,该项目的大脑是 Arduino UNO 板。Arduino UNO 板与伺服电机一起连接到 LCD。 

在这里,伺服电机用于锁定或解锁门上的闩锁。 

16x2 LCD(16 列和 2 行)用于在 Arduino 的帮助下显示消息。 

使用的伺服电机是 5V Towerpro SG90。该伺服电机是基础级伺服电机,无需任何外部模块即可与 Arduino 配合使用。 

poYBAGKxtsOAJWV3AABkK30OYyc425.jpg

本项目使用了 4*4 矩阵键盘(但由于没有 4*4 键盘部分,我在上面的图形表示中使用了 4*3 键盘),但这不是问题,因为 4*3 矩阵键盘可以工作我使用的代码很好。

我们还需要一个用于密码输入和手动锁定我们定制的门锁的键盘。键盘共有 16 个按键。在所有键中,行中有 4 个键(R1、R2、R3、R4),列中有 4 个键(C1、C2、C3、C4)。

每当按下一个键时,就会在相应的行和列之间建立连接。

poYBAGKxtsWABpgXAACahiMtYaE300.jpg

代码

#include <键盘.h>

#include

#include <伺服.h>

伺服myservo;

液晶液晶(A0、A1、A2、A3、A4、A5);

#define Password_Lenght 7 // 为六个字符提供足够的空间 + NULL 字符

整数位置 = 0;// 存储伺服位置的变量

字符数据[密码长度];// 6 是它可以容纳的字符数 + 空字符 = 7

char Master[Password_Lenght] = "123456";

字节data_count = 0,master_count = 0;

布尔 Pass_is_good;

字符自定义键;

常量字节 ROWS = 4;

常量字节 COLS = 3;

字符键[ROWS][COLS] = {

{'1', '2', '3'},

{'4', '5', '6'},

{'7', '8', '9'},

{'*', '0', '#'}

};

布尔门=真;

字节 rowPins[ROWS] = {1, 2, 3, 4}; //连接到键盘的行引脚

字节 colPins[COLS] = {5, 6, 7}; //连接到键盘的列引脚

键盘 customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); //初始化类NewKeypad的一个实例

无效设置()

{

myservo.attach(9);

伺服关闭();

lcd.begin(16, 2);

lcd.print("Arduino 门");

lcd.setCursor(0, 1);

lcd.print("--看项目--");

延迟(3000);

lcd.clear();

}

无效循环()

{

如果(门 == 0)

{

customKey = customKeypad.getKey();

if (customKey == '#')

{

lcd.clear();

伺服关闭();

lcd.print("门已关闭");

延迟(3000);

门 = 1;

}

}

否则打开();

}

无效清除数据()

{

而(数据计数!= 0)

{ // 这可以用于任何数组大小,

数据[data_count--] = 0; //清除新数据的数组

}

返回;

}

无效伺服打开()

{

for (pos = 180; pos >= 0; pos -= 5) { // 从 0 度变为 180 度

// 以 1 度为单位

myservo.write(pos); // 告诉伺服器转到变量 'pos' 中的位置

延迟(15);// 等待 15ms 让舵机到达位置

}

}

无效伺服关闭()

{

for (pos = 0; pos <= 180; pos += 5) { // 从 180 度变为 0 度

myservo.write(pos); // 告诉伺服器转到变量 'pos' 中的位置

延迟(15);// 等待 15ms 让舵机到达位置

}

}

}

无效打开()

{

lcd.setCursor(0, 0);

lcd.print("输入密码");

customKey = customKeypad.getKey();

if (customKey) // 确保某个键被实际按下,等于 (customKey != NO_KEY)

{

数据[data_count] = customKey; // 将字符存储到数据数组中

lcd.setCursor(data_count, 1); // 移动光标以显示每个新字符

lcd.print(数据[data_count]); // 在所述光标处打印字符

数据计数++;// 将数据数组加 1 以存储新字符,同时跟踪输入的字符数

}

if (data_count == Password_Lenght - 1) // 如果数组索引等于预期字符数,则将数据与 master 进行比较

{

if (!strcmp(Data, Master)) // 等于 (strcmp(Data, Master) == 0)

{

lcd.clear();

伺服打开();

lcd.print("门开着");

门 = 0;

}

lcd.clear();

lcd.print("密码错误");

延迟(1000);

门 = 1;

}

清除数据();

}

别的

{}

代码

代码

Keypad_Lock_System.ino

 

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费