站内搜索
发作品签到
专业版

智能无线交互辅助开门装置

工程标签

2.7k
0
0
16

简介

本项目是基于ESP32开发的室内外智能门锁无线识别装置,同时具备室外模块、Web、APP等多种开门方式,通过驱动室内开锁的机械结构将门打开,方便实用,可应用于学校宿舍、出租屋等具有传统开门方式的场景。

简介:本项目是基于ESP32开发的室内外智能门锁无线识别装置,同时具备室外模块、Web、APP等多种开门方式,通过驱动室内开锁的机械结构将门打开,方便实用,可应用于学校宿舍、出租屋等具有传统开门方式的场景。
星火计划2025

开源协议

LGPL 3.0

(未经作者授权,禁止转载)
创建时间:2025-07-22 21:20:35更新时间:2025-10-15 11:43:18

描述

一、项目简介🪄

 

         本项目基于ESP32进行开发,分为室内和室外两个模块

         室外模块主要用于IC卡的身份信息识别,第一次使用时会将第一张识别到的卡片设置为管理员,持有管理员卡可以对其他的卡进行录入操作,录入的卡号会存储到Flash,不会因为开关机而丢失信息,将IC卡置于RC522模块上方,ESP32通过RC522模块读取到IC卡,0.96寸的OLED会显示读取结果,当读取到正确的卡号时,ESP32通过ESP-NOW通信技术,发送识别信息到室内模块,驱动室内模块转动电机进行开门操作,如果识别到陌生卡号,则会驱动蜂鸣器进行报警。板载两个WS2812灯珠,用于指示模块状态,将模块的串口拓展了出来,预留了拓展其他模块的接口,例如需要使用指纹模块时,可以将串口接到ZW101指纹模块上,电源部分则使用18650锂电池进行供电,将电池电压升到5V升压和5V降压到3.3V,同时设计了锂电池保护电路DW01A+8205A,防止电池过放。同时也预留了Type-c的接口,支持外部供电。但是室外几乎无外部电源,因此大都使用锂电池供电,若锂电池电量不足,则可与室内模块的锂电池进行更换。

         室内模块则主要驱动室内进行开门的操作,当室外模块通过ESP-NOW发送正确的识别结果时,室内模块接收到信息,则会通过IO口的电平改变或者PWM驱动电机或舵机,拉动室内的机械装置,从而进行开门操作。当然室内模块也集成了许多其他的功能,开门操作除了可以使用室外模块之外,还可以利用点灯科技blinker、ESP32的局域网网站,、红外语音等,室内模块搭载了1.8寸的TFT彩屏,接入了心知天气API,可以读取当地的天气情况,学生的话,可以将自己的课表导入其中,它搭载了语音模块,可用于提醒,同时也集成了红外接收和红外发送电路,可以用作遥控器,定时驱动室内的空调或电视等,室内模块集成了电源管理电路和电源保护电路,有外部输入时使用外部电源同时为室内锂电池充电,无外部输入时可用锂电池作为应急电源进行开门操作,由于室外无外部电源供电,故只能使用电池供电,当室外电池无电时,可将室内电机作为备用进行更换,如此循环

室内模块 室外模块

二、项目功能✨

 

室外模块:

  • 0.96寸OLED显示
  • NFC读取、存储、删除
  • ESP-NOW通信
  • 蜂鸣器和WS2812灯状态指示
  • 拓展串口驱动指纹模块、人脸识别模块等

室内模块:

  • 1.8寸TFT彩屏显示
  • ICS43434声音采集
  • MAX98357AETE+T功放喇叭
  • 蜂鸣器和WS2812灯状态指示
  • 电机和舵机驱动
  • TF卡
  • 红外发送和接收
  • ESP-NOW无线交互
  • 心知天气API天气显示
  • 点灯科技blinker接入APP交互
  • WebService网页服务

 

三、项目参数🔮

 

  • 采用ESP32-D0WD-V3芯片和ESP32-WROOM-32E模组进行驱动
  • 室内屏幕采用ST7735驱动的1.8寸屏幕,128*160分辨率,室外0.96寸OLED显示屏,128*64分辨率
  • 电池采用单节18650锂电池,满电电压4.2V
  • 充电方案采用TP4056芯片,最大1A充电电流
  • 电源稳压电路5V稳压采用MT3608L芯片,3.3V稳压采用AMS1117-3.3V芯片
  • 锂电池保护电路集成了DW01A(监测芯片)、8205A(MOS管)
  • 电路集成CH340+自动下载电路,方便代码下载和调试

 

