基于Arduino构建触摸屏电磁门锁系统
扫描二维码
随时随地手机看文章
今天,我们将构建一个基于Arduino的触摸屏门锁系统,该系统包含一个2.4英寸TFT屏幕,用于输入个人识别号码(PIN)和输入PIN的视觉显示。它还包含一个12V电磁锁和继电器模块。电磁锁用于门锁和开锁。
当用户使用TFT显示器输入PIN时,Arduino捕获PIN并将其与存储在EEPROM中的PIN进行匹配。如果输入的PIN码与存储的PIN码匹配,Arduino将打开大门,并在显示屏上显示“Welcome”字样;否则,TFT上显示“Access Denied”,门保持关闭状态。可以通过长按“取消”键,然后在下一个屏幕上选择“是”来更改PIN。然后,系统要求输入当前的PIN,并将其与存储的PIN进行匹配。如果找到匹配,则要求用户输入新的PIN。这个门锁系统可以安装到任何你现有的门,以确保他们与数字密码。在此之前,我们还构建了其他有趣的自动门锁系统项目,如下所列:
•基于物联网的电磁门锁使用树莓派4
•基于物联网的智能门锁系统使用NodeMCU
•基于Arduino和智能手机的指纹门锁系统
•使用树莓派的人脸识别门锁系统
Arduino触摸屏门锁所需组件
•Arduino Uno
•2.4 " TFT液晶显示屏
•电磁锁
•继电器模块
•蜂鸣器
2.4 " TFT液晶显示屏-介绍
2.4英寸TFT液晶触摸屏是最常见的RGB彩色显示模块之一。液晶显示器具有出色的生动色彩对比,并配有内置microSD卡连接。这款TFT显示屏由一个明亮的背光(4个白光led背光)和一个240 × 320像素的彩色显示屏组成。它还具有单独的RGB像素控制,提供比黑白128×64显示器更好的分辨率。我们在之前的物联网菜单订购系统和生物识别投票系统项目中使用了此显示。在将其与Arduino一起使用之前,让我们看看这个2.4“TFT LCD屏幕模块的引脚。
正如你所看到的,28个引脚将完美地适合任何Arduino Uno / Arduino Mega板。TFT显示引脚分为四个主要部分,即命令引脚,数据引脚,SD卡引脚和电源引脚。下表给出了这些引脚的一个小分类。
TFT LCD与Arduino的连接
2.4英寸TFT液晶屏是一个完美的Arduino Shield。您可以直接将此显示器安装在Arduino Uno/Mega的顶部,它将与下图所示的引脚完美匹配。
触摸屏门锁系统电路图
下面给出了使用Arduino构建智能门锁的完整原理图。电路是用fritz绘制的,因为没有电磁锁可用,我用电机来表示它。电磁锁和直流电机都没有任何极性,因此可以这样连接。
在Arduino上安装TFT显示器,我们只需要将继电器模块和蜂鸣器连接到Arduino上。继电器模块的Vcc和GND引脚连接Arduino的5V和GND, Input引脚连接Arduino的第11个引脚。Buzzer的正引脚连接Arduino的数字引脚12,负引脚连接Arduino的GND引脚。整个设置由12V适配器供电。板载7805稳压器用于获得稳压的5V,为Arduino Uno供电。
3D打印触摸屏门锁系统外壳
接下来,我用刻度测量了设置的尺寸,还测量了桶千斤顶和TFT显示器的尺寸,以设计一个套管。我的设计完成后是这样的。
设计完成后,我将其导出为STL文件,并根据打印机设置进行切片,最后进行打印。STL文件也可以从Thingiverse下载,你可以使用它打印你的大小写。打印完成后,我开始将项目组装在一个永久的外壳中,并将其安装在一个设施中。与完整的连接是作出的,我组装电路到我的外壳和一切都很好适合,你可以看到在这里。
触摸屏门锁系统的Arduino编程
这里我们使用的是SPFD5408库,这是原始Adafruit库的修改版本。本页末尾给出了完整的代码。这里我们将解释代码的重要部分。这段代码包含四个部分。第一部分是创建一个pin锁的UI。第二部分是根据用户的触摸检测按钮,第三部分是检查用户输入的密码,最后一部分是重置密码。
通过包含所有必需的库来启动代码。所有这三个SPFD5408库都在ZIP文件中,您可以从上面提供的链接下载它们。
现在在下一行中,定义最小和最大校准的X和y轴值。这里给出的价值观是普遍的,几乎适用于每个人。您可以校准TFT,如果您觉得校准不令人满意,可以更改TFT。
在setup()函数中,为调试目的将串行监视器初始化为9600波特率,并初始化TFT显示。然后定义继电器和蜂鸣器引脚作为输出引脚。
初始化变量和引脚之后,现在我们可以进入主要的编程部分。如前所述,这个程序涉及四个部分,第一部分是创建一个pin锁的UI。我只是简单地做了一个基本布局的pin锁与12个按钮和一个显示单元。TFT显示库允许您绘制直线、矩形、圆形、图表、字符串等等。我使用直线和矩形来设计UI。每个框的宽度为80像素,高度为60像素。
现在,在创建UI之后,第二部分包括检测每个按钮的用户触摸,然后执行与该按钮相关的任务。每次用户触摸屏幕,我们就能知道他/她触摸的像素的X和Y位置。该值可以显示在串行监视器上,如下所示。
或者,我们可以预测每个按钮的位置,如下图所示:
在获得所有框的位置后,将这些值与用户触摸进行比较,以预测他触摸的按钮位置。
第三部分是检查用户输入的密码和控制大门。由于默认密码存储在Arduino的EEPROM中,所以首先,我们将从EEPROM读取密码,然后将其与用户输入的密码进行比较。密码存储在两个不同的地址,因为Arduino Uno EEPROM只能在一个地址存储0-255个数字。
触摸屏门锁系统测试
连接所有硬件并上传代码之后,现在是测试项目的时候了。我们使用外部12V 1A适配器为设备供电。默认情况下,它将在TFT显示上显示Pin锁UI。只要输入正确的密码,门锁就会解锁,8秒后又会被锁上。可以通过长按“取消”键,然后在下一个屏幕上选择“是”来更改默认密码。
这是如何使用TFT显示器和电磁锁构建Arduino电磁门锁系统。
本文编译自iotdesignpro