ESP32 C3 Super Mini RFID

이 튜토리얼에서는 ESP32 C3 Super Mini와 RC522 RFID/NFC 리더를 사용하여 RFID/NFC 태그의 정보를 읽는 방법을 보여줍니다. RC522 모듈은 3.3V 장치이므로 ESP32 C3 Super Mini와 완벽하게 어울립니다.

이 튜토리얼에서 배울 내용:

ESP32 C3 Super Mini - RFID

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×RFID/NFC RC522 Kit (reader + tags) 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

RFID-RC522 모듈에 대하여

RFID-RC522는 전파를 통해 카드나 키 태그와 통신하는 근거리 리더입니다.

주요 특징:

  • MIFARE 카드, 키 포브, 스티커의 고유 ID(UID)를 읽습니다.
  • MIFARE 태그 내부의 메모리 블록을 읽고 쓸 수도 있습니다.
  • 몇 밀리미터에서 약 5 cm 거리까지 작동합니다.
  • SPI로 ESP32 C3 Super Mini와 통신하므로 몇 개의 전선만 필요합니다.
  • 카드 하나와 키 포브 하나가 포함된 키트로 제공되어 바로 테스트할 수 있습니다.

기술 사양:

  • 칩: NXP MFRC522.
  • 작동 전압: 3.3V 전용.
  • 무선 주파수: 13.56 MHz.
  • 인식 거리: 0 ~ 60 mm (태그와 안테나에 따라 다름).
  • 인터페이스: SPI, I2C, UART - 한 번에 하나만 사용.
  • SPI 속도: 최대 10 Mbit/s.
  • 전류: 읽는 동안 약 13-26 mA.

WARNING

RFID-RC522 모듈은 3.3V에서 작동합니다. VCC 핀은 반드시 ESP32 C3 Super Mini의 3.3V 핀에만 연결하세요. 5V는 모듈을 손상시킵니다.

핀아웃

RFID-RC522 모듈에는 8개의 핀이 있습니다. 일부 핀은 세 가지 인터페이스(SPI, I2C, UART) 간에 공유되며, 한 번에 하나의 인터페이스만 사용할 수 있습니다.

RFID-rc522 모듈 핀아웃
  • GND 핀: 이 핀을 GND(0V)에 연결합니다.
  • VCC 핀: 이 핀을 3.3V에 연결합니다.
  • RST 핀: 리셋 및 전원 차단 핀입니다. LOW 레벨이면 모듈이 완전 전원 차단 상태가 됩니다. 상승 에지에서 모듈이 리셋됩니다.
  • IRQ 핀: RFID 태그가 범위 안에 들어오면 ESP32 C3 Super Mini에 알릴 수 있는 인터럽트 핀입니다.
  • MISO/SCL/TX 핀: 다음과 같이 작동합니다:
    • SPI 인터페이스가 활성화되면 MISO 핀
    • I2C 인터페이스가 활성화되면 SCL 핀
    • UART 인터페이스가 활성화되면 TX 핀.
  • MOSI 핀: SPI 인터페이스가 활성화되면 MOSI로 작동합니다.
  • SCK 핀: SPI 인터페이스가 활성화되면 SCK로 작동합니다.
  • SS/SDA/RX 핀: 다음과 같이 작동합니다:
    • SPI 인터페이스가 활성화되면 SS 핀
    • I2C 인터페이스가 활성화되면 SDA 핀
    • UART 인터페이스가 활성화되면 RX 핀.

    ※ 주의:

    • 핀 순서는 제조사에 따라 다를 수 있습니다. 항상 모듈에 인쇄된 라벨을 사용하세요. 위 이미지는 DIYables 제조사 모듈의 핀아웃을 보여줍니다.
    • RFID-RC522 모듈은 3.3V로 작동합니다. RFID-RC522 모듈의 VCC 핀을 5V에 연결하지 마세요. 5V는 RFID-RC522 모듈을 태울 수 있습니다.
    • 이 튜토리얼에서는 ESP32 C3 Super Mini와 RFID-RC522 모듈 간의 통신에 SPI 인터페이스를 사용합니다.

배선 다이어그램

아래와 같이 RC522 모듈을 ESP32 C3 Super Mini의 SPI 핀에 배선합니다.

  • 참고: 모듈에는 3.3V 핀으로 전원을 공급하세요. 절대 5V를 사용하지 마세요.
  • 참고: 이 튜토리얼에서는 IRQ 핀을 사용하지 않습니다. 연결하지 않고 둡니다.
  • 참고: 점퍼선은 짧게 유지하세요. 긴 전선은 SPI 신호를 불안정하게 만듭니다.
  • 참고: ESP32 C3 Super Mini는 3.3V 보드이므로 레벨 시프터가 필요 없습니다.
ESP32 C3 Super Mini RFID rc522 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

RFID/NFC RC522 모듈과 ESP32 C3 Super Mini 간의 배선 표

RFID/NFC RC522 핀 ESP32 C3 Super Mini 핀
SS (SDA) GPIO7
SCK GPIO4
MOSI GPIO6
MISO GPIO5
IRQ 연결 안 함
GND GND
RST GPIO3
VCC 3.3V

ESP32 C3 Super Mini RFID/NFC 코드

아래 코드는 태그를 기다렸다가 태그의 유형과 UID를 시리얼 모니터에 출력합니다.

