这篇文章来源于DevicePlus.com英语网站的翻译稿。
目的
本教程旨在展示何将RFID读卡器和执行器与Raspberry Pi集成在一起。基于本文讨论的基本原理,我们还会制造一个RFID狗门。
概述
在本教程中,我将介绍如何将RC522 RFID模块与Raspberry Pi基板集成在一起。我还将展示如何集成一个执行器(本例中是一个LED),来响应RFID模块的正确读取信息。该执行器可以是电磁锁、扬声器,甚至可以是记录数据的Web界面。我还会介绍如何利用此设计实现一个RFID狗门。
设备
表1:设备
物品 | 链接 |
---|---|
Raspberry Pi 3 | Raspberry Pi 链接 |
RC522 RFID 模块 | RFID 模块链接 |
HDMI 线 | HDMI 线链接 |
LED | Adafruit LED链接 |
鼠标 + 键盘 | 键盘/鼠标的Amazon链接 |
显示器/电视机 | 任何带有HDMI接口的电视机或显示器 |
跳线 | 跳线的Amazon链接 |
Micro USB 数据线 | Micro USB数据线的Amazon链接 |
面包板 | 面包板的Amazon链接 |
目录
1. 设计电路
2. 编写代码
a.启用 SPI
b.安装软件包
c.添加到 Read.py
3. 运行代码
a.获取 UID
b.运行最终脚本
4. 制作狗门的注意事项
5.其他设备选项
6.附录:Read.py
程序
1. 设计电路
我一直喜欢使用开源的原理图绘制和PCB布线软件Fritzing来制作接线图(图1:执行器为LED的电路原理图)。您可以通过以下链接(可选)下载Fritzing: https://fritzing.org/home/
第一张原理图是我正在制作的以LED作为执行器的电路。当RFID模块产生正确读取信号,LED会亮起。
第二个电路中的执行器是一个电磁锁。这个电路用于实现门锁和狗门设计。TIP120是一款达林顿功率晶体管阵列。它只允许Raspberry Pi控制电磁锁,电磁锁所需功率比Paspberry Pi的GPIO端口的输出还要大。
图1:执行器为LED的电路原理图
图2:执行器为电磁锁的电路原理图 RC522 RFID模块使用SPI(串行外围接口总线)连接到Raspberry Pi。SPI总线在嵌入式系统中应用相当普遍。读卡器应根据下表进行接线。
表2:RC522接线表
RC522 Pin | Raspberry Pi 引脚 | 导线颜色 |
---|---|---|
3.3V | 引脚 1 | 红 |
RST | 引脚 22 | 橙 |
GND | 引脚 6 | 黑 |
MISO | 引脚 21 | 白 |
MOSI | 引脚 19 | 灰 |
SCK | 引脚 23 | 绿 |
SDA | 引脚 24 | 蓝 |
我将执行器(一个LED)连接到了Raspberry Pi的引脚18。你也应该连接这个引脚。
2. 编写代码
a. 启用 SPI
第一步是在Raspberry Pi上启用SPI。为此,请打开命令行窗口并输入sudo raspi-config。系统会弹出Configuration Menu。选择菜单5“Interfacing Options”。现在选择“P4 SPI”。当系统问你是否要启用SPI接口时,选择“Yes”。配置菜单将显示“The SPI interface is enabled.”。要完成SPI的启用,请打开命令行终端并输入命令sudo reboot。Raspberry Pi会重启,从而完成SPI启用。
b. 安装软件包
我们要用的库是用Python 2编写的,不是Python 3。因此,第一步是安装Python 2.7。请输入sudo apt-get install python2.7-dev完成该操作。SPI PY库负责与RC522模块通信。我通过键入命令git clone https://github.com/lthiery/SPI-Py.git来克隆这个库。然后安装该库。首先,通过键入cd SPI-Py进入SPI-Py目录。然后键入sudo python setup.py install安装库。
c. 添加到 Read.py
Read.py脚本需要更改才能与RC522模块对话。编辑此脚本时,请滚动到脚本底部,然后加入注释“Authenticate”。本教程不涉及RFID的身份验证。确保在脚本头添加时间库。接下来找到标题为“#Configure LED Output Pin”的部分。这里是你配置执行器的地方。如果要将该设计应用于狗门,那么应将输出引脚配置到电磁锁。
接下来找到标题为“#Check to see if card UID read matches your card UID.”的部分。该If/Else语句检查读卡器从卡上读取的UID与您之前保存在脚本中的UID是否匹配,如果UID匹配,则执行器的输出为高。
3. 运行代码
a. 获取 UID
首次运行脚本时,您需要获取卡的UID。RFID卡的UID是与此卡相关联的唯一编号,类似于序列号。
要运行脚本,请将目录更改为保存脚本的目录。然后输入python Read.py,运行脚本。因为脚本读卡器UID,所以当你将卡放在读取器上时,它会拒绝访问。屏幕上会显示这张卡的UID。记下这个UID。编辑脚本,然后将脚本的UID更改为此值并保存。
图3:脚本运行,显示UID b. 运行最终脚本
输入python Read.py,再次运行脚本。现在,当你将卡放在读卡器上时,验证通过且LED会亮5秒钟。如果将你的设计应用于狗门,那么在验证通过后电磁锁会打开。
图4:等待读卡
图5:验证通过 4. 制作狗门的注意事项
如果要将该设计实现为一个狗门,那么你需要考虑其他一些设计技巧:
1. 添加第二个电磁锁,以保证两侧锁门。
2. 在门上添加一个霍尔效应(磁传感器)传感器和一块磁铁,以便让Raspberry Pi在锁门之前知道门已返回到关闭位置。
3. 如果你真的很有想法,那么可以围绕门设计较大的环形天线,代替在门上安装小型读卡器。你需要电磁线,而且需要将其焊接到读取模块上。这需要资深技巧,有关环形天线的信息请在这里阅读。
4. 如果你是资深程序员,那么可以阅读MFRC522 数据表,更改芯片组上的固件,更好地满足自己的应用要求。
5. 其他设备选项
a.门锁
b.安全锁
c.支付设备
d.运输跟踪/物流
e.零售/购物
6. 附录:Read.py
#!/usr/bin/env python # -*- coding: utf8 -*- import RPi.GPIO as GPIO import MFRC522 import signal import time continue_reading = True # Capture SIGINT for cleanup when the script is aborted def end_read(signal,frame): global continue_reading print ("Ctrl+C captured, ending read.") continue_reading = False GPIO.cleanup() # Hook the SIGINT signal.signal(signal.SIGINT, end_read) # Create an object of the class MFRC522 MIFAREReader = MFRC522.MFRC522() # Welcome message print ("Welcome to the MFRC522 data read example") print ("Press Ctrl-C to stop.") # This loop keeps checking for chips. If one is near it will get the UID and authenticate while continue_reading: # Scan for cards (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) # If a card is found if status == MIFAREReader.MI_OK: print ("Card detected") # Get the UID of the card (status,uid) = MIFAREReader.MFRC522_Anticoll() # If we have the UID, continue if status == MIFAREReader.MI_OK: # Print UID print ("Card read UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3])+','+str(uid[4])) # This is the default key for authentication key = [0xFF,0xFF,0xFF,0xFF,0xFF,0xFF] # Select the scanned tag MIFAREReader.MFRC522_SelectTag(uid) #ENTER Your Card UID here my_uid = [61,84,4,114,31] #Configure LED Output Pin LED = 18 GPIO.setup(LED, GPIO.OUT) GPIO.output(LED, GPIO.LOW) #Check to see if card UID read matches your card UID if uid == my_uid: #Open the Doggy Door if matching UIDs print("Access Granted") GPIO.output(LED, GPIO.HIGH) #Turn on LED time.sleep(5) #Wait 5 Seconds GPIO.output(LED, GPIO.LOW) #Turn off LED else: #Don't open if UIDs don't match print("Access Denied, YOU SHALL NOT PASS!") ## # Authenticate ## status = MIFAREReader.MFRC522_Auth(MIFAREReader.PICC_AUTHENT1A, 8, key, uid) ## ## # Check if authenticated ## if status == MIFAREReader.MI_OK: ## MIFAREReader.MFRC522_Read(8) ## MIFAREReader.MFRC522_StopCrypto1() ## else: ## print "Authentication error"
审核编辑:汤梓红
-
led
+关注
关注
242文章
23643浏览量
669804 -
RFID
+关注
关注
390文章
6353浏览量
240574 -
读卡器
+关注
关注
2文章
426浏览量
40023 -
Raspberry Pi
+关注
关注
2文章
616浏览量
22838
发布评论请先 登录
OLED显示器如何与Raspberry Pi一起使用?

