基于ESP32的智能门锁系统测试

news2024/9/24 7:23:13

项目介绍

基于ESP32的智能门锁系统。可以运用在商务办公、家用住宅、酒店以及公租房短租公寓等领域。基于esp32的智能门锁系统是生物识别技术和嵌入式系统技术的完美结合,基于ESP32系统进行开发,同时在云端服务器搭建了MQTT服务器并连接开源的家庭自动化控制管理平台。主要功能为用户可通过指纹,RFID射频卡来开启门锁,门锁背部屏幕可显示天气、日期室内温湿度等信息,也可以通过云端管理平台,对门锁状态,警报状态,室内温湿度等信息进行查看并且可以远程控制门锁开关。

测试用例设计与执行

1. 指纹门锁功能测试

该功能有两类用户(普通用户和管理者),管理者可以进行此模块功能的使用,以下分别介绍不同用户以及非用户的功能测试。

1.1 管理者验证

当管理者将手指放上指纹模块后,OLED屏幕显示管理页面,其中有添加指纹、删除指纹、清库、返回命令的功能,如图1所示。

1

若用户非管理者则会省略管理页面的显示,如图2所示。

2

1.2 添加指纹

进入管理页面后,通过按键一实现添加指纹操作功能。按下按键一可以进行添加指纹操作,此时会提示用户放上需要添加的指纹,如图3所示。

3

若指纹已经存在,则提示用户,如图4所示。

                                                                          4

检测无误,将指纹添加成功提示信息,如图5所示。

5

1.3 删除指纹

进入管理页面后,通过按键二实现删除指纹操作。按下按键二,OLED屏幕进入删除指纹页面,如图1-6所示。

6

此时通过按键一和二来对指纹ID号的十位和个位进行操作,如图7所示。

 图 7

点击按键四确认,删除成功图8所示。

8

1.4 清库

进入管理页面后,通过按键三实现清库操作。按下按键三,对已有指纹库进行删除,此时将已经录入手指放上后,验证失败。如图9所示。

图 9

1.5 返回功能

进入管理页面后,通过按键四实现返回操作。按下按键四,退出管理模式进入指纹验证模式如图10所示。

10

在其他功能模式中也可通过该按键返回,如图11所示。

 图 11

1.6 普通用户验证

管理者添加指纹后,用户可以将手指放到指纹模块上,成功验证后开锁如图12所示。

 12

非用户则会验证失败,如图13所示。

 图13

指纹门锁功能测试表如下:

1 指纹门锁功能测试表

用例名称

RFID射频门锁功能测试

 测试条件   

用户使用IC卡成功开启门锁

测试步骤    

1. 将IC卡放到指定位置

2. 查看MG90S舵机的状态

测试结果

用户可以通过指定的IC卡来进行开锁的操作,未指定的IC卡无法通过验证

测试结论符合预期要求

2.RFID射频门锁功能测试

该功能对IC卡用户和非用户开锁功能进行测试。若位预设用户,则OLED屏幕上显示信息,如图14所示。

  图 14

非用户则无法通过验证,如图15所示。

 图15

RFID射频门锁功能测试表如下:

2 RFID射频门锁功能测试

用例名称

RFID射频门锁功能测试

测试条件

用户使用IC卡成功开启门锁

测试步骤

1. 将IC卡放到指定位置

2. 查看MG90S舵机的状态

测试结果                 

用户可以通过指定的IC卡来进行开锁的操作,未指定的IC卡 无法通过验证

测试结论                 

符合预期要求

2. 夜间停留预警功能测试

2.1 有无光照

对光敏传感器的灵敏度进行测试,在遮挡前控制台输出0,遮挡后输出1。如图16、17所示。

 16

 图17

2.2 人体红外检测

在光照情况下,当有人经过时红外检测不启用,如图5-18所示。

 18

在无光照情况下,当有人经过时,控制台打印输出经过时间,如图19所示。

 图19

2.3 停留预警

在无光照情况下,当有人停留超过1分钟时,蜂鸣器警报,并将数据传上home assistant供用户查看,如图20、21所示。

 图 5-20

 图21

夜间停留预警功能测试表如下:

表 5-3 夜间停留预警功能测试表

用例名称夜间停留预警功能测试
测试条件    有人停留超过1分钟时,蜂鸣器警报,并上传Home  assistant
测试步骤    

