arduinopn532模块_树莓派使用libnfc驱动ITEAD NFC PN532模块

libnfc是首个遵循GNU(自由工程项目)通用公共许可证针对所有人都完全免费的低级别NFC软件开发包和编程应用程序接口。它提供了完整的透明度且免费供大家使用。该库目前支持调制ISO / IEC14443 A和B,FeliCa,Jewel/Topaz标签及数据交换协议(P2P)作为目标和启动程序。想了解更多关于libnfc的信息,可参考http://nfc-tools.org/

ITEAD PN532 NFC模块配有双排引脚,可直接通过排线连接到树莓派,然后树莓派将驱动模块进行非接触式近场通信操作,如读写13.56M IC卡。

1.jpg (59.74 KB, 下载次数: 211)

2014-6-7 15:35 上传

以下教程,演示如何在树莓派上使用libnfc通过SPI总线来驱动ITEAD PN532 模块。

1, 硬件链接

Itead PN532 Module是专门为树莓派量身定制的,仅需要排线直接连接就行,如下图

2.jpeg (33.43 KB, 下载次数: 205)

2014-6-7 15:35 上传

按照上图的连接方式,Itead PN532 模块是通过SPI总线与树莓派连接的,所以需要把NFC模块的工作模式设置为SPI模式,如下图:

即 :  SET0-->L   SET1-->H

3.jpg (46.22 KB, 下载次数: 190)

2014-6-7 15:35 上传

2,安装依赖的软件包

sudo apt-get update

sudo apt-get install libusb-dev libpcsclite-dev

3,下载并解压缩libnfc源码包

cd ~

tar -xf libnfc-1.7.1.tar.bz2

4,编译与安装

cd libnfc-1.7.1

./configure --prefix=/usr --sysconfdir=/etc

make

sudo make install

5, 修改配置文件

cd /etc

sudo mkdir nfc

sudo nano /etc/nfc/libnfc.conf

将如下内容复制到/etc/nfc/libnfc.conf文件中:

# Allow device auto-detection (default: true)

# Note: if this auto-detection is disabled, user has to set manually a device

# configuration using file or environment variable

allow_autoscan = true

# Allow intrusive auto-detection (default: false)

# Warning: intrusive auto-detection can seriously disturb other devices

# This option is not recommended, user should prefer to add manually his device.

allow_intrusive_scan = false

# Set log level (default: error)

# Valid log levels are (in order of verbosity): 0 (none), 1 (error), 2 (info), 3 (debug)

# Note: if you compiled with --enable-debug option, the default log level is "debug"

log_level = 1

# Manually set default device (no default)

# To set a default device, you must set both name and connstring for your device

# Note: if autoscan is enabled, default device will be the first device available in device list.

device.name = "Itead_PN532_SPI"

device.connstring = "pn532_spi:/dev/spidev0.0:500000"

6,树莓派系统默认是将SPI模块的驱动关闭的,我们需要将其打开;

sudo nano /etc/modprobe.d/raspi-blacklist.conf

在 “blacklist spi-bcm2708”前添加“#”,变为 “#blacklist spi-bcm2708”,如下图:

Rpi_pn532_3.gif (27.48 KB, 下载次数: 195)

2014-6-7 15:35 上传

重启后能在/dev下看到两个spi设备:

Rpi_pn532_4.gif (14.36 KB, 下载次数: 190)

2014-6-7 15:35 上传

7, 至此,准备工作已经做完,我们可以用“nfc-list”命令查看是否安装成功。

Rpi_pn532_5.gif (17.01 KB, 下载次数: 202)

2014-6-7 15:35 上传

现在,刷个卡试下。。

Rpi_pn532_6.gif (28.68 KB, 下载次数: 185)

2014-6-7 15:35 上传

测试OK!

下面再顺便介绍下第二个方法:

如何采用树莓派I2C总线连接的配置方式:

1. 软件配置

树莓派开启I2C总线,将/etc/modprobe.d/raspi-blacklist.conf中“blacklist i2c-bcm2708”变为“#blacklist i2c-bcm2708”

在/etc/modules末尾添加一行 “i2c-dev”

将/etc/nfc/libnfc.conf 文件最后一行改为:“pn532_i2c:/dev/i2c-1”

Rpi_pn532_7.gif (50.11 KB, 下载次数: 188)

2014-6-7 15:35 上传

2. 硬件连接,如下图所示:

rpi_pn532_9.gif (92.39 KB, 下载次数: 185)

2014-6-7 15:35 上传

刷卡测试,运行效果如图:

rpi_pn532_8.gif (61.39 KB, 下载次数: 198)

2014-6-7 15:35 上传

-----------------------------------------------------------------------------------------------

参考资料附录&相关链接:

A7. Disable R-Pi/RASPBIAN serial console for using UART0 http://learn.adafruit.com/adafru ... eing-uart-on-the-pi

-------------------------------------------------------------------------------------------------

教程到此结束,谢谢大家!有问题请留言或微博@ITEAD创易工作室

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jakarta ee_Jakarta EE的拟议命名空间

