올바른 ESP8266 보드를 선택하세요, 예를 들어 (NodeMCU 1.0 (ESP-12E Module)), 그리고 해당 COM 포트를 선택하세요.
Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
“MFRC522”를 검색하고 GithubCommunity에서 제공하는 라이브러리를 찾으세요.
MFRC522 라이브러리를 설치하기 위해 Install 버튼을 누르세요.
RFID/NFC 태그의 UID를 발검하기 위해서는 첫 번째 단계로 Arduino IDE를 사용하여 ESP8266에 코드를 업로드한 다음 Upload 버튼을 클릭합니다. 그 후, 시리얼 모니터를 열고 태그를 RFID-RC522 모듈에 탭합니다. UID가 시리얼 모니터에 표시됩니다.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Unauthorized Tag with UID: 3A C9 6A CB
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
당신의 UID를 얻은 후에는:
코드의 20번째 줄에서 UID를 자신의 것으로 변경하세요. 예를 들어, byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; 를 byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB}; 로 변경하세요.
코드를 ESP8266 보드에 업로드하세요.
RFID/NFC 태그를 RFID-RC522 모듈에 탭하세요.
서보 모터가 90°로 회전해야 합니다.
시리얼 모니터에서 출력을 확인하세요.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Rotate Servo Motor to 90°
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
RFID-RC522 모듈에 RFID/NFC 태그를 다시 탭하세요.
서보 모터가 0°로 회전하며, 이를 시리얼 모니터에서 관찰할 수 있습니다.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Rotate Servo Motor to 90°
Authorized Tag
Rotate Servo Motor to 0°
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
RFID-RC522 모듈에 RFID/NFC 태그를 탭하세요.
출력을 확인하기 위해 시리얼 모니터를 확인하세요.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Rotate Servo Motor to 90°
Authorized Tag
Rotate Servo Motor to 0°
Unauthorized Tag with UID: BD 1E 1D 00
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
ESP8266 코드 - 다중 RFID/NFC 태그
우리는 여러 RFID/NFC 태그를 사용하여 서보 모터를 제어할 수 있습니다. 예를 들어, 아래 코드는 두 개의 태그를 사용합니다.
/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-rfid-servo-motor */#include <SPI.h>#include <MFRC522.h>#include <Servo.h>#define SS_PIN D8 // ESP8266 핀 D8#define RST_PIN D2 // ESP8266 핀 D2#define SERVO_PIN D1 // 서보 모터에 연결하는 ESP8266 핀MFRC522 rfid(SS_PIN, RST_PIN);Servo servo;byte authorizedUID1[4] = {0x3A, 0xC9, 0x6A, 0xCB};byte authorizedUID2[4] = {0x30, 0x01, 0x8B, 0x15};int angle = 0; // 서보 모터의 현재 각도voidsetup() {Serial.begin(9600);SPI.begin(); // SPI 버스 초기화 rfid.PCD_Init(); // MFRC522 초기화 servo.attach(SERVO_PIN); servo.write(angle); // 서보 모터를 0°로 회전Serial.println("Tap RFID/NFC Tag on reader");}voidloop() {if (rfid.PICC_IsNewCardPresent()) { // 새 태그가 감지됨if (rfid.PICC_ReadCardSerial()) { // NUID가 읽혔음MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);if (rfid.uid.uidByte[0] == authorizedUID1[0] && rfid.uid.uidByte[1] == authorizedUID1[1] && rfid.uid.uidByte[2] == authorizedUID1[2] && rfid.uid.uidByte[3] == authorizedUID1[3] ) {Serial.println("Authorized Tag 1"); changeServo(); } elseif (rfid.uid.uidByte[0] == authorizedUID2[0] && rfid.uid.uidByte[1] == authorizedUID2[1] && rfid.uid.uidByte[2] == authorizedUID2[2] && rfid.uid.uidByte[3] == authorizedUID2[3] ) {Serial.println("Authorized Tag 2"); changeServo(); } else {Serial.print("Unauthorized Tag with 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(); // PICC 중지 rfid.PCD_StopCrypto1(); // PCD의 암호화 중지 } }}void changeServo() {// 서보 모터의 각도 변경if (angle == 0) angle = 90;else//if(angle == 90) angle = 0;// 지정된 각도로 서보 모터 회전 servo.write(angle);Serial.print("Rotate Servo Motor to ");Serial.print(angle);Serial.println("°");}
이전과 같은 단계를 반복하고, 그런 다음 각 태그를 RFID-RC522 모듈에 탭하세요. 시리얼 모니터에서의 출력은 다음과 같이 나타나야 합니다:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag 2
Rotate Servo Motor to 90°
Authorized Tag 1
Rotate Servo Motor to 0°
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
위에 작성된 코드를 세 개, 네 개 또는 그 이상의 태그를 포함하도록 확장할 수 있습니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.