1. 对光敏传感器进行遮挡和不遮挡操作

2. 遮挡光敏传感器,用手停留在HC-SR501处

测试结果

光敏传感器以及HC-SR501在无光条件下控制台打印,当有人停留时间超过一分钟时蜂鸣器警报且Home assistant上收到警报,说明该功能正常

测试结论符合预期要求

  3.天气时钟+室内温湿度显示功能(门内)测试

在1.3寸TFT屏幕上显示时间,当地天气温度,以及日期等信息。如图22所示。

图 5-22

在TFT上显示由DHT11获取的温湿度数据,如图23所示。

 图 23

天气时钟+室内温湿度显示功能测试表如下:

表 4 天气时钟+室内温湿度显示功能测试表

用例名称天气时钟+室内温湿度显示功能
测试条件TFT屏幕上显示时间,天气温度,室内温湿度以及日期
测试步骤

1. 将屏幕接入ESP32下载代码

2. 屏幕显示信息

测试结果

TFT屏幕上能够成功显示显示时间,天气温度,室内温湿度以及日期信息,且无错误。

测试结论符合预期要求

3. home assistant远程控制功能测试

3.1 信息显示

在用户home assistant移动端上显示室内温湿度,门锁状态,警报等信息。如图24所示。

  24

3.2 控制门锁

在用户home assistant移动端通过点击按钮,控制门锁的开关。如图25、26所示。

25

26

home assistant远程控制功能测试表如下:

表 5 home assistant远程控制功能功能测试表

用例名称home assistant远程控制功能
测试条件TFT屏幕上显示时间,天气温度,室内温湿度以及日
测试步骤

1. 打开移动端home assistant,查看信息

2. 点击开锁按钮,查看同时查看门锁状态

测试结果

用户移动端home assistant能够正确显示门锁开关状态,室内                                   温湿度,预警信息。用户通过点击按钮能够远程控制门锁

测试结论符合预期要求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2033788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apple Intelligence 最詳細解說

Apple Intelligence究竟是什麼? 顧名思義,Apple Intelligence就是Apple獨家開發的 AI 模型(深度整合至 iOS 18、iPadOS 18 和 macOS Sequoia),旨在透過理解和生成語言和圖像、解讀上下文,並在特定App中執行…

【计算机网络】UDP实战

其实经过这几天写的几种不同的UDP的简易客户端与服务端,还是很有套路的,起手式都是非常像的。 更多的难点对我来说反而是解耦,各种各样的function一用,回调函数一调,呕吼,就会懵一下。 对于这篇文章&#x…

成功解决7版本的数据库导入 8版本数据库脚本报错问题

我 | 在这里 ⭐ 全栈开发攻城狮、全网10W粉丝、2022博客之星后端领域Top1、专家博主。 🎓擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60位同学顺利毕业 ✈️个人公众号:热爱技术的小郑。回复 Java全套视频教程 或 前端全套视频…

大数据面试SQL(七):累加刚好超过各省GDP40%的地市名称

文章目录 累加刚好超过各省GDP40%的地市名称 一、题目 二、分析 三、SQL实战 四、样例数据参考 累加刚好超过各省GDP40%的地市名称 一、题目 现有各省地级市的gdp数据,求从高到低累加刚好超过各省GDP40%的地市名称,临界地市也需要。 例如: 浙江省…

设计模式-延迟加载(Lazy Load)

概念 一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。 加载一个对象会引起大量相关对象的加载,这样会损害系统的性能。延迟加载会暂时终止这个加载过程。 运行机制 四种实现延迟加载的方法: 延迟初始化&am…

ThreadLocal —— 让每个线程拥有自己的变量副本

在多线程编程中,数据共享是一个常见的话题。很多时候我们需要多个线程共享同一个数据,以实现数据的一致性和通信。然而,在一些场景下,我们并不希望数据被多个线程共享,而是希望每个线程都拥有自己独立的一份数据。这时…

【C++类和对象(中)】—— 我与C++的不解之缘(四)

前言: 接下来进行类和对象中的学习,了解类和对象的默认成员函数 一、类和对象默认成员函数 默认成员函数就是用户没有显示实现,编译器会自动生成的成员函数。 一个类,我们不显示实现的情况下,编译器就会默认生成一下留…

无人机开启农林植保新篇章

