当前位置: 首页 > article >正文

智能锁项目

一、项目介绍

1、项目基本需求

按键功能:输入密码,并能根据密码来决定开门还是进入管理员模式 --IIC

密码功能:能够更换开门密码/管理员密码,且具有掉电不丢失功能

刷卡功能:能够判断卡片是否登记;刷卡开门;删除/登记开门卡片 --SPI

指纹功能:指纹开门;删除/登记指纹   集成的模块 -- UART

语音功能:播放不同功能的语言提示 – 播放40段固定语音信息  

门铃功能:机械开关控制门铃响

显示功能:  LCD屏幕显示 --SPI

阿里云服务器接入:连接阿里云服务器,可以上报设备信息,也可以通过服务器端无线控制,如修改密码、恢复出厂设置、调节音量大小、远程开门等

2、硬件设计框图

  • 主控芯片:

型号:STM32F401RET6;核心:Cortex-M4;主频:84Mhz;内部Flash:512KB;管脚:64个。

  • EEPROM:

        芯片型号:AT24C04;内部结构:AT24C04芯片分为2个数据区,每个可存256Bytes。

  • FLASH:

        芯片型号:W25Q64;内部结构64M 位/8M 字节。

  • 触摸按键:

        BS8116电容触摸传感器控制芯片来管理数字密码键盘的操作。具有12个按键输入通道以及1个触摸感应中断输出,一旦有按键被按下,则中断脚IRQ则输出低电平。BS8116电容触摸传感器控制芯片采用I2C总线方式进行数据读写。

  • RFID射频识别模块:

        射频识别即RFID(Radio Frequency IDentification)技术,又称电子标签、无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。常用的有低频(125k~134.2K)、高频(13.56Mhz)、超高频,无源等技术。RFID读写器也分移动式的和固定式的,目前RFID技术应用很广,如:图书馆,门禁系统,食品安全溯源等。

  • LCD显示屏:

        智能锁开发平台使用1.3英寸彩色LCD液晶屏,液晶屏分辨率为240×240。LCD液晶屏显示控制器型号为:ST7789VW

  • 指纹模块:

        智能锁开发平台项目采用MG200电容式指纹采集器。MG200电容指纹识别模块使用电容指纹传感器,可完成指纹的采集、比对、储存以及相关的扩展功能。模块包含硬件和软件(核心算法及管理程序)两部分。

  • 语音芯片:

        智能锁开发平台项目板载一个语音芯片和一个8欧1W的喇叭,可以通过语音芯片和喇叭来播放40段语音提示信息以及门铃音乐等。语音芯片内的语音数据出厂时已经固化,用户不能自行烧录改变。

  • ESP32-WIFI&蓝牙双模模组:

        ESP32 可作为独立系统运行应用程序或是主机 MCU 的从设备,通过 SPI / SDIO 或 I2C / UART 接口提供 Wi-Fi 和蓝牙功能。

  • 门锁电机

        直流电机  

二、项目架构

1、什么是架构思想

无具体功能但有具体的进出逻辑

2、架构的作用特点

提高开发效率

稳定性

通用性

3、项目流程

软件层面:

  1. 需求可行性分析 ①分析需要做什么功能 ②需要做的功能是否行得通
  2. 搭建程序架构  
  3. 测试架构  空套跑架构,按下按键是否能递进到下一个界面
  4. 写各个功能的底层驱动以及应用功能 并移植到架构中测试

4、如何搭建架构

基于LCD屏幕和BS8116触摸按键搭建架构,按下按键能层层递进到下一个界面或者返回上一界面再或者返回主界面

搭逻辑

调函数

程序架构 :

硬件初始化部分--->各个功能模块的初始化

中断部分--->利用定时中断,实时更新时间并显示到屏幕;利用串口中断,分别接收指纹模块与esp32解析后的数据包

主循环逻辑(状态机扫描)是门锁程序的核心部分,它负责不断地检测输入设备(如RFID读卡器、按键等)的状态,根据输入调用相应的功能模块进行处理,并更新门锁的状态和显示信息。

 


http://www.kler.cn/a/408780.html

相关文章:

  • 使用 Nginx 在 Ubuntu 22.04 上安装 LibreNMS 开源网络监控系统
  • cangjie (仓颉) vscode环境搭建
  • 大语言模型---Llama7B和Llama8B的区别;模型参数量;权重文件的不同;嵌入层权重的不同;输入序列长度的不同;应用场景
  • Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
  • 网络安全,文明上网(5)注重隐私加密
  • leetcode刷题记录(四十二)——101. 对称二叉树
  • 【阵列信号处理】相干信号和非相干信号生成
  • 单片机系统的性能指标有哪些?
  • 前端三剑客(二):CSS
  • 【GPT】睡觉时,大脑在做什么
  • SCAU软件体系结构实验四 组合模式
  • (四)Spring Boot学习——整合修改使用druid连接池
  • Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能
  • 鸿蒙学习高效开发与测试-测试工具(5)
  • IM项目-----ElasticSearch
  • C++游戏《密室逃脱2.0》预告
  • 【云计算】CentOS7.9. LVM扩容实战小记
  • private static final long serialVersionUID = 1L
  • 基于微信小程序的教室预约系统+LW示例参考
  • leetcode:124二叉树中最大路径和
  • opencv细节
  • unity小:URP下shaderGraph管道流光效果(节奏速率可控)
  • 数据源的统一与拆分 apache calcite 的雄心与现实
  • Unity图形学之边缘检测
  • moduo之线程池ThreadPool
  • JavaScript中的箭头函数以及编写优化