一、系统概述
本项目旨在使用 ESP32 微控制器和 RFID 技术构建一个安全可靠的门禁系统。该系统利用 RFID 卡进行身份验证,通过读取卡内存储的唯一 ID,判断用户权限并控制门锁的开关。ESP32 强大的 Wi-Fi 功能还能实现远程监控和管理,方便用户实时掌握门禁状态。
系统架构图:
二、RFID 技术介绍
RFID(射频识别)是一种无线通信技术,可以通过无线电波识别特定目标并读取数据,而无需建立机械或光学接触。
RFID 系统组成:
- **电子标签(Tag):**附着于目标物体上,存储着物体的标识信息。
- **读写器(Reader):**发射射频信号激活电子标签,读取或写入数据。
- **天线(Antenna):**用于 RFID 信号的发送和接收。
RFID 工作原理:
- 读写器发射射频信号。
- 电子标签接收到信号后,其内部电路被激活,并将存储的 ID 信息发送出去。
- 读写器接收电子标签发送的信号,并解码获得 ID 信息。
RFID 优势:
- 非接触式识别,方便快捷。
- 可读写,信息存储量大。
- 抗干扰能力强,安全性高。
三、ESP32 微控制器
ESP32 是一款低功耗、高性能的微控制器,集成了 Wi-Fi 和蓝牙功能,非常适合物联网应用开发。
ESP32 主要特点:
- 双核 32 位处理器,运行速度高达 240 MHz。
- 支持 Wi-Fi 802.11 b/g/n 协议,可连接互联网。
- 支持蓝牙 4.2 协议,可与手机等设备进行通信。
- 丰富的 GPIO 接口,方便连接各种传感器和执行器。
四、系统硬件设计
所需硬件:
- ESP32 开发板
- RFID 读写模块 (例如:RC522)
- RFID 卡
- 电磁锁
- 继电器模块
- 电源
硬件连接图:
五、系统软件设计
主要功能:
- 初始化 ESP32 和 RFID 模块。
- 读取 RFID 卡 ID。
- 验证用户权限。
- 控制门锁开关。
- 通过 Wi-Fi 连接云平台,实现远程监控。
代码示例 (Arduino IDE):
#include <SPI.h>
#include <MFRC522.h>
#include <WiFi.h>
// 定义 RFID 模块引脚
#define RST_PIN 9
#define SS_PIN 10
// 定义 Wi-Fi 信息
#define WIFI_SSID "your_ssid"
#define WIFI_PASSWORD "your_password"
// 创建 RFID 对象
MFRC522 mfrc522(SS_PIN, RST_PIN);
// 授权用户卡号
byte authorizedCard[] = {0xXX, 0xXX, 0xXX, 0xXX}; // 替换为实际卡号
void setup() {
Serial.begin(115200);
// 初始化 SPI 总线
SPI.begin();
// 初始化 RFID 模块
mfrc522.PCD_Init();
// 连接 Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
}
void loop() {
// 寻找 RFID 卡
if (! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// 读取卡 ID
if (! mfrc522.PICC_ReadCardSerial()) {
return;
}
// 验证卡号
if (memcmp(mfrc522.uid.uidByte, authorizedCard, mfrc522.uid.size) == 0) {
Serial.println("Access granted");
// 打开门锁
digitalWrite(lockPin, HIGH);
delay(2000);
// 关闭门锁
digitalWrite(lockPin, LOW);
} else {
Serial.println("Access denied");
}
// 停用当前卡
mfrc522.PICC_HaltA();
}
六、系统测试
完成硬件组装和软件上传后,即可进行系统测试:
- 将 RFID 卡靠近读写模块。
- 如果卡号匹配,门锁应打开几秒钟,然后自动关闭。
- 通过串口监视器查看系统日志。
七、总结
本项目介绍了如何使用 ESP32 和 RFID 技术构建一个简单的门禁系统。通过添加传感器、联网功能和更复杂的控制逻辑,可以进一步扩展系统功能,例如:
- 多用户管理
- 记录访问日志
- 手机远程开门
- 与其他智能家居系统集成、
相关知识点链接
- ESP32 官方文档
- Arduino ESP32 库
- RFID 技术介绍
- MFRC522 库
- 电磁锁工作原理