jakarta ee免责声明:这是我的个人观点,并不代表雇主的观点。 到目前为止,由于从Oracle迁移到Eclipse Foundation,每个人都知道我们需要将所有javax软件包名称重命名为其他名称。 (供参考,请参阅附录A&…

类ResourceBundle详解

类 ResourceBundle 的核心作用就是用来加载指定的属性资源文件(.properties 文件),其作用有点类似类 Properties。 public void test() {Locale locale new Locale("zh", "CN");// 根据指定的语言环境和基名加载资源文件…

Makefile浅尝

【0】README makefile定义: 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要一先编译,哪些文件需要后编译,哪些文件需要重新编译&a…

java类验证和装载顺序_Java类的加载顺序

1、有继承关系的加载顺序关于关键字static,大家 都知道它是静态的,相当于一个全局变量,也就是这个属性或者方法是可以通过类来访问,当class文件被加载进内存,开始初始化的时候,被static修饰的变量或者方法即…

java代码识别_识别Java中的代码气味

java代码识别作为软件开发人员,我们不仅要编写有效的代码,而且还要编写可维护的代码,这是我们的责任。 Martin Fowler在他的《重构:改进现有代码的设计》中将代码气味定义为: 通常对应于系统中更深层问题的表面指示 …

关于Java父子类继承的问题

1.子类无法继承父类的构造器 2.子类可以继承父类所有的变量和方法,父类私有的方法和变量也被继承到子类中,只是不可见而已,子类无法直接调用和访问。在子类对象中存储着父类中所有的变量的数据以及父类所有方法的引用地址。 3.被重写的父类方…

git连接到github(SSH无密码登陆)

【0】README 0.1)本文旨在尝试在linux环境下免密码连接到github,并进行push pull projects in github by git commands。0.1) 对ssh免密码登录有不熟悉的童鞋,please visit http://blog.csdn.net/pacosonswjtu/article/details/…

excel柱状图堆叠图显示总和_excel堆积柱形图显示百分比 在Excel堆积图中显示百分比标签的方法...

excel堆积柱形图显示百分比 在Excel堆积图中显示百分比标签的方法,前天刚学习了一个excel的新技术,叫“excel堆积柱形图显示百分比”授课老师对我们说,这一技术的专业全称为“excel堆积柱形图显示百分比 在Excel堆积图中显示百分比标签的方法…

java命令模式_Java中的命令设计模式

java命令模式在本教程中,我们将学习命令模式,这是一种重要的行为设计模式。 它具有一些重要的应用程序,例如在文本编辑器中实现撤消/重做功能。 在命令设计模式中,有一个命令对象位于发送方和接收方对象之间。 发送者对象可以创建…

抽象类与接口的区别

文章目录抽象类的理解接口的理解区别分析演示案例总结参考抽象类的理解 动物就是对某类事物的普遍性、共同性进行抽取后得到的用来反映这类事物本质的概念。 动物被定义为靠摄取有机物(植物、动物或微生物)来获得营养而不能完成无机物到有机物转化过程的能够对环境…

浅尝硬盘分区表

【0】README 0.1) text description from orange’s implemention of a os; 0.2) there are a number of analysis and attention proves to be essence of this page, I think; 0.3)Conclusion about hd partition table C1…

openjdk-7支持版本_长期支持对OpenJDK意味着什么?

openjdk-7支持版本Bruno Borges最近在推特上发布了一个有关OpenJDK的长期支持(LTS)的问题,这表明对它的真正含义仍有一些困惑。 在此博客文章中,我将解释不同部分如何组合在一起。 那么……谁说或在哪里说“ #OpenJDK 11”是LTS&…

android 安装卸载应用提醒_Android监听程序的安装和卸载

在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataStr…

常用函数式接口的学习

文章目录定义常用的函数式接口Supplier演示代码Consumeraccept 方法演示代码andThen 方法演示代码Predicatetest 方法and 方法演示代码or 方法negate 方法Functionapply 方法演示代码andThen 方法演示代码定义 有且仅有一个抽象方法的接口称之为“函数式接口”,但是…

如何创建虚拟硬盘 + os 读取硬盘参数代码

【0】README 0.1) 本文旨在演示如何利用 bximage 创建虚拟硬盘;0.2) 利用 os 读取硬盘参数, source code from orange’s implemention of a os , for complete code , please visit https://github.com/pacosonTang/Orange-s-OS…

内联脚本被视为是有害的_数据类被认为有害

内联脚本被视为是有害的这篇博客文章解释了从我参与的项目之一中删除Lombok项目的动机。 它反映了我的个人观点,并不妨碍特定的技术。 大约三年前,我认识了Project Lombok ,这是一个添加Java代码的库。 我从一开始就喜欢它,因为它…

win10可用空间变成未分配_教你两种方法有效利用Win10未分配的空间 - 易我科技...

Haley 于2020/08/24更新 磁盘分区管理摘要文中介绍了两种方法充分利用Windows10未分配空间,分别为1)格式化Win10未分配空间来创建新的分区,2)在分区上添加未分配空间。我的Win 10计算机上有一个大小99GB的未分配空间 :「我在Windows计算机上安装了两个硬…

selenium编写脚本_Selenium脚本编写技巧和窍门

selenium编写脚本如果您刚刚开始学习Selenium,则以下技巧和窍门将成为您的救星。 这些技巧和窍门具有您可能会忘记的所有基本知识,将帮助您记住所有这些。 您只需浏览一次,几秒钟后您便会了解所有内容。 让我们一一看一下所有的技巧和窍门。 …

div和div之间画横线_HTML如何在两个div标签中间画一条竖线

近日在画一个界面的时候,遇到一个需求:在界面当中画一条竖线,且这条竖线在高度上需要自动占满整个父div(即这条竖线的高度和两个div中较高的一个等高)。往常我们画一条横线直接用标签即可,当画一条竖线的时候发现找不到标签。在网…

静态类型/静态分派/动态分派/单分派/多分派

文章目录静态类型/实际类型方法解析静态分派动态单分派参考静态类型/实际类型 Human woman new Woman(); // Human就是静态类型,其实就是变量编译时类型,Woman就是实际类型 Man man new Man(); // 静态类型和实际类型都是Man方法解析 Class 文件的编…