如何将CYKIT-028 TFT模块与Raspberry Pi和ESP32微控制器结合使用?
请问如何将两个独立multisim的文件连接两个在一起仿真..
通过以太网线与VEE一起使用Raspberry Pi不起作用
用于Raspberry Pi的DIN导轨安装
使用Raspberry Pi 4和RFID模块的考勤系统

如何将RFID RC522与Raspberry Pi连接

将Arduino库与Raspberry Pi Pico C/C++ SDK一起使用


TwinCAT3 EtherCAT抓包 | 技术集结
在使用TwinCAT测试EtherCATEOE功能时,我们会发现正常是无法使用Wireshark去进行网络抓包抓取EtherCAT报文的,今天这篇文章就带大家来上手EtherCAT抓包方式。准备环境硬件环境:EtherKit开发板网线一根Type-CUSB线一根软件环境TwinCAT3RT-ThreadstudiowiresharkEtherCATEOE工程

EtherCAT科普系列(8):EtherCAT技术在机器视觉领域的应用
机器视觉是基于软件与硬件的组合,通过光学装置和非接触式的传感器自动地接受一个真实物体的图像,并利用软件算法处理图像以获得所需信息或用于控制机器人运动的装置。机器视觉可以赋予机器人及自动化设备获取外界信息并认知处理的能力。机器视觉系统内包含光学成像系统,可以作为自动化设备的视觉器官实现信息的输入,并借助视觉控制器代替人脑实现信息的处理与输出。从而实现赋予自动化

