iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
IoT

homekit+pixhawk系列 第 8

用raspberry pi 來當NFC 讀卡機吧

  • 分享至 

  • xImage
  •  

打了一大堆,然後瀏覽器掛掉,又要重打了,真的是GG easy Noobs。所以直接進入安裝環節,順便罵一下Safari真的是不適合拿來打文章?

硬體需求

  1. raspberry pi 不論什麼版本都可以
  2. pn532晶片的開發版或是breakout board或是讀卡機模組
  3. 耐心,不要生氣,生氣的時候喊GG easy Noobs,會有名為Noob的大神來幫助你
    使用SPI與raspberry pi連接,切記不要使用I2c以及UART,不然可能會出事
    連接方法如下圖所示
    連接方法
    詳細說明如下
  • raspberry pi 3V 連接開發版的 3.3V
  • raspberry pi GND 連接開發版的 GND
  • raspberry pi MOSI 連接開發版的 MOSI
  • raspberry pi MISO 連接開發版的 MISO
  • raspberry pi SCLK 連接開發版的 SCK
  • raspberry pi D5 連接開發版的 SSEL

調整輸出PN532訊號為SPI
SEL0 = OFF
SEL1 = ON

軟體安裝

照著adafruit的流程走一遍
首先先安裝python的套件

sudo pip3 install adafruit-circuitpython-pn532

這樣就有一個名為adafruit-circuitpython-pn532的套件了
接著打程式

import board
import busio
from digitalio import DigitalInOut

from adafruit_pn532.spi import PN532_SPI

# SPI connection:
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs_pin = DigitalInOut(board.D5)
pn532 = PN532_SPI(spi, cs_pin, debug=False)

ic, ver, rev, support = pn532.get_firmware_version()
print('Found PN532 with firmware version: {0}.{1}'.format(ver, rev))

# Configure PN532 to communicate with MiFare cards
pn532.SAM_configuration()

print('Waiting for RFID/NFC card...')
while True:
    # Check if a card is available to read
    uid = pn532.read_passive_target(timeout=0.5)
    print('.', end="")
    # Try again if no card is available.
    if uid is None:
        continue
    print('Found card with UID:', [hex(i) for i in uid])

這樣就可以讀出NFC卡裡面的東西囉,若要做一些關於門鎖的東西,就確認讀入的UID是否在白名單內,就可以囉,高級一點可以用資料庫,不然單純字串比對也是可以的啦


上一篇
地震文發射器
下一篇
做一個抓猴神器吧!
系列文
homekit+pixhawk30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言