AS3992 UHF RFID for arduino 车库管理源代码
功能说明:选用Eleckits的as3992 RFID模块,arduino控制,LED灯替代车库电机,当有车进入,打开门闸(LED亮),并且通过串口显示剩余车位。
1. 把某个标签的EPC填入代码中的EPC_A的数组中
2. 库的压缩包NewSoftSerial.rar解压到arduino0022安装目录下的 libraries文件夹下
3. 将代码烧写进arduino UNO
4. 将220欧姆电阻与LED一端相连,把LED的正极连接到UNO的10,电阻的另一端接UNO的GND.RFID的串口的TX,RX,GND分别接UNO的0,3,GND
5. 打开串口调试软件,选择正确的串口号,波特率115200,校验位NONE,数据位8位,停止位1位
6. 打开串口,把标签放在RFID天线处,此时LED灯会亮,串口会显示剩余的空车位数
不多说,贴上代码:
#include #define DEBUG #define LOCAT_EPC 6 #define EPC_len 12 #define MAXCONTAIN 2 //设置最大车位数,可自行设置 #define OUT 0 //出车库 #define IN !OUT //入车库 #define SWITCH 10 //可控制挡车杆 NewSoftSerial as3992(2,3); char CountOfIn=0; //已经占用的车位 byte COMMAND[30]; byte ReceBuffer[50]; //接收到的数据 byte EPC[MAXCONTAIN][EPC_len]; //保存进入车库的EPC byte epc_t[EPC_len]; //扫描到的车的EPC int NumOfRece=0; //rfid返回的数据的个数 byte char_in; void setup() { Serial.begin(115200); as3992.begin(115200); pinMode(3,OUTPUT); pinMode(SWITCH,OUTPUT); } void loop() { byte *WhichCar=NULL; if(SearchForTag(epc_t,0x01) > 0) { if( InOrOut( EPC,epc_t,WhichCar) == IN) //有车要进去 { //判断epc_t是否在EPC[][]中,如果在,说明有车要出去,并用WhichCar保存该车在EPC[][]中的编号. //如果不在,说明车要进入 if( CountOfIn == MAXCONTAIN) { #ifdef DEBUG Serial.print("No empty parking space...\n\n"); #endif ; } else { digitalWrite(SWITCH,HIGH); for(byte i;i<EPC_len;i++) EPC[CountOfIn][i]=epc_t[i]; CountOfIn++; while(1) { if(SearchForTag(epc_t,0x01) == 0) { delay(500); if(SearchForTag(epc_t,0x01) == 0) break; } } digitalWrite(SWITCH,LOW); #ifdef DEBUG Serial.print(MAXCONTAIN-CountOfIn); Serial.print(" empty parking space left..\n\n"); #endif } } else //有车要出去 { digitalWrite(SWITCH,HIGH); for(byte j=(*WhichCar);j < CountOfIn-1;j++) { for(byte i=0;i<EPC_len;i++) EPC[j][i]=EPC[j+1][i]; } while(1) { if(SearchForTag(epc_t,0x01) == 0) { delay(500); if(SearchForTag(epc_t,0x01) == 0) break; } } CountOfIn--; digitalWrite(SWITCH,LOW); #ifdef DEBUG Serial.print(MAXCONTAIN-CountOfIn); Serial.print(" empty parking space left..\n\n"); #endif } } } void ReceData(byte * buffer) { NumOfRece=0; int index=0; while(Serial.available() > 0) { char_in=Serial.read(); NumOfRece++; *(buffer+index)=char_in; index++; } } byte InOrOut( byte epc[][EPC_len], byte *epc_t,byte *which ) { byte p,j; for(p=0;p<CountOfIn;p++) //循环对比此车EPC是否在车库中记录的EPC中 { for(j=0;j<EPC_len;j++) //循环12次比较EPC { if( epc_t[j]==epc[p][j] ) ; else break; } if(j==EPC_len) { *which=p; return OUT; } } return IN; } byte SearchForTag(byte *epc,byte start) { COMMAND[0]=0x31; COMMAND[1]=0x03; COMMAND[2]=start; char i; for(i=0;i<COMMAND[1];i++) as3992.print(COMMAND[i]); delay(100); //延迟很重要 ReceData(ReceBuffer); if(ReceBuffer[0] == 0x32 && ReceBuffer[2] > 0) { byte StartPoint=LOCAT_EPC; for(byte j=StartPoint,k=0;k<EPC_len;j++,k++) //保存EPC epc[k]=ReceBuffer[j]; return ReceBuffer[2]; } else return 0; } |
完全兼容AMS官方价值RMB 4000元的Roger开发板。适合客户做RFID的二次开发。我们是模块产品,可以通过普通Uart接口把模块集成到您的项目中。我们的价格只是原厂的四分之一!!!!!
Uart串口UHF RFID读写器 915M 无源GEN2超高频读写模块 AS3992
http://item.taobao.com/item.htm?spm=a1z10.1.w4004-3535073336.7.rTV2tL&id=15138367983
RFID 读写器系统包括如下部分:
电源适配器+3.0~3.3V/2A 一个 赠送
RFID 读写模块 一块
RFID 读写天线 (单独选配)
1、3dBi PCB MMCX口 UHF 天线:尺寸 4.5cm*4.1cm
http://item.taobao.com/item.htm?spm=a1z10.5.w4002-3535073328.12.Dejdh5&id=13640879646
2、5dBi PCB MMCX口 UHF 天线:尺寸 10cm * 10cm
http://item.taobao.com/item.htm?spm=a1z10.5.w4002-3535073328.18.Dejdh5&id=23426460127
3、【推荐!!】8dBi 板状定向圆极化 MMCX口 UHF 天线:尺寸 22.5cm*22.5cm
http://item.taobao.com/item.htm?spm=a1z10.5.w4002-3535073328.15.Dejdh5&id=22075632296
与PC 机连接的通信电缆 一条 赠送
EPC UHF GEN2 电子标签 一个 赠送
RFID 读写器开发资料SDK及应用程序 赠送
更多资料、手册,在 http://arm.eleckits.com 下载频道 UHF RFID页面可以直接下载。
您还可以登陆 http://rfid.eleckits.com 下载更多相关资料。
发表评论
要发表评论,您必须先登录。