新品 | 26+6TOPS强悍算力!飞凌嵌入式FCU3501嵌入式控制单元发布
飞凌嵌入式FCU3501嵌入式控制单元基于瑞芯微RK3588处理器开发设计,4xCortex-A76+4xCortex-A55架构,A76主频高达2.4GHz,A55核主频高达1.8GHz,支持8K编解码,NPU算力6TOPS,支持算力卡拓展,可以插装Hailo-8 26TOPS M.2算力卡。

接口核心板必选 | 视美泰AIoT-3568SC 、 AIoT-3576SC:小身材大能量,轻松应对多场景设备扩展需求!
在智能硬件领域,「适配」是绕不开的关键词。无论是小屏设备的”寸土寸金”,还是模具开发的巨额成本,亦或是多产品线兼容的复杂需求,开发者总在寻找一款能「以不变应万变」的核心解决方案。视美泰旗下的AIoT-3568SC与AIoT-3576SC接口核心板系列,可以说是专为高灵活适配场景而生!无需为设备尺寸、模具限制或产品线差异妥协,一块核心板,即可释放无限可能。为什

3核A7+单核M0多核异构,米尔全新低功耗RK3506核心板发布
近日,米尔电子发布MYC-YR3506核心板和开发板,基于国产新一代入门级工业处理器瑞芯微RK3506,这款芯片采用三核Cortex-A7+单核Cortex-M0多核异构设计,不仅拥有丰富的工业接口、低功耗设计,还具备低延时和高实时性的特点。核心板提供RK3506B/RK3506J、商业级/工业级、512MB/256MBLPDDR3L、8GBeMMC/256

搭建树莓派网络监控系统:顶级工具与技术终极指南!
树莓派网络监控系统是一种经济高效且功能多样的解决方案,可用于监控网络性能、流量及整体运行状况。借助树莓派,我们可以搭建一个网络监控系统,实时洞察网络活动,从而帮助识别问题、优化性能并确保网络安全。安装树莓派网络监控系统有诸多益处。树莓派具备以太网接口,还内置了Wi-Fi功能,拥有足够的计算能力和内存,能够在Linux或Windows系统上运行。因此,那些为L