이 코드가 하는 일:

  • GPIO4(SCK), GPIO5(MISO), GPIO6(MOSI), GPIO7(SS)에서 SPI 버스를 시작합니다.
  • SS를 GPIO7, RST를 GPIO3으로 하여 MFRC522 리더를 초기화합니다.
  • 매 루프마다 새 태그가 범위 안에 있는지 확인합니다.
  • MIFARE 1KB 같은 태그 유형을 출력합니다.
  • 태그 UID를 16진수 형식으로 출력합니다.
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-rfid */ #include <SPI.h> #include <MFRC522.h> #define SCK_PIN 4 // The ESP32 C3 SuperMini pin connected to RC522's SCK pin #define MISO_PIN 5 // The ESP32 C3 SuperMini pin connected to RC522's MISO pin #define MOSI_PIN 6 // The ESP32 C3 SuperMini pin connected to RC522's MOSI pin #define SS_PIN 7 // The ESP32 C3 SuperMini pin connected to RC522's SS (SDA) pin #define RST_PIN 3 // The ESP32 C3 SuperMini pin connected to RC522's RST pin MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(115200); SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN, SS_PIN); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); Serial.print("RFID/NFC Tag Type: "); Serial.println(rfid.PICC_GetTypeName(piccType)); // print UID in Serial Monitor in the hex format Serial.print("UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

빠른 단계

  • ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
  • 부품 연결: 위의 배선 표에 따라 RC522 모듈을 ESP32 C3 Super Mini에 연결합니다.
  • USB 케이블 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 컴퓨터에 연결합니다.
  • Arduino IDE 열기: 컴퓨터에서 Arduino IDE를 실행합니다.
  • 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인합니다.
  • 포트 선택: ESP32 C3 Super Mini의 COM 포트를 선택합니다.
  • 라이브러리 매니저 열기: Arduino IDE 왼쪽 탐색 바에 있는 Library Manager 아이콘을 클릭합니다.
  • 라이브러리 검색: 검색창에 “MFRC522”를 입력한 다음 GithubCommunity의 라이브러리를 찾습니다.
  • 라이브러리 설치: Install 버튼을 클릭합니다.
  • Search for MFRC522 created by GithubCommunity and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Library Manager
Type:
All
Topic:
All
MFRC522 by GithubCommunity
Read/Write a RFID Card or Tag using the ISO/IEC 14443A/MIFARE interface. More info
1.4.11
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32C3 Dev Module on COM15
1
  • 코드 복사: 위 코드를 복사하여 Arduino IDE에 붙여넣습니다.
  • 코드 업로드: Upload 버튼을 클릭하여 코드를 컴파일하고 ESP32 C3 Super Mini 보드에 업로드합니다.
  • 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
아두이노 ide에서 시리얼 모니터를 여는 방법
  • 태그 갖다 대기: 여러 RFID/NFC 태그를 RFID-RC522 모듈에 갖다 댑니다.
  • 결과 확인: 각 태그의 UID가 시리얼 모니터에 출력됩니다.
  • 전문가 팁: 아무것도 출력되지 않으면 먼저 SS와 RST 전선을 확인하세요. SS나 RST 전선이 뒤바뀐 것이 가장 흔한 실수입니다.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Tap an RFID/NFC tag on the RFID-RC522 reader RFID/NFC Tag Type: MIFARE 1KB UID: 2B B8 59 B1 RFID/NFC Tag Type: MIFARE 1KB UID: 9C 4A 03 D7 RFID/NFC Tag Type: MIFARE Ultralight or Ultralight C UID: 15 75 46 7A 2C 5B 7E RFID/NFC Tag Type: MIFARE 1KB UID: E1 07 62 4F
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

코드 라인별 설명

위의 ESP32 C3 Super Mini 코드에는 라인별 설명이 포함되어 있습니다. 코드의 주석을 읽어보세요!

응용 분야 및 프로젝트 아이디어

ESP32 C3 Super Mini와 RC522 RFID 리더로 만들 수 있는 쉬운 프로젝트들입니다.

  • 도어 잠금 장치: 등록된 태그를 갖다 대면 전자석 잠금 장치를 엽니다.
  • 출석 기록기: 각 사람이 태그를 댈 때 UID와 시간을 저장합니다.
  • 현금 없는 자판기: 태그로 작은 기계나 릴레이를 작동시킵니다.
  • 장난감 상자 분류기: 각 장난감에 스티커 태그를 붙이고 LCD에 이름을 표시합니다.
  • WiFi 출입 기록: 모든 UID를 WiFi를 통해 웹 서버로 보냅니다.
  • 알람 해제: 올바른 태그가 있을 때만 부저 알람을 끕니다.

도전 과제

ESP32 C3 Super Mini의 RFID에 대해 더 배우기 위해 다음 작은 업그레이드를 해보세요.

  • 쉬움: 태그를 읽을 때마다 GPIO2의 LED를 1초 동안 켜보세요.
  • 쉬움: 원시 UID 대신 짧은 메시지를 출력해보세요.
  • 보통: 허용된 UID 목록을 저장하고 "Access granted" 또는 "Access denied"를 출력해보세요.
  • 보통: 허용된 태그에는 한 번, 알 수 없는 태그에는 두 번 울리는 부저를 추가해보세요.
  • 고급: MIFARE 태그의 메모리 블록에 자신만의 데이터를 읽고 써보세요.
  • 고급: 스캔한 모든 UID를 ESP32 C3 Super Mini가 호스팅하는 웹 페이지로 보내보세요.

댓글

관련 튜토리얼