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位

3e63b3fbge16525fece21amp69

6. 打开串口,把标签放在RFID天线处,此时LED灯会亮,串口会显示剩余的空车位数

3e63b3fbge16528685ebdamp69

不多说,贴上代码:

#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 下载更多相关资料。

Print Friendly, PDF & Email
标签: , , , , , ,

发表评论