고급 RFID 출결 시스템 v2.0 – 이더넷 없는 솔루션
부품 및 소모품
| 부품 | 수량 |
| Arduino UNO | 1 |
| 점퍼 와이어 (일반) | 1세트 |
| RFID RC522 모듈 | 1 |
앱 및 온라인 서비스
프로젝트 소개
기존 '이더넷 없는 온라인 RFID 출결 시스템' 1판이 프로그래밍 지식이 없는 취미 개발자에게 어렵다는 피드백을 받아, 코딩 과정을 없애고 연결만으로 구축할 수 있도록 개선한 2판입니다. LCD 디스플레이를 탑재해 실시간 상태 확인도 가능합니다.
작동 원리
회로 연결
LCD 화면 연결:
- 핀 3 → 220Ω 저항 → GND (콘트라스트 조절)
- LCD RS → A0, Enable → A1
- LCD D4 → D5, D5 → D4, D6 → D3, D7 → D2
- R/W → GND, VSS → GND, VCC → 5V
RFID RC522 연결 (SPI): SDA(SS) → D10, SCK → D13, MOSI → D11, MISO → D12, RST → D9, 3.3V → 3.3V, GND → GND
상세 핀맵은 회로도 섹션 참조.
소프트웨어 설정 및 실행 순서
- 웹에서 사용자 그룹 생성 및 검증 키 발급
user_group.html 접속 → 그룹 생성 → 무료 검증 키 발급 → 키 보관 필수.
- 데스크톱 앱 다운로드 및 압축 해제
위 링크의 두 ZIP 파일 다운로드 → PC에 풀기 (32/64비트 맞춰 선택).
- 하드웨어 연결
아두이노 + RFID 리더를 PC에 USB 연결.
- 아두이노 코드 업로드
제공된 스케치를 아두이노 IDE로 컴파일/업로드.
- RFID 태그 등록 (addRFIDTagsProg 실행)
프로그램 실행 → COM 포트 선택 → 검증 키 입력 → 'Validate Key' 클릭 → 카드 태그를 리더에 대고 UID 확인 → 사용자 이름 입력 → 등록. 웹 패널 'Pending User List'에서 직원/학생에 태그 할당.
- 출결 기록 (markOnlineAttendance 실행)
프로그램 실행 → 'Status: Connected' 확인 → RFID 태그를 리더에 몇 초간 대기 → 해당 사용자 출결 자동 기록.
- 출결 조회
웹 패널 'Attendance Controls → View Attendance'에서 월/년 선택 후 조회.
코드
아두이노 코드 (MFRC522 + LiquidCrystal 라이브러리 필요)
#include
#include
#include
const int rs = A0, en = A1, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
byte nuidPICC[4];
boolean chkConn = false, isValidating = false;
int greenLedPin = A2, redLedPin = A3, orangeLedPin = 6, buzzerPin = A4;
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;
lcd.begin(16, 2);
lcd.print("GadgetProgrammer");
delay(100);
lcd.setCursor(0, 1);
lcd.print(" Not Connected! ");
establishConnection();
}
void loop() {
// 시리얼 명령 처리 (PC 앱으로부터 A, V, S, 1/0/2/5 수신)
// LCD 상태 표시 및 LED/부저 피드백
// 카드 감지 시 UID 16진수로 시리얼 출력
// 상세 로직은 원본 코드 참조
}
// 헬퍼 함수들: printHex, printDec, glowGreenLed, glowRedLed, establishConnection 등
전체 코드는 원문 참조. MFRC522 라이브러리 예제 기반으로 LCD 및 시리얼 프로토콜 처리 추가됨.
회로도
아두이노-LCD 핀 연결도(pin_connections_of_arduino_and_lcd.tiff) 및 아두이노-RFID 핀 연결도(pin_connections_of_arduion_and_rfid.tiff) 제공됨.
⚠️ 주의 사항
- 웹 서비스(parikshacrack.com)가 현재 운영되지 않을 수 있습니다. 로컬 서버 구축 또는 대체 클라우드 서비스(Firebase, Google Sheets API 등) 연동 필요.
- 데스크톱 앱은 Windows 전용입니다. 타 OS 사용자는 Python 등 크로스플랫폼 언어로 직접 구현해야 합니다.
- RFID RC522는 3.3V 로직이므로 아두이노 5V 핀에 직접 연결 시 레벨 시프터 또는 분압 회로 권장.