STM32驱动SD NAND(贴片式SD卡)全测试:GSR手环生物数据存储的擦写寿命与速度实测
在智能皮电手环及数据存储技术不断迭代的当下,主控 MCU STM32H750 与存储 SD NAND MKDV4GIL-AST 的强强联合,正引领行业进入全新发展阶段。二者凭借低功耗、高速读写与卓越稳定性的深度融合,以及高容量低成本的突出优势,成为大规模生产场景下极具竞争力的数据存储解决方案。

芯对话 | CBM16AD125Q这款ADC如何让我的性能翻倍?
综述在当今数字化时代,模数转换器(ADC)作为连接模拟世界与数字系统的关键桥梁,其技术发展对众多行业有着深远影响。从通信领域追求更高的数据传输速率与质量,到医疗影像领域渴望更精准的疾病诊断,再到工业控制领域需要适应复杂恶劣环境的稳定信号处理,ADC的性能提升成为推动这些行业进步的重要因素。行业现状分析在通信行业,5G乃至未来6G的发展,对基站信号处理提出了极

史上最全面解析:开关电源各功能电路
01开关电源的电路组成开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。开关电源的电路组成方框图如下:02输入电路的原理及常见电路1AC输入整流滤波电路原理①防雷电路:当有雷击,产生高压经电网导入电源时

有几种电平转换电路,适用于不同的场景
一.起因一般在消费电路的元器件之间,不同的器件IO的电压是不同的,常规的有5V,3.3V,1.8V等。当器件的IO电压一样的时候,比如都是5V,都是3.3V,那么其之间可以直接通讯,比如拉中断,I2Cdata/clk脚双方直接通讯等。当器件的IO电压不一样的时候,就需要进行电平转换,不然无法实现高低电平的变化。二.电平转换电路常见的有几种电平转换电路,适用于

瑞萨RA8系列教程 | 基于 RASC 生成 Keil 工程
对于不习惯用 e2 studio 进行开发的同学,可以借助 RASC 生成 Keil 工程,然后在 Keil 环境下愉快的完成开发任务。

共赴之约 | 第二十七届中国北京国际科技产业博览会圆满落幕
作为第二十七届北京科博会的参展方,芯佰微有幸与800余家全球科技同仁共赴「科技引领创享未来」之约!文章来源:北京贸促5月11日下午,第二十七届中国北京国际科技产业博览会圆满落幕。本届北京科博会主题为“科技引领创享未来”,由北京市人民政府主办,北京市贸促会,北京市科委、中关村管委会,北京市经济和信息化局,北京市知识产权局和北辰集团共同承办。5万平方米的展览云集

道生物联与巍泰技术联合发布 RTK 无线定位系统:TurMass™ 技术与厘米级高精度定位的深度融合
道生物联与巍泰技术联合推出全新一代 RTK 无线定位系统——WTS-100(V3.0 RTK)。该系统以巍泰技术自主研发的 RTK(实时动态载波相位差分)高精度定位技术为核心,深度融合道生物联国产新兴窄带高并发 TurMass™ 无线通信技术,为室外大规模定位场景提供厘米级高精度、广覆盖、高并发、低功耗、低成本的一站式解决方案,助力行业智能化升级。

智能家居中的清凉“智”选,310V无刷吊扇驱动方案--其利天下
炎炎夏日,如何营造出清凉、舒适且节能的室内环境成为了大众关注的焦点。吊扇作为一种经典的家用电器,以其大风量、长寿命、低能耗等优势,依然是众多家庭的首选。而随着智能控制技术与无刷电机技术的不断进步,吊扇正朝着智能化、高效化、低噪化的方向发展。那么接下来小编将结合目前市面上的指标,详细为大家讲解其利天下有限公司推出的无刷吊扇驱动方案。▲其利天下无刷吊扇驱动方案一

电源入口处防反接电路-汽车电子硬件电路设计
一、为什么要设计防反接电路电源入口处接线及线束制作一般人为操作,有正极和负极接反的可能性,可能会损坏电源和负载电路;汽车电子产品电性能测试标准ISO16750-2的4.7节包含了电压极性反接测试,汽车电子产品须通过该项测试。二、防反接电路设计1.基础版:二极管串联二极管是最简单的防反接电路,因为电源有电源路径(即正极)和返回路径(即负极,GND),那么用二极
评论