嘿,小伙伴们,你们知道吗?无人机已经悄悄在农业领域大展拳脚,成为现代农业的“黑科技”新宠儿啦! 想象一下,广袤的田野上空,无人机如同勤劳的蜜蜂,精准高效地完成着各项任务&#xff…

unity 使用 compute shader的步骤

这里详细的记载使用步骤,我这个例子是让一个立方体上下不停的动 创建一个compute shader 一个普通shader 一个材质 一个C# 先挨个写上类容 这里kernel 指定main函数入口,RWStructuredBuffer就是数组,具体size是在外部指定的,可能…

C#使用CEFSharp获取动态网页源码

CEF 全称是Chromium Embedded Framework(Chromium嵌入式框架),是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。CEFSharp就是CEF的C#移植版本。 访问以下链接可以获取CEF的详细介绍 chromiumem…

c++版opencv长文指南

c版opencv长文指南 1、配置opencv库1.1 下载1.2 配置1.2.1 配置包含目录1.2.2 配置库含目录1.2.3 配置链接器1.2.4 配置系统环境变量 2、学习路线3、入门知识3.1 图像读取与显示3.2 图像色彩空间转换3.2 图像对象的创建与赋值3.2.1 图像对象的创建3.2.2 图像对象的赋值 3.3 图像…

轻松搞定小程序生成短链接/二维码,你学会了吗?

朋友们,大家有没有遇到过这样的困扰:小程序由于不是链接,在短信或者其他平台里根本没法推广,导致小程序的用户量很难涨起来。 那小程序转成链接真的就没办法实现吗?当然不是! 现在有一款超实用的工具——…

zigbee笔记:十、ZStack(2.3.0-1.4.0)的OSAL使用分析

zigbee笔记:九中,我们已经学会了利用模板,定制自己的个性开发工程,本文为协议栈(ZStack-CC2530-2.3.0-1.4.0)代码使用分析笔记,来进一步掌握协议栈的使用。 一、协议栈使用知识点 1、协调器、路…

python从入门到精通:基础语法讲解

1、字面量 字面量:在代码中,被写下来的固定的值,称之为字面量。 python中常用的几种数据类型: 类型描述说明数字(Number) 整数(int) 浮点数(float) 复数&a…

Graph-Cot:图上迭代推理

Graph-Cot:图上迭代推理 提出背景GRAPH-COT 对比 MindMapGRAPH-COT 和 MindMap 多链推理方法结合案例一:复杂症状的诊断案例二:罕见病的诊断案例三:治疗方案的制定 解法拆解目的问题解法 GRAPH-COT 医学问诊 论文:http…

(BO)Bayes-CNN多变量时序预测 基于贝叶斯算法-卷积神经网络多变量时序预测(多输入单输出)Matlab代码

Bayes-CNN多变量时序预测 基于贝叶斯算法-卷积神经网络多变量时序预测(多输入单输出)Matlab代码 程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!(如下) 需要其他的都可以…

CSS3下拉菜单实现

导航菜单&#xff1a; <nav class"multi_drop_menu"><!-- 一级开始 --><ul><li><a href"#">Power</a></li><li><a href"#">Money</a></li><li><a href"#"…

【数模修炼之旅】02 多目标规划 深度解析(教程+代码)

【数模修炼之旅】02 多目标规划 深度解析&#xff08;教程代码&#xff09; 接下来 C君将会用至少30个小节来为大家深度解析数模领域常用的算法&#xff0c;大家可以关注这个专栏&#xff0c;持续学习哦&#xff0c;对于大家的能力提高会有极大的帮助。 1 多目标规划介绍及应…

百度智能云发布3款轻量级+2款场景大模型

文心大模型ERNIE 3.5是目前百度智能云千帆大模型平台上最受欢迎的基础大模型之一。针对用户的常见通用的对话场景&#xff0c;ERNIE 3.5 在指令遵循、上下文学习和逻辑推理能力三方面分别进行了能力增强。 ERNIE Speed作为三款轻量级大模型中的“大个子”&#xff0c;推理场景…

解决连接不上Linux和服务器中的Nacos(Windows中能连接但是Linux中却不行)

报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNKNOWN: Uncaught exception in the SynchronizationContext. Re-thrown. at com.alibaba.nacos.shaded.io.grpc.Status.asRuntimeException(Status.jav 2024-08-13T10:21:52.93708:00 ERROR 27764 --- …