四、硬件设计🔌

 

4.1室外模块硬件设计📡

 

采用ESP32-D0WD-V3芯片,体积小不占空间,是ESP32-WROOM-32E模组内部的芯片。

搭载了两个WS2812彩灯,蜂鸣器RC522模块接口,0.96寸OLED显示屏,且一共4个按键

电源电路如下,搭载了锂电池保护电路MT3608进行电源升压,RT9013-3.3V进行3.3V稳压。

 

ESP32-D0WD-V3 模块电路
主控电路 电源电路

 

PCB设计完成后:

 

PCB正面 PCB背面

 

4.2室内模块硬件设计🏠

 

本电路采用 ESP32-WROOM-32E 模组(内置 ESP32-D0WD-V3 芯片) 作为主控核心,体积小、性能强,具备 WiFi 与蓝牙双模通信功能。

系统集成了 1.8 寸TFT彩色显示屏双路 WS2812 彩灯蜂鸣器提示电路语音播放功放模块(MAX98357A)数字麦克风(ICS43434)红外收发模块 以及 多功能按键输入,可实现丰富的人机交互与语音控制功能。

电机与舵机控制部分采用 RZ7899 驱动芯片,支持锁舌电机或舵机开锁输出。

电源部分设计完善,包含 TP4056 锂电池充电管理DW01A+8205A 电池保护电路MT3608 SX1308 升压模块 以及 AMS1117-3.3V 稳压输出,支持 Type-C 及 DC 接口供电,并通过 ADC 检测电池电压。

整机结构紧凑,功能完善,适用于智能门锁室内开锁控制场景。

 

电路原理图

 

PCB设计完后后:

 

PCB正面 PCB背面

 

五、软件设计💻

 

5.1 NFC识别、录入和删除

 

          我们设计的室内模块上安装了RC522 MINI RFID射频 IC卡感应模块,可以识别和操作 ISO14443A 协议、13.56MHz 的 IC 卡,例如 MIFARE 1K、MIFARE 4K、Ultralight 等。

识别正确/错误ID卡 更换管理员卡
录入新卡 删除已录入的用户卡

 

         上面的是我们对于NFC识别的流程图:当没有管理员时,第一张卡即为管理员,通过管理员的验证,可以进行更换管理员和保存新用户卡的操作,管理员无法被删除;当通过管理员验证,放置新卡会对卡号进行保存,也可自己执行删卡操作。

 

5.2 WS2812 灯珠控制

 

💡 状态提示:灯珠显示不同颜色与闪烁方式,直观反馈系统状态
💚 待机状态:蓝色/绿色常亮或缓慢呼吸,表示系统运行正常
✅ 识别成功:快速闪烁绿色两次或彩色流水动画
❌ 识别失败/未授权:红色闪烁两次并伴随蜂鸣器提示
🌈 管理员模式:彩虹渐变循环,表示处于特殊操作状态
⚡ 低电量提示:黄色常亮或周期性闪烁提醒用户

 

5.3 ESP-NOW 主副机通信

 

⚡ 低功耗快速响应:ESP32 内置 ESP-NOW 协议,毫秒级传输
🔗 可靠点对点/多对多:室外副机与室内主机直接通信,无需路由器
🆔 MAC 地址绑定:首次配置后自动保存副机地址,保证通信安全
💳 NFC 数据传输:副机识别卡片后发送 UID 或操作指令至主机
🔓 动作触发:主机验证后驱动电机/舵机开锁,或显示“Warning”
🖥️📈 状态提示:主机通过 OLED 弹窗显示信息,并通过 WS2812 灯带反馈状态
♻️ 自动重连:通信中断后可自动恢复,保证系统连续稳定运行

显示MAC地址 主机保存副机MAC地址
副机接收并保存主机MAC地址 副机手动选择WIFI和信道

 

为了保证主副机之间建立通信,因此需保证主机频道=WiFi信道=副机频道,通过上述步骤进行配置,可以满足ESP-NOW主副机通信条件。

 

5.4 OLED显示

 

