DIY 智能门禁:用 ESP32 & RFID 打造安全便捷的家居体验 (附代码)

一、系统概述

本项目旨在使用 ESP32 微控制器和 RFID 技术构建一个安全可靠的门禁系统。该系统利用 RFID 卡进行身份验证,通过读取卡内存储的唯一 ID,判断用户权限并控制门锁的开关。ESP32 强大的 Wi-Fi 功能还能实现远程监控和管理,方便用户实时掌握门禁状态。

系统架构图:

二、RFID 技术介绍

RFID(射频识别)是一种无线通信技术,可以通过无线电波识别特定目标并读取数据,而无需建立机械或光学接触。

RFID 系统组成:

  • **电子标签(Tag):**附着于目标物体上,存储着物体的标识信息。
  • **读写器(Reader):**发射射频信号激活电子标签,读取或写入数据。
  • **天线(Antenna):**用于 RFID 信号的发送和接收。

RFID 工作原理:

  1. 读写器发射射频信号。
  2. 电子标签接收到信号后,其内部电路被激活,并将存储的 ID 信息发送出去。
  3. 读写器接收电子标签发送的信号,并解码获得 ID 信息。

RFID 优势:

  • 非接触式识别,方便快捷。
  • 可读写,信息存储量大。
  • 抗干扰能力强,安全性高。

三、ESP32 微控制器

ESP32 是一款低功耗、高性能的微控制器,集成了 Wi-Fi 和蓝牙功能,非常适合物联网应用开发。

ESP32 主要特点:

  • 双核 32 位处理器,运行速度高达 240 MHz。
  • 支持 Wi-Fi 802.11 b/g/n 协议,可连接互联网。
  • 支持蓝牙 4.2 协议,可与手机等设备进行通信。
  • 丰富的 GPIO 接口,方便连接各种传感器和执行器。

四、系统硬件设计

所需硬件:

  • ESP32 开发板
  • RFID 读写模块 (例如:RC522)
  • RFID 卡
  • 电磁锁
  • 继电器模块
  • 电源

硬件连接图:

五、系统软件设计

主要功能:

  1. 初始化 ESP32 和 RFID 模块。
  2. 读取 RFID 卡 ID。
  3. 验证用户权限。
  4. 控制门锁开关。
  5. 通过 Wi-Fi 连接云平台,实现远程监控。

代码示例 (Arduino IDE):

cpp 复制代码
#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();
}

六、系统测试

完成硬件组装和软件上传后,即可进行系统测试:

  1. 将 RFID 卡靠近读写模块。
  2. 如果卡号匹配,门锁应打开几秒钟,然后自动关闭。
  3. 通过串口监视器查看系统日志。

七、总结

本项目介绍了如何使用 ESP32 和 RFID 技术构建一个简单的门禁系统。通过添加传感器、联网功能和更复杂的控制逻辑,可以进一步扩展系统功能,例如:

  • 多用户管理
  • 记录访问日志
  • 手机远程开门
  • 与其他智能家居系统集成、

相关知识点链接

相关推荐
mahuifa3 小时前
C++(Qt)软件调试---VS性能探查器(27)
c++·qt·内存泄漏·vs性能探查器·cpu性能分析
天马行空_3 小时前
周记-唐纳德的《计算机程序设计艺术》
c++
冀晓武5 小时前
C++ 设计模式:观察者模式(Observer Pattern)
c++·观察者模式·设计模式
捕鲸叉5 小时前
C++设计模式之行为型模式概述,它们的目的与特点
c++·设计模式
冀晓武5 小时前
C++ 设计模式:享元模式(Flyweight Pattern)
c++·设计模式·享元模式
染指11106 小时前
51.第二阶段x86游戏实战2-继续寻找lua
c++·游戏安全·反游戏外挂·游戏逆向
959y6 小时前
[STM32] 串口通信 (十一)
stm32·单片机·嵌入式硬件
天拓四方_bjttsf6 小时前
Modbus数据网关在制造企业的应用与效果
物联网
冀晓武6 小时前
C++ 设计模式:建造者模式(Builder Pattern)
c++·设计模式·建造者模式
逝灮7 小时前
【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块
stm32·单片机·mcu·物联网·蓝桥杯·光敏电阻·人体热释电传感器