Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

您所在的位置:网站首页 怎么读取门禁卡信息 Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

2024-07-17 14:08:19| 来源: 网络整理| 查看: 265

RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。常用的有低频(125k~134.2K)、高频(13.56Mhz)、超高频,微波等技术。RFID读写器也分移动式的和固定式的,目前RFID技术应用很广,如:图书馆,门禁系统,食品安全溯源等。

硬件准备

(基于Arduino的开发板、MFRC522读卡器模块) Arduino Uno * 1 在这里插入图片描述 RFID-RC522 模块 * 1 在这里插入图片描述 IC卡 * 1-2 在这里插入图片描述 RFID技术现在都非常成熟和应用广泛,今天我们就来看看这个RFID如何实现读取里面的数据

接线

Arduino Uno RFID-RC522 10 SDA 13 SCK 11 MOSI 12 MISO null IRQ GND GND 9 RST 3.3V 3.3V

需要用到RFID-RC522的库

法一、下载:https://github.com/miguelbalboa/rfid 下载解压到Arduino IDE的安装路径里的库文件夹libraries https://download.csdn.net/download/v86337286/11813061

法二、点开管理库,在搜索栏里输入RC522,找到图中的库, 在这里插入图片描述 在这里插入图片描述 点击安装(我这图是已经安装过) 在这里插入图片描述

示例代码 .

Arduino + RFID 读取 IC 卡信息

读取 IC 卡信息后并通过串口将卡号及0扇区卡号数据打印出来,其他15个扇区不显示扇区内容 代码如下

/* * -------------------------------------------------------------------------------------------------------------------- * Example sketch/program showing how to read data from a PICC to serial. * -------------------------------------------------------------------------------------------------------------------- * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid * * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID * Reader on the Arduino SPI interface. * * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages * when removing the PICC from reading distance too early. * * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading). * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so * keep the PICCs at reading distance until complete. * * @license Released into the public domain. * * Typical pin layout used: * ----------------------------------------------------------------------------------------- * MFRC522 Arduino Arduino Arduino Arduino Arduino * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro * Signal Pin Pin Pin Pin Pin Pin * ----------------------------------------------------------------------------------------- * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST * SPI SS SDA(SS) 10 53 D10 10 10 * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 */ #include #include #define RST_PIN 9 // Configurable, see typical pin layout above #define SS_PIN 10 // Configurable, see typical pin layout above MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { Serial.begin(9600); // Initialize serial communications with the PC while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void loop() { // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } // Dump debug info about the card; PICC_HaltA() is automatically called mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

运行此代码并将其中一张卡放入RFID卡时,很多信息显示在Arduino IDE的串行监视器上 在这里插入图片描述

看完了上面那如何在Arduino中获得RFID的UID?

Arduino uno中只获得RFID的UID 并通过串口转发

法一

创建了另一个函数: PICC_DumpDetailsToSerialUid(Uid *uid) 函数如下

//This is just for read UID! void MFRC522::PICC_DumpDetailsToSerialUid(Uid *uid){ Serial.print(F(“Card JUST UID :”)); for (byte i = 0; i < uid->size; i++) { if(uid->uidByte[i] < 0x10) Serial.print(F(" 0")); else Serial.print(F(" ")); Serial.print(uid->uidByte[i], HEX); } Serial.println(); }

可以把它放在你需要的任何地方 示例: 在这里插入图片描述 添加该功能后,您需要进入第410行的 MFRC522.h 库并添加

void PICC_DumpDetailsToSerialUid(Uid *uid);

在该库中进行了这两次编辑后,您可以在任意位置调用该函数 . 示例: 在这里插入图片描述 用Arduino调用它: mfrc522.PICC_DumpDetailsToSerialUid(&(mfrc522.uid)); 只仅且只有一个函数用于uid读取 效果 在这里插入图片描述

法二

返回UID的函数 .

/** * mfrc522.PICC_IsNewCardPresent() should be checked before * @return the card UID */ unsigned long getID(){ if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue return -1; } unsigned long hex_num; hex_num = mfrc522.uid.uidByte[0]


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