🔧 外围电路:保证稳定驱动与可靠通信
🖋️ 信息展示:状态提示、文字与图形渲染、动画交互
🟢 开机动画:显示 LOGO / 欢迎动画
💤 待机界面:显示时间、电量、网络状态等
💳 NFC 卡识别:
  ✅ 有效卡 → "You Are Welcome"
  🔑 管理员卡 → "Admin Verified"
  ❌ 无效卡 → "Warning!!!"
📡 ESP-NOW 数据接收:弹窗显示接收到的信息(1.5 秒)
🛠️ 用户操作提示:存卡/删卡/换管理员操作步骤实时显示
♻️ 自动恢复:操作或事件结束后回到待机界面

 

python脚本生成图片数组 python脚本生成视频数组

 

用OLED显示视频和图片的技巧,我是通过自己写了一个简单的python脚本进行的方法:

U8G2库结合Python脚本实现OLED显示图片

U8G2库结合Python脚本实现OLED显示视频

 

5.5 TFT 显示

 

🖼️ 高清彩色界面:1.8寸 ST7735 彩屏,显示更丰富、信息更直观
🌤️ 心知天气显示:实时获取温度、湿度、天气状态,图文并茂
📡 ESP-NOW 数据提示:接收副机数据并弹窗显示
🔧 SPI 接口电路:裸屏设计,可靠驱动,支持电源滤波与上拉电阻
🎨 流畅动画与图形:采用 Sprite 缓冲技术,实现动态显示与进度条

 

TFT显示 python生成TFT显示数组

 

用TFT显示视频的话,可以选择直接在SD卡中存储视频,然后解码,直接显示出来,也可以通过生成对应的每一帧图片的数组,然后一帧一帧的图片显示出来,给人一种显示出视频的效果,我们就是采用数组显示的方式,但是占用了大量的内存。

 

5.6 红外发送和接收

 

🔹 红外发送

  • 支持常用的 38kHz 红外信号调制
  • 可通过本地网页或按键触发,发送自定义指令
  • 与系统其他模块联动,例如识别成功后可触发红外设备动作
  • 远程遥控家电:可控制空调、电视等设备,实现智能化操作

 

🔹 红外接收

  • 接收外部红外遥控器信号
  • ESP32 可解析信号码并触发对应动作
  • 可作为二次控制入口,实现多设备联动

 

红外遥控操作台 遥控空调

 

🔹 特点

💡 双向控制:既能发送也能接收红外信号
⚡ 低功耗快速响应:毫秒级解析与执行
🔧 可扩展性强:支持自定义码库,可接入不同红外设备
🎛️ 状态提示:可结合 OLED 或 WS2812 灯效显示操作状态

 

5.7 MAX98357语音播报

 

室内模块集成 MAX98357 I²S 数字音频功放,用于语音播报和系统提示音。通过 ESP32 内置 I²S 接口直接驱动音频数据,实现高保真语音输出。

 

Mp3Player.h文件
#pragma once
// #include
#include
#include
#include
#include
#include
#include
#include  // 新增头文件

class Mp3Player {
public:
    Mp3Player();
    bool begin(int csPin = 5);              // 初始化 SD 卡
    bool play(const char* filename);        // 播放 MP3(阻塞方式)
    bool playFromSPIFFS(const char* filename);        // 播放 MP3(阻塞方式)
    bool playAsync(const char* filename);   // 播放 MP3(非阻塞方式)
    void loop();                            // 非阻塞方式时需要在 loop() 里调用
    void stop();                            // 停止播放

private:
    // AudioFileSourceSD* _file;
    AudioFileSource* _file;   // 基类,兼容 SD 和 SPIFFS
    AudioGenerator *_mp3;   // 基类指针,可以指向 MP3 或 WAV
    AudioOutputI2S* _out;
    bool _asyncMode;
};
extern Mp3Player player;
 

🔹 主要功能

  • 📣 语音播报:播放提示音、欢迎语、警告信息等
  • 🎵 音乐与音效:可播放多种音频文件,增强交互体验
  • 🔗 联动控制:可与 NFC 识别、ESP-NOW 数据接收、WS2812 灯效联动,实现多模态反馈
  • 低功耗高效率:I²S 直连音频功放,功耗低且音质清晰

 

🔹 特点

🎤 高保真输出:数字音频直接驱动,无需额外 DAC
🛠️ 易扩展:支持多种音频格式,可定制提示语
💬 用户反馈直观:语音与显示、灯效结合,提升交互体验
♻️ 实时响应:毫秒级播放触发,确保操作提示同步

 

