This is an example code for reading a NFC/RFID tag with a reader using NFC library for Go. The NFC library requires to have libnfc 1.8.0+ installed on your device.
I was using a Raspberry Pi with PN532 and followed the instructions from Adafruit: Building libnfc on Raspberry Pi .
-
Get and extract the libnfc:
cd ~ mkdir libnfc && cd libnfc/ wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.8.0/libnfc-1.8.0.tar.bz2 tar -xvjf libnfc-1.8.0.tar.bz2
Next two steps depend on your reader and it's configuration of libnfc
-
Create PN532 configuration:
cd libnfc-1.8.0 sudo mkdir /etc/nfc sudo mkdir /etc/nfc/devices.d sudo cp contrib/libnfc/pn532_uart_on_rpi.conf.sample /etc/nfc/devices.d/pn532_uart_on_rpi.conf sudo nano /etc/nfc/devices.d/pn532_uart_on_rpi.conf
-
Update the pn532_uart_on_rpi.conf:
allow_intrusive_scan = true
-
Install dependencies for building:
sudo apt-get install autoconf sudo apt-get install libtool sudo apt-get install libpcsclite-dev libusb-dev autoreconf -vis ./configure --with-drivers=pn532_uart --sysconfdir=/etc --prefix=/usr
-
Build the library:
sudo make clean sudo make install all
Clone the repo:
git clone https://github.com/xBlaz3kx/nfc-reader-go-example/
Install the libnfc, then run:
go run nfc-reader-example.go
or
go build nfc-reader-example.go && ./nfc-reader-example