用rfid读取数据
来源:互联网 发布:淘宝上怎么做一件代发 编辑:程序博客网 时间:2024/04/28 10:48
直接是用uno 的板子接到rfid rc522上 对tag上的信息进行读取,如果读取到了验证的id 就播放相应的音乐,当其离开读卡器的时候停止播放音乐
#include <MFRC522.h>#include <SPI.h>/*PinsSPI UNO Mega2560 Leonardo1 (NSS) SAD (SS) 10 53 102 SCK 13 52 SCK13 MOSI 11 51 MOSI14 MISO 12 50 MISO15 IRQ * * *6 GND GND GND GND7 RST 5 ? Reset8 +3.3V (VCC) 3V3 3V3 3.3V*/#define SAD 10#define RST 5MFRC522 nfc(SAD, RST);//Create MFRC522 instance#define ledPinOpen 2#define ledPinClosed 3void setup() { pinMode(ledPinOpen , OUTPUT); pinMode(ledPinClosed, OUTPUT); SPI.begin();// Init SPI bus Serial.begin(115200);//Initialize serial communications with the PC Serial.println("Looking for MFRC522."); nfc.begin();// Init MFRC522 card byte version = nfc.getFirmwareVersion(); if (! version) { Serial.print("Didn't find MFRC522 board."); while(1); //halt } Serial.print("Found chip MFRC522 "); Serial.print("Firmware ver. 0x"); Serial.print(version, HEX); Serial.println(".");}#define AUTHORIZED_COUNT 3 /*If you want more Authorized of cards set the count here, and then add the serials below*/byte Authorized[AUTHORIZED_COUNT][6] = { {0x45, 0x14, 0x39, 0x2E, 0xFF, 0xFF, } /*,{0x10, 0x14, 0x39, 0x2E, 0xFF, 0xFF, }*/ /*f. example how to add more authorized cards*/ ,{0x7C,0x76,0x4A,0x32} ,{0x04,0xBD,0x41,0x08} }; void printSerial(byte *serial);boolean isSame(byte *key, byte *serial);boolean isAuthorized(byte *serial);//pre musicboolean preTag=true;byte preSerial[5];void loop() { byte status; byte data[MAX_LEN]; byte serial[5]; boolean Opening = false; digitalWrite(ledPinOpen, Opening); digitalWrite(ledPinClosed, !Opening); status = nfc.requestTag(MF1_REQIDL, data); if (status == MI_OK) { status = nfc.antiCollision(data); memcpy(serial, data, 5); if(isAuthorized(serial)) { //Serial.println("Authenticated"); Opening = true; // if(preTag) { memcpy(preSerial,data,5); preTag=false; } else { if(isSame(preSerial,serial)) { //keep or start to playing; printSerial(serial); Serial.println("playinnnnnng~~~"); } else { memcpy(preSerial,data,5); } } } else { printSerial(serial); Serial.println("is NOT authenticated"); Opening = false; } nfc.haltTag(); digitalWrite(ledPinOpen, Opening); digitalWrite(ledPinClosed, !Opening); //delay(2000); }//if (status == MI_OK) delay(500); // stop the music if(!Opening) { Serial.println("stoping"); }}//void loop()boolean isSame(byte *key, byte *serial){ for (int i = 0; i < 4; i++) { if (key[i] != serial[i]) { return false; } } return true;}boolean isAuthorized(byte *serial){ for(int i = 0; i<AUTHORIZED_COUNT; i++) { if(isSame(serial, Authorized[i])) return true; } return false;}void printSerial(byte *serial){ Serial.print("Serial:"); for (int i = 0; i < 4; i++) { Serial.print(serial[i], HEX); Serial.print(" "); }}
0 0
- 用rfid读取数据
- RFID之数据编码
- 大四课程设计之基于RFID技术的考勤管理系统(二)读取COM口数据
- RFID常用数据编码格式
- C#用Activex实现Web客户端读取RFID功能的代码
- Arduino NFC实验,Arduino读取RFID信息
- MF-RC522 RFID 在Arduino中的读取
- RFID
- RFID
- RFID
- RFID
- RFID
- RFID
- RFID
- 用stringstream读取数据
- RFID学习(四)数据编码
- 组态软件实现RFID设备数据采集
- 实现网页版的限时定时RFID读取
- DRAM、SDRAM 和 SRAM的 区别
- radio 切换效果 -JQuery绑定事件.bind() 绑定radio值
- C++11初窥一:保证稳定性和兼容性
- 第十六周项目4-为动态数组扩容
- WPF初接触
- 用rfid读取数据
- ssh远程登录可能出现的问题以及解决办法
- js小数计算小数点后显示多位小数--问题
- RGB565转RGB888
- 指针与内存管理的学习---认识指针
- Android 中SQList用法详解(增删查改)
- CGRectDivide的使用
- 如何在 SQL Server 实例之间传输登录和密码
- 【Linux】将Eclipse中的java项目转移到Linux下运行