前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于esp8266开发板实现宿舍门禁

基于esp8266开发板实现宿舍门禁

原创
作者头像
菜菜有点菜
发布2023-12-11 21:03:09
1450
发布2023-12-11 21:03:09
举报
文章被收录于专栏:白菜博客白菜博客

准备硬件:

esp8266

mg996舵机

rfid模块

具体实现代码:

代码语言:c
复制
#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h>

#define SDA_PIN 4
#define RST_PIN 5

Servo myservo;
MFRC522 mfrc522(SDA_PIN, RST_PIN);

byte allowedUID1[] = {0xC3, 0x85, 0x66, 0x09};
byte allowedUID2[] = {0x1D, 0xC8, 0x6A, 0xD5, 0x04, 0x10, 0x80};

void setup() {
  myservo.attach(2);
  myservo.write(0);  
  Serial.begin(115200);
  SPI.begin();
  mfrc522.PCD_Init();
  delay(4);
}

void loop() {
  Serial.println("Start Access!!!");
  delay(50);

  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    if (isUIDAllowed()) {
      grantAccess();
    } else {
      denyAccess();
    }
    
    mfrc522.PICC_HaltA();
    mfrc522.PCD_StopCrypto1();
  }
}

bool isUIDAllowed() {
  return memcmp(mfrc522.uid.uidByte, allowedUID1, sizeof(allowedUID1)) == 0 ||
         memcmp(mfrc522.uid.uidByte, allowedUID2, sizeof(allowedUID2)) == 0;
}

void grantAccess() {
  Serial.println("Access granted");
  myservo.write(180);
  delay(1500);
  myservo.write(0);
}

void denyAccess() {
  Serial.println("Access denied");
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备硬件:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档