2017년 10월 16일 월요일

PN532 NFC/RFID Controller + ESP8266 (Wemos D1 mini)

1. PN532 V3 Controller

 NFC/RFID 정보를 읽기위한 모듈로서 범용(?)적으로 사용되는 것이 PN532다. 내가 구매한 것은 버전3이며 입출력 모드의 선택이 가능한 모듈이다.  3개의 입출력 방식을 지원하나 금번에는 SPI 방식으로 연결하였다.

[ PN532 V3 ]
 위의 그림으로 놓고 보면 왼쪽 위가 입출력 모드를 설정하기 위한 2개의 스위치가 있으며, SPI 방식으로 연결하기 위해서는 오른쪽 박스 부분의 6개 핀이 연결되어야 한다.
SPI 방식의 입출력은 1번 스위치는 OFF, 2번 스위치는 ON 상태이며 위의 이미지 기준으로 스위치 부분에서 왼쪽이 2번 스위치 오른쪽이 1번 스위치 이며, 위쪽이 OFF, 아래쪽이 ON 이다.  (사실 PCB에 친절히 프린팅 되어 있다.)

3.3V ~ 5.0V 사이에서 동작하는 모듈이며, 소비전력은 크지 않은 편이다. 즉 Wemos D1 mini에서 뽑아서 써도 큰 문제가 되지않는 소비전력이다.

2. 선연결

 PN532쪽은 6개의 선을 뽑아서 Wemos의 아래핀에 연결하였다. 
PN532      Wemos D1  
SCK     -> D5
MOSI   -> D7
SS       -> D3
MISO   -> D6

SS의 경우 다른 핀에 연결하여 테스트는 해 보았지만, 그외의 핀은 Wemos가 정해놓은 핀이 있기 때문에 그것을 그대로 사용했다.

그외에 VCC와 GND를 연결해 주면 된다.

3. 테스트

일단 https://github.com/adafruit/Adafruit-PN532 에서 필요한 라이브러를 다운로드 받아 Arduino IDE에 추가 시킨다. 라이브러리 관리 창에서 직접 PN532를 검색해서 다운로드 가능하다.

그 후에 라이브러리에 포함된 PN532관련된 예제를 아무거나 열어서 테스트가 가능하다.
다만 위에서 설명한 방법으로 선을 연결하였다면, 아래의 코드와  같이 일부를 수정하면 된다. setup, loop함수를 제외한다면 실제로 필요한 코드는 7줄이면 된다. 

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

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

Adafruit_PN532 nfc(PN532_SS);

void setup(void) { ... }
void loop(void) { ... }


4. 끝으로

예제를 실행시키면 카드의 아이디를 가져오는데, 아직은 사용처를 정하지 않았다. T-money의 잔액이나 조회하는 것이나 만들어야겠다.

- 2019.03.22 추가
 아래의 링크에 제작 결과물, 제작 방법등을 소개 했다.
  [ 선불 교통 카드 잔액 조회기 만들기 ]









댓글 없음:

댓글 쓰기

활용도가 높은 파워뱅크를 만들어 보자 - 제1편 (설계 및 재료 조달편)

미안함 때문에...  파워뱅크 1차 버전을 만들어서 선물하였다 (총 2개 제작) . 파워뱅크를 먼저 선물받은 사람은 캠핑을 좋아하는 사람이기에 엄청 좋아했다. 컨셉 자체가 전등을 켤 수 있게 만들었고, 필요시 핸드폰등을 충전할 수 있으며, 쌀쌀한 날씨...