5.8 ICS43434语音识别

 

室内模块集成 ICS43434 数字 MEMS 麦克风,通过 ESP32 的 I²S 接口采集音频,实现语音识别与指令控制功能。

 

🔹 主要功能

  • 🗣️ 语音采集:高灵敏度数字麦克风,捕捉用户语音指令
  • 🎯 语音识别:配合 ESP32 内部算法或 AI 平台,实现简单指令解析
  • 🔗 联动控制:可与 MAX98357 语音播报、WS2812 灯效、ESP-NOW 通信联动
  • 低延迟:I²S 直连数字麦克风,确保语音采集和识别快速响应

 

🔹 特点
🎤 高灵敏度与低噪声:适合近场语音交互
🛠️ 易扩展:可接入多种语音识别算法或 AI 平台
💬 多模态交互:与 OLED/TFT 显示、灯效和播报结合,提升用户体验
♻️ 实时响应:语音指令可毫秒级触发动作

 

对于这个模块的功能,我们暂时还未实现,但是已经预留好了接口,准备在后续有空的时候添加AI控制功能。

 

5.9 SD卡读取

 

系统在室内模块集成 TF/SD 卡模块,用于存储音频文件、动画帧数据和系统配置,实现本地存储与播放功能。

 

🔹 主要功能

  • 📂 文件存储:存放语音播报音频、TFT/OLED 动画帧、日志与配置文件
  • 🎵 音频读取:与 MAX98357 联动,播放存储的音频文件
  • 🖼️ 图像/动画读取:为 TFT/OLED 提供动态图像数据,实现流畅显示
  • 🔗 系统联动:SD卡内容可结合 ESP-NOW、语音识别与灯效,实现多模态反馈

 

🔹 特点
⚡ 高速读取:SPI 接口实现快速文件访问
🛠️ 易扩展:支持多种文件格式(如 WAV、BMP)
💾 本地存储:减少对网络依赖,提高系统稳定性
♻️ 与其他模块协同:可用于动画播放、语音播报及系统配置读取

 

5.10 网页控制

 

系统在室内模块集成 Web 控制界面,通过 ESP32 内置 WiFi 提供本地网页访问,实现对设备的远程配置与控制。

 

主页 远程遥控界面
空调遥控 参数配置
参数调节 OTA更新

 

🔹 主要功能

  • ⚙️ 参数配置:可设置初始参数,如管理员卡、设备模式等
  • 🎛️ 实时调节:调节灯效亮度、音量、显示内容等参数
  • 🏠 设备控制:远程控制室内模块的灯效、TFT/OLED 显示、音频播放及红外设备
  • 📡 状态显示:网页可实时显示系统状态,包括在线设备、卡片识别结果、传感器数据等

 

🔹 特点
💻 便捷操作:通过浏览器即可访问,无需额外客户端
🔧 高度可定制:支持多种参数和控制模式,自由扩展
♻️ 多模块联动:网页操作可同时驱动 OLED/TFT/WS2812/红外/音频
⚡ 实时响应:用户操作可立即在设备上生效,交互流畅

 

5.11 点灯APP控制

 

系统支持通过 移动端 APP 对室内模块进行远程控制,实现灯效管理与状态反馈。

 

控制主页 设备分享操作

 

🔹 主要功能

  • 💡 灯效控制:开启/关闭 WS2812 灯带,调节颜色、亮度和动画模式
  • 🎛️ 分区管理:可对不同灯带区域进行独立控制,支持多样化显示
  • 🏠 远程操作:通过 WiFi 与室内模块连接,无需靠近设备即可控制
  • 📈 状态反馈:APP 实时显示灯带状态及其他联动模块信息

 

🔹 特点
⚡ 快速响应:APP 操作与灯效几乎同步,毫秒级反馈
🔧 高度可定制:支持自定义颜色方案和动画效果
♻️ 多模块联动:可与 OLED/TFT/ESP-NOW/音频模块同步显示状态
💻 便捷操作:界面友好,用户易上手

 

 

五、功能展示⚙️

 

室外开门展示
室内展示

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
Bin&FFS.zip
31
2
外壳.zip
15
3
voice.zip
20
克隆工程
添加到专辑
0
0
分享
Logo GIF0
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航