概述

RFID或射频识别是一种通过电磁波进行通信的方式(射频波,具体而言)。 RFID标签和RFID卡通常用于身份验证和访问控制。

您可能已经看到人们在办公室入口处刷身份证。身份证实际上是具有雇员个人信息的RFID卡。在他/她刷卡的那一刻,他的检查时间将被计算机捕获。

我已经使用RFID阅读器和RFID卡实施了多个项目,如 RFID安全访问控制系统使用8051 ,基于RFID的考勤系统和 Arduino RFID阅读器。

在所有这些项目中,我提到一个简单的RFID通信系统由三部分组成:RFID卡或标签(包含嵌入在芯片上的用户或产品信息), RFID阅读器(触发RFID卡并从卡中提取信息的设备)和主机系统(如计算机或微控制器,然后处理数据)。

在这个项目中,我将使用流行的EM-18 RFID阅读器模块和一些RFID卡。另一种流行的RFID阅读器称为RFID RC522。 EM-18和RC522 RFID模块之间的主要区别是:

EM-18基于125 KHz射频通信,而RC522基于13.56 MHz频率

进入接口选项后,EM-18使用串行通信,而RC522使用SPI通信(尽管芯片也支持I2C和UART)。

因此,选择RFID阅读器模块非常重要,因为它定义了如何使用Raspberry Pi或Arduino与模块进行通信。

我不会详细介绍RFID阅读器和RFID通信的工作细节,因为有许多类似于这里的教程: RFID技术及其应用。我将跳转到Raspberry Pi RFID阅读器界面。

设置用于串行通信的Raspberry Pi

我在Raspberry Pi RFID阅读器模块接口中提到的重要事项是EM-18 RFID阅读器模块使用UART通信即串行通信。如果你还记得,我还没有完成任何涉及Raspberry Pi串口通信的项目。

在继续使用Raspberry Pi和RFID阅读器模块的接口之前,有为了在Raspberry Pi中启用串行通信,您需要在Raspberry Pi中执行一些操作。

但是,我们希望将其更改为充当串行通信端口,以便我们可以连接外部外围设备,如本项目中的RFID阅读器,通过串行通信进行通信。

为了做到这一点,首先登录您的Raspberry Pi使用SSH(Putty)。输入以下命令进入Raspberry Pi配置工具。

sudo raspi-config

在“接口选项”中,选择“串行”选项。

现在,它询问您是否要通过串行通信访问登录shell。选择“否”选项。 然后,它要求您启用串行端口硬件。选择“是”选项。

完成该过程并重新启动Raspberry Pi。在Raspberry Pi启动后,一旦使用Putty登录agin并检查串行端口是否已启用,请输入以下命令。

dmesg | grep tty

在底部,您可以看到,“ttyS0”已配置如串行。现在,您可以继续使用Raspberry Pi连接RFID阅读器模块,通过串口进行通信。

Raspberry Pi RFID阅读器接口电路图

下图显示了Raspberry Pi和EM-18 RFID阅读器之间的连接。

所需组件

Raspberry Pi 3 Model B

EM-18 RFID阅读器模块

RS232 - 到 - USB适配器(因为我的RFID阅读器只有RS232输出)

少量RFID卡或RFID标签

RFID阅读器电源(我的RFID阅读器有5V稳压器)

用于Raspberry Pi和RS232-USB适配器的5V电源

连接电线

680Ω电阻(1/4瓦)

1.5KΩ电阻(1/4瓦)

电路设计

在Raspberry Pi上GPIO14和GPIO14即物理引脚8和10分别是UART TX和RX引脚。由于我们已经启用了Raspberry Pi的串行端口,您可以将这些引脚连接到外围设备。

现在是时候注意Raspberry Pi的工作原理了3.3V逻辑。因此,Raspberry Pin的RX引脚只能用3.3V逻辑给出。为了做到这一点,我们需要使用一个由两个电阻组成的简单分压器网络将RFID读取器的TX线电平转换为3.3V。

我使用了680Ω和1.5KΩ电阻。分压器的输出连接到Raspberry Pi的UART RXD引脚,即GPIO15。在Raspberry Pi和RFID读取器模块之间建立共同的接地连接。

代码

编写一个简单的Python脚本来读取RFID卡中的值,将其与预定义的值进行比较(我已事先收集了所有RFID卡的数据)并显示特定信息。

注意:在“port =‘/dev/ttyS0’”行中,将ttyS0替换为分配给您的串行设备的名称。

工作

Raspberry Pi RFID阅读器模块接口的工作非常简单。在Raspberry Pi上启用串行端口后,我们必须分配与UART通信相关的其余参数,即波特率,奇偶校验,停止位和数据大小。所有这些值都在Python代码中设置。

在此之后,您将收到“放置卡片”的消息。当您将RFID卡放在RFID阅读器上时,RFID阅读器模块将从卡读取数据并通过串行通信将数据发送到Raspberry Pi。

这Raspberry Pi进一步分析数据,并在屏幕上显示相应的消息。

应用程序

接口带有Raspberry Pi的RFID阅读器非常有用,因为您可以实现广泛的应用,例如:

