Arduino :: Lecture & TIPs

[Arduino] PN532 NFC / RFID Controller 와 ESP8266-12E

PN532 V3 Controller

NFC / RFID 규격의 신호로 전송되는 정보를 읽기 위한 모듈로 범용적으로 사용되고 있는 부품 중 하나가 PN532 입니다. 현재 판매되고 있는 버전의 대부분은 “버전 (v) 3” 으로 스위치가 컨트롤러 상단에 배치되어, 이를 사용해 입출력 모드의 선택과 변경이 용이하도록 설계된 모듈입니다. 세 가지 (SPI, I2C, UART (High Speed UART)) 의 입출력 방식을 지원합니다.

PN532 NFC RFID IC Card 센서 모듈을 주문하면 다음과 같이 NFC 메모리가 탑재된 카드와 NFC 키 링, 그리고 점퍼케이블이 함께 제공되어 간편하게 테스트 해 볼 수 있다. ⓒ happybono

하단의 사진을 기준으로 맨 위쪽 좌측에 입출력 모드를 변경하기 위한 2 개의 스위치가 자리하고 있습니다. SPI 방식으로 연결하기 위해서는 오른쪽 박스 안의 여섯 개의 핀이 모두 연결되어 있어야 하고, 1번 스위치는 [꺼짐], 2번 스위치는 [켜짐] 상태로 스위치 변경이 필요합니다. 스위치 부분을 기준으로 왼쪽이 2번 스위치, 오른쪽이 1번 스위치이며, 위쪽 방향으로 올리면 [꺼짐] 상태로, 아래쪽 방향으로 내리면 [켜짐] 상태로 전환됩니다.

모듈은 3.3V ~ 5.0V 범위 내에서 작동하며, ESP8266-12E 혹은 Wemos D1 Mini 에 연결해 사용하더라도 문제 없이 사용할 수 있고, 소비전력은 저전력으로 크지 않은 편에 속합니다.

[ PN532 NFC 컨트롤러 모듈 v3. ] ⓒ happybono

배선

PN532ESP8266-12E
SCKD5
MOSID7
SSD0
MISOD6

이 외에도 VCC 와 GND (Ground) 선을 연결해줍시다.

테스트

일단 https://github.com/adafruit/Adafruit-PN532 에서 필요한 Library (라이브러리) 를 다운로드 받아 Arduino IDE 에 추가 시킵니다. [라이브러리 관리] 창에서 직접 PN532를 검색하는 방법으로도 다운로드와 라이브러리 참조가 가능합니다.

이후, Library (라이브러리) 에 포함된 PN532 관련 예제를 통해 테스트와 디버깅이 가능합니다만, 위에서 설명한 방법과 같이 배선을 완료하였다면, 아래의 코드와 같이 일부를 수정하여 작동하는데 문제 없도록 처리 해 주시면 됩니다. setup() 함수와 loop() 함수를 제외한다면 실제로 필요한 코드는 7 줄 정도로 단순합니다.

#include <ESP8266WiFi.h>
#include <Adafruit_PN532.h>

#define PN532_SCK  (D5) //(2)
#define PN532_MOSI (D7) //(3)
#define PN532_SS   (D0) //(4)
#define PN532_MISO (D6) //(5)

Adafruit_PN532 nfc(PN532_SS);

void setup(void) { 
... 
}

void loop(void) {
...
}

포스팅을 마치며

예제를 실행시켜보시면 카드의 ID 값을 가져오는데, 아직은 어떻게 써야 할 지 감이 오질 않네요. 대중교통 카드의 잔액을 간편하게 조회할 수 있는 기기 나 한번 만들어봐야겠습니다.

[Arduino] 근거리 무선 통신 기술, NFC 와 ESP8266 을 이용한 선불교통카드 잔액 조회기

외국인 친구들이 한국에 여행 차 방문하는 경우가 종종 생깁니다. 상황이 되면 제가 친구들을 따라다니며 가이드를 해 주는데 외국인 친구들이 한국에 들렀을 때 대중교통을 가장 저렴하면서도 편하게 이용할 수 있는 방법 중 하나가 바로 편의점에서 선불 교통카드를 구매한 후 충전하여 사용하는 방법입니다. 그러나, 가장 많은 불편함을 느끼며 제게 이야기 해주는 것 중 하나가 선불 교통카드의 잔액 […]

고맙습니다.

1 comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: