全世界使用了许多类型的安全系统,数字密码锁就是其中之一。我们已经使用Arduino,Raspberry Pi,8051等通过简单的16x2 LCD涵盖了许多数字锁。在这里,我们将使用TFT LCD和Arduino Mega构建智能手机控制的数字锁。您可以使用Android手机通过蓝牙在10米的正常蓝牙范围内以无线方式控制此锁定。用户需要从他的Android手机中输入预定义的密码,如果密码正确,TFT LCD会显示“ CORRECT PASSWORD”(错误密码)消息,如果密码错误,则LCD会显示“ WRONG PASSWORD”(错误密码)消息。
通过使用此锁,您可以在走路时甚至在到达门锁之前打开门锁。这样可以节省您的时间,并且您无需携带钥匙,并且可以使用手机轻松打开锁。
所需组件:
- Arduino的巨型
- HC05蓝牙模块
- USB电缆
- 连接线
- 蜂鸣器
- 带SPFD5408控制器的2.4英寸TFT LCD屏蔽
- 安卓手机
- 蓝牙终端应用
- 面包板
电路图和说明:
此智能手机控制的数字锁的电路很简单;我们只需要将蓝牙模块HC05和TFT LCD Shield连接到Arduino。TFT LCD屏蔽罩可轻松安装在Arduino上,我们只需要匹配引脚的对齐方式,并确保将Arduino的GND和Vcc引脚安装在LCD的GND和Vcc引脚上即可。您还需要安装TFT触摸屏LCD库,在此处了解有关将TFT LCD与Arduino接口的更多信息。
HC05由Arduino Vcc和GND引脚供电,HC05的TX连接到Arduino的RX1,HC05的RX连接到Arduino的TX1。蜂鸣器的一个引脚连接到Arduino的GND,另一引脚连接到Arduino的引脚22。
为Arduino配置蓝牙终端应用程序:
要通过我们的Android智能手机操作此数字锁,首先我们需要安装一个名为Bluetooth Terminal的Android移动应用。蓝牙终端应用程序与Arduino兼容。您可以从Google Play商店下载此应用,并可以按照以下步骤轻松对其进行配置:
1.首先从Google Play商店下载它,然后将其安装在您的Android手机中。
2.接通“蓝牙控制的数字锁系统电路”的电源。
3.打开应用程序,然后转到“安全连接”选项。
4.您将找到HC05设备要配对。
5.输入1234密码来连接您的Android手机,就像我们用来连接其他蓝牙设备一样。
工作说明:
在此基于Arduino的安全系统中,我们使用了三个主要组件,它们是蓝牙模块HC05,Arduino Mega Board和2.4英寸TFT LCD Shield。
用户在此处使用蓝牙终端应用程序通过Android智能手机输入四位数密码,并通过蓝牙发送到Arduino。 Arduino使用蓝牙模块HC05接收Android Phone发送的数据,并将其显示在SPFD5408 TFT LCD上。 Arduino将用户输入的密码与预定义的密码(1234)进行比较,并相应显示消息。如果密码不匹配,则显示消息“密码错误”,如果密码匹配,则显示消息“密码错误”。蜂鸣器也用于报警指示,当输入密码错误时发出蜂鸣声。另外,请检查末尾显示的视频,以了解其操作。
我们还可以通过更改Arduino代码将密码更改为我们的选择,这已在下面的“编程”部分中进行了说明。
编程说明:
为了对该蓝牙控制的数字锁进行编程,我们使用了一些库在TFT LCD上显示数据,如下所示。所有的库都放在一个rar文件中,可以从此链接下载。单击“克隆或下载”和“下载ZIP”文件,然后添加到您的Arduino库文件夹。TFT LCD的正常运行需要该库。
#包括
LCD输入输出的初始化以及蓝牙模块的串行通信在 void setup() 循环中执行。Arduino的22号引脚连接到蜂鸣器,而蜂鸣器的另一个引脚连接到Arduino Mega的地。蓝牙模块与Arduino Mega的Serial1端口连接,并由Arduino Mega的5V电源供电。
fillScreen() 函数用于清除LCD。
void setup(){//将您的安装代码放在此处,以运行一次:Serial.begin(9600); Serial1.begin(9600); tft.reset(); tft.begin(0x9341); tft.setRotation(0); tft.fillScreen(WHITE); tft.setCursor(40,50); tft.setTextSize(2); tft.setTextColor(BLACK); tft.println(“ ENTER * PASSWORD”); 延迟(5000); tft.fillScreen(WHITE); pinMode(22,输出); }
在 void loop() 函数中, setTextSize(4) 设置文本的大小, setTextColor(colorName) 设置文本的颜色。的 ARR 是其中我们已经存储了预定义的四位密码阵列和 输入 是在其中我们已经存储在由用户从Android手机输入的密码的阵列。如果输入的密码与存储的密码相同,则液晶显示屏将显示“ CORRECT PASSWORD”(正确密码)消息,如果不相同,即1234,则液晶显示屏将显示“ WRONG PASSWORD”(错误密码)消息,并且连接到蜂鸣器的引脚变高,并且蜂鸣声。
void loop(){tft.setTextSize(4); tft.setTextColor(CYAN); //将您的主代码放在此处,以重复运行:if(Serial1.available()> 0){flag = 1; char c = Serial1.read(); if(标志== 1){输入= c;………………..
我们可以进一步更改 arr 数组以更改我们选择的密码,而不是'1234'。我们也可以更改编号。通过更改 arr 和 输入 数组的长度来设置密码中的字符。
char arr = {'1','2','3','4'}; 字符输入;
根据更改的密码长度,我们需要更改 void loop() 函数中的if条件。
if(arr ==输入&& arr ==输入&& arr ==输入&& arr ==输入)
此外,我们可以 在此项目中连接 电子门锁(可在线轻松获得)。它具有一个电磁体,当没有电流通过门锁(开路)时,它可使门保持锁定状态;当有电流通过门锁时,门锁将被解锁,并且门可以打开。我们只需要相应地更改密码,就可以用我们的电话打开门锁了。检查此共享项目评论:Arduino RFID门锁,以获取有关电子门锁的更多信息。