访问控制

验证

电子机票

电子支付

电子收费

考勤

python通讯卡_如何使用树莓派连接EM-18RFID阅读器模块 并通过Python脚本从一些RFID卡访问信息...相关推荐

  1. 公安部身份证阅读器模块SAM通讯协议

    公安部身份证阅读器模块SAM通讯协议 图为:公安部身份证阅读器SAM模块照片 图为:东信新一代小身份证SAM模块 支持Windows.Android.Linux.ARM.单片机等各系统二次开发. 一. ...

  2. 树莓派接手机屏幕_如何将树莓派连接到手机屏幕

    第1步:您需要的东西 仅第一次: =>整个树莓派设置(显示器,键盘,鼠标,树莓派). 您可以使用朋友的设置,则只需要第一次使用. 始终使用: =>智能手机. => Raspberry ...

  3. 树莓派连接HC-SR501人体红外感应模块和蜂鸣器模块

    连接前准备 树莓派3 modelB型一个 HC-SR501传感器一只 低电平蜂鸣器模块(有源)即接上电就会响,低电平触发 母对母杜邦线三根 实物图如下: 博主连接的不是特别美观 两个传感器的连接图分别 ...

  4. python 函数调用列表_在项目列表上调用一个函数的最简洁方法 - python

    在python 2中,我使用map将函数应用于多个项目,例如,删除所有与模式匹配的项目: map(os.remove,glob.glob("*.pyc")) 当然我忽略了os.re ...

  5. 如何成为python 数据分析师_如何七周成为数据分析师20:了解和掌握Python的函数...

    本文是<如何七周成为数据分析师>的第二十教程,如果想要了解写作初衷,可以先行阅读七周指南.温馨提示:如果您已经熟悉Python,大可不必再看这篇文章,或只挑选部分. Python之所以灵活 ...

  6. python商业分析_科研进阶 | 纽约大学 | 商业分析、量化金融:基于Python的商业分析工具...

    科研进阶 | 纽约大学 | 商业分析.量化金融:基于Python的商业分析工具(8.22开课)​mp.weixin.qq.com 课题名称 = 基于Python的商业分析工具 = 项目背景 数据分析为 ...

  7. 业余学习python有用吗_对于那些不做编程工作的小伙伴来说,学习Python有什么用呢?...

    很多同学会说Python那么火,铺天盖地的都是他的广告,可是我的平时工作和学习又接触不到编程之类的东西,那来学习它又有什么用呢? 有没有这个必要呢?在此,小编对于有这种疑问的同学呢想对你们说,其实即便 ...

  8. python 青少年人工智能_青少年人工智能教育的典范 优必学教孩子用Python编写一部人工智能的字典...

    Python是一种计算机程序设计语言,是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本.从20世纪90年代初诞生至今,Python正在迅速成为全球大中小学编程入门课程的首选教学语言,这种 ...

  9. python打包命令_三个你必须要记住的Pyinstaller打包命令——利用Python实现打包exe...

    /1 前言/ 嘿,各位小伙伴,晚上好呀,我相信各位小伙伴都是python的爱好者.也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇.再不行,让代码替我们干着 ...

最新文章

  1. linux-进程的替换exec函数族
  2. 虚拟机安装CentOS 5.5详细过程和上网配置
  3. 白话Elasticsearch39-深入聚合数据分析之案例实战_搜索+聚合: 统计指定品牌下每个颜色的销量
  4. android 消除标题,Android Activity 去掉标题栏及全屏显示
  5. 采用存储复制方式同步数据,实现数据库安全升级
  6. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
  7. iphone字体大小设置_Win10电脑桌面上使用的记事本便签软件字体大小怎么调整?...
  8. java cl 規格_Java JavaCL類代碼示例
  9. IAR中如何实时观察变量值
  10. Python--网络编程
  11. 建立完善的日期定义表
  12. 搜索引擎这样用才有效率
  13. 【科普贴】MDIO接口详解
  14. Excel VBA小程序 -使用VBA实现VLOOKUP函数查询?
  15. 密码学|离散对数问题、计算量较大的二次方程求解(sagemath与python z3库的使用)
  16. Cookie 的 SameSite 属性
  17. 解决微信屏蔽淘宝链接的方法
  18. java web 注册登录_javaweb实现登录注册功能实例
  19. 冬季冷色调效果Lr预设
  20. 客户细分是客户关系管理的重要手段

热门文章

  1. Unity中使用模板测试模拟Mask组件效果
  2. 深入了解canvas标签(3)——使用图像
  3. shell教程(2):积木游戏之认识积木--重要的系统命令
  4. 微软通过共享文件夹的思路,使用工具SyncToy实现两台windows机器间的文件同步
  5. Heterogeneous Graph Neural Network(异质图神经网络)
  6. xcode联调设备出现“ ineligible Device”解决
  7. FreeRTOS 任务调度算法
  8. FREERTOS打印错误prvTaskExitError,找原因是如下:
  9. Monitor Linux —使用zabbix服务器的跨平台固件
  10. 计算机想ping一下网络,电脑的Ping值和网络带宽之间有什么关系?