본문 바로가기

개발자/Raspberry Pi

라즈베리파이 RC522 RFID Module 테스트

반응형

 

 

RFID Card Reader/Detector Module Kit (13.56Mhz, RC522, S50, Mifare One)

 

라즈베리 파이 테스트 - 파이썬

 

 

우선 SPI 활성화를 해준다. 이미 되어있을것이다.

pi@raspberrypi ~ $ sudo nano /etc/modprobe.d/raspi-blacklist.conf

 

파일을 열어 #을 붙여 블랙리스트에서 제거해준다.

 

# blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708

#blacklist i2c-bcm2708

blacklist snd-soc-pcm512x

blacklist snd-soc-wm8804

 

파이썬 모듈을 사용하기 위해서 SPI wrapper 가 필요하다. 우선 'python-dev'를 인스톨하여 환경을 구성한다. 'python-dev’를 인스톨 하기 위해 다음 명령어를 사용한다.

 

$sudo apt-get install python-dev

 

SPI 버스로부터 데이터를 읽기 위해 필요한 함수들은 SPI-Py 집합에 있는데 이것은 github를 통해 구할 수 있다. 인스톨하기 위해 SPI-Py 라이브러리를 그대로 카피한다. 이것은 파이썬 SPI 라이브러리를 사용하기 위한 소스코드들이다.

 

$ git clone http://github.com/lthiery/SPI-Py.git

명령을 수행하면 현재 폴더의 하위디렉토리로 디렉토리에 카피된다.

 

Cloning into 'SPI-Py'...

remote: Counting objects: 64, done.

remote: Total 64 (delta 0), reused 0 (delta 0)

Unpacking objects: 100% (64/64), done.

$

 

SPI-Py module 을 인스톨 하기 위해 다음 명령어를 사용하면 인스톨이 된다.

 

$cd SPI-Py

$sudo python setup.py install

 

pi@raspberrypi ~/SPI-Py $ sudo python setup.py install

running install

running build

running build_ext

building 'spi' extension

creating build

creating build/temp.linux-armv6l-2.7

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c spi.c -o build/temp.linux-armv6l-2.7/spi.o

spi.c:197:2: warning: initialization from incompatible pointer type [enabled by default]

spi.c:197:2: warning: (near initialization for ‘SpiMethods[0].ml_meth’) [enabled by default]

creating build/lib.linux-armv6l-2.7

gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv6l-2.7/spi.o -o build/lib.linux-armv6l-2.7/spi.so

running install_lib

copying build/lib.linux-armv6l-2.7/spi.so -> /usr/local/lib/python2.7/dist-packages

running install_egg_info

Writing /usr/local/lib/python2.7/dist-packages/SPI_Py-1.0.egg-info

pi@raspberrypi ~/SPI-Py $

 

샘플 프로그램을 설치하여 테스트를 진행한다.

 

여기서 한가지 해주어야 할 것은 현재 스마트홈 라즈베리 파이는 SPI 포트를 두개를 사용할 수 있게 되 있다.  , SPI제어에 사용되는 CE0, CE1 이 있는데 하나는 MCP3208에서 CE0를 사용한다. 따라서 RFID 리더기에는 CE1을 사용해야 한다. 우리가 받은 예제는 CE0를 사용하게 되어 있으므로 반드시 아래처럼 바꾸어야 사용할 수 있다.

 

pi@raspberrypi ~/SPI-Py/MFRC522-python $ nano MFRC522.py 를 편집한다.

 

110 라인은 이렇게 되어있을 것이다.

serNum = [ ]

 

  def __init__(self, dev='/dev/spidev0.0', spd=1000000):

이것을 dev=/dev/spidev0.0’ 을 반드시 dev=/dev/spidev0.1 로 바꾸어 준다. ~

serNum = []

def __init__(self, dev='/dev/spidev0.1', spd=1000000):

‘Ctrl-x’ 하고 저장하려면  ‘Y’ 하고, 파일이름 변경없이 Enter 하면 된다.

아래와 같이 실행해 보자

 

pi@raspberrypi ~ $git clone https://github.com/rasplay/MFRC522-python.git

/MFRC522-python $ cd MFRC522-python

 

/MFRC522-python $ sudo python Read.py

 

이상태에서 RFID 리더기 위에 네모 태그나 원형 태그를 가져다 놓면 태그를 읽은 결과가 표시될 것이다.

 

pi@raspberrypi ~/SPI-Py/MFRC522-python $ sudo python Read.py

 

Welcome to the MFRC522 data read example

Press Ctrl-C to stop.

Card detected

Card read UID: 215,135,109,197

Size: 8

Sector 8 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

^CCtrl+C captured, ending read.

pi@raspberrypi ~/SPI-Py/MFRC522-python $

 

 

데이터를 확인했다면 ctrl-c 를 눌러 종료한다. 데이터를 읽고 쓰고 사용자 인증을 하는 다양한 응용 프로그램은 관련 사이트를 참조하여 진행하길 바란다.

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