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

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

3天内不再提示

Smart Lock(简单密码锁)设计过程论述

冬至子 来源:Aoh_oxygen 作者:Aoh_oxygen 2023-07-31 16:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

项目背景

物联网时代,随着智能家居、智能安防的发展,智能门锁在近几年快速普及。作为智慧家庭入口,让人们的生活方式从繁到简,在保障人身及财产安全之外,也为用户带来更加舒适的智慧家居体验。

在5天的线上学习之后,我们小组基本上了解了星火1号,在全组的一致肯定之后,我们决定利用星火1号,完成硬件搭建及测试,编写程序,实现智能密码锁功能,如按键模式等等。

方案理念

通过RT-Thread的软件系统的示例工程,让我们更方便、更快捷的开发代码,节省开发时间。我们购买了薄膜按键,通过对产品的认知,编写了代码在RT-Thread上来将薄膜按键和星火1号板连接起来。

我们重点实现了密码锁的按键模式。实现了4位密码的输入,当密码输入正确,星火1号的显示屏上将显示“welcome”,当密码输入错误的时候,你可以重新输入,连续五次密码输入错误,密码锁将锁定一段时间,不能再次输入密码,使得密码锁的安全性得到提升。
我们小组已经基本实现上述功能。

项目框架图:

1.jpg

过程论述

硬件结构图:

1.jpg

图1:键盘电路图

设计过程

通过杜邦线将薄膜键盘与星火1号板连接起来,通过RT-Tread软件编写程序。通过对输入线的高、低电位的判断,在用if语句来排列出0到9,和确定按键。

在主体程序中输入密码锁的4位密码,再通过数组记录按键输入的4位数字,与密码锁内部存储的静态数组的密码相比对,再按压“#”符号,确认输入的数字,如果输入4个数字与密码锁的密码的相同,则显示屏上显示“welcome”;如果不相同,则可以重新输入。

在输入的五次循环且输入错误之后,程序将关闭,人员将不能再通过按键输入数字。等待10秒之后(时间可以通过软件系统调节),才能重新通过按键输入数字,再重新对比。

程序编写

项目主要通过两个数组的不断比对实现密码的识别功能。

int stored[4]={2,5,8,0};
int temp[4]={0};

密码比对:

if(Sub==4)
{
if(temp[0] == stored[0] && temp[1] == stored[1] && temp[2] == stored[2] && temp[3] == stored[3] && Sub==4)//
{
lcd_clear(WHITE); /* show RT-Thread logo */
lcd_show_image(0, 0, 240, 69, image_rttlogo);
lcd_set_color(WHITE, BLACK);
lcd_show_string(65, 110, 32, "Welcome!");
}
}

额外功能:

当每次按下案件的时候都能够发出蜂鸣声,这是通过添加一个蜂鸣器的线程来实现的。

static void Beep(void)
{
while(1)
{
if(Bflag == 1 && flag == 0)
{
rt_pin_write(PIN_BEEP,PIN_HIGH);
//Delay(250);
rt_thread_mdelay(100);//Beep
rt_pin_write(PIN_BEEP,PIN_LOW);
flag = 1;
}
rt_thread_mdelay(10);
}
}

当输入五次错误密码以后通过添加一个线程实现一次10s的延迟以达到锁定密码锁的目的,同时也确保每输入五次错误密码后都会进行一次上述操作。

else if (errornum >= 5)
{
lcd_clear(WHITE); /* show RT-Thread logo */
lcd_show_image(0, 0, 240, 69, image_rttlogo);
lcd_set_color(WHITE, BLACK);
lcd_show_string(65, 110, 32, "Locked!");
lockflag = 1;
}
void thread_entry(void *parameter)
{
while (1)
{
if (lockflag == 1)
{
rt_thread_mdelay(10000);
init();
}
}
}

实现效果

密码输入

未输入状态:

1.jpg

输入状态:

1.jpg

成功进入:

1.jpg

报告密码错误:

1.jpg

密码锁因输入多次错误密码而被锁定:

1.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 密码锁
    +关注

    关注

    6

    文章

    250

    浏览量

    36498
  • LCD屏
    +关注

    关注

    0

    文章

    132

    浏览量

    16413
  • 智能家居
    +关注

    关注

    1942

    文章

    9943

    浏览量

    195492
  • 蜂鸣器
    +关注

    关注

    12

    文章

    897

    浏览量

    47605
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44273
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    51密码锁

    简单的51密码锁,算是仿真的处女作,感谢武的帮助。初始密码111111
    发表于 09-07 18:06

    电子密码锁电路图

    电子密码锁电路图 汽车电子密码锁的电路
    发表于 04-25 12:38 9906次阅读
    电子<b class='flag-5'>密码锁</b>电路图

    555电子密码锁电路

    555电子密码锁电路:这个电子密码锁密码安排在钥匙和锁孔中,只有两者密码,一致才能开锁。
    发表于 05-20 21:46 2319次阅读
    555电子<b class='flag-5'>密码锁</b>电路

    电话数字密码锁

    电话数字密码锁
    发表于 03-03 21:16 1136次阅读
    电话数字<b class='flag-5'>密码锁</b>

    电子密码锁的设计

    电子密码锁的设计 设计一个电子密码锁,在开的状态下输入密码密码共4位,用数据开关K1K10分别代表数字1、2、…、9、
    发表于 04-29 16:23 6179次阅读
    电子<b class='flag-5'>密码锁</b>的设计

    电子密码锁资料

    利用51单片机实现电子密码锁的功能,是简单51单片机练手的最好选择。
    发表于 11-06 10:10 11次下载

    密码锁程序源代码

    51单片机,密码锁。可实现密码锁的基本功能,开锁,报警,修改密码
    发表于 11-10 17:23 62次下载

    简易电子密码锁

    简易电子密码锁 四位电子密码锁设计 思路简述
    发表于 06-17 16:00 79次下载

    电子密码锁的C语言程序

    这个是电子密码锁的C语言程序,以及电子密码锁的仿真图。
    发表于 07-29 17:26 130次下载

    密码锁仿真 51密码锁protues仿真 密码锁程序仿真图pro

    密码锁仿真 51密码锁protues仿真 密码锁程序仿真图protues仿真
    发表于 01-14 22:32 256次下载

    微电脑密码锁设计

      介绍一下密码锁的优点,这一次我们要设计的是一个微电脑密码锁,相较于传统机械式密码锁有所不同。
    发表于 09-20 12:33 10次下载
    微电脑<b class='flag-5'>密码锁</b>设计

    密码锁的原理图

    密码锁原理图
    发表于 11-22 19:33 12次下载

    带自功能的密码锁,Electronic lock

    带自功能的密码锁,Electronic lock 关键字:密码锁电路图 本密码锁
    的头像 发表于 09-20 18:59 1993次阅读

    指纹密码锁的优点和缺点

     指纹密码锁优势是什么?指纹密码锁优点有哪些?指纹密码锁缺点是什么?指纹密码锁是当前非常主流的智能配置,指纹开锁+
    发表于 06-10 14:25 5.7w次阅读

    基于FPGA的电子按键密码锁设计

    电子密码锁与传统密码锁相比,具有安全性高、成本低、易操作等诸多优点。正因如此,电子密码锁近年来发展迅速,诸如按键式密码锁、卡片式密码锁、以及
    的头像 发表于 07-12 16:03 2824次阅读