酒店智能门锁/门禁智能系统开发实例

一。酒店智能门锁/门禁智能系统开发需要技术基础有:

       1.RFID系统技术基础(常用125KHz和13.56M)

       2.八位微处理器开发技术,如C51或者AVR C语言编程技术

      3.酒店智能门锁管理软件,常用VB/VC/VS2005/VS2008/DEPHI开发,还需要懂数据库,如SQL

      4.卡片知识  ID卡 H4001/

                           IC卡T5557/E5550/

                           Mifare I 卡S50/S70

二。技术详解(以低频125KHz为例解剖电子门锁的核心技术)

     1.RFID系统原理(详见电子书《无线射频识别技术理论与应用》)


    在RFID系统中有两个LC电路:由基站线圈和连接电容组成的LRCR电路以及由应答器线圈和连接电容组成的LTCT电路。在单线圈系统中,要求两个LC电路调谐在相同的谐振频率上。如果基站和应答器的谐振频率不匹配,零调制就会产生,从而降低系统的性能。在系统设计成型后,天线的电感是固定的,因此要改变LC电路的谐振频率,只有调节回路中的电容量。

  2.曼码调制的非接触式IC卡的译码及C51编程技术详解



解码程序范例及分析如下:

解码程序结果放在 

unsigned long Id[2]={0,0};    //存放ID内码 共64 BIT
没有做检验,因为最终目标是复制用,所以所有数据全部读进来共64BIT,包括前面那9个1。 由于2270芯片,没卡时也会一直有杂波,所以正好下面的函数不需要做错误退出延时处理了, 如果没有杂波,那就说明读卡电路不正常程序经过逻辑分析仪分析,速度一流,载波使能后第一个完整周期就能够正确捕获。 也就是说,平时将2270的CFE置0,要读卡时再置1,再调用该函数就行。 商业的好象半秒读一次。这样省电。

#define Manchester_IN (PIND&(1<<PD2))   //曼彻斯特_码输入端
#define DELAYVALUE 350     //RF64 一个位=512us * 0.75 不用很严格,大于半个周期,小于一个周期就行。
                           //跟实际的读卡器的125K载波精确度相关,也与卡本身相关
unsigned long Id[2]={0,0};    //存放ID内码 共64 BIT
int ReadAllCode(unsigned long iid[]){    //读所有数据 读到正确  返回1 
    int k,i,j;
    for(k=0;k<200;k++){    //找01 找200次,不能小于100,再大无意义
        while(Manchester_IN);     //找下降
        while(!Manchester_IN);    //找上升
        delayMicroseconds(DELAYVALUE);    //等 T 
            //digitalWrite(TPin, HIGH); 
            //digitalWrite(TPin, LOW); 
        if(Manchester_IN){   //是否找到01
            //Serial.println(“Found 01”);
               // digitalWrite(TPin, HIGH); 
               // digitalWrite(TPin, LOW); 
            for(i=0;i<8;i++){    //再找8次1
                while(Manchester_IN);     //找下降
                delayMicroseconds(DELAYVALUE);    //等 T 
                //digitalWrite(7, HIGH); 
                //digitalWrite(7, LOW); 
                if(!Manchester_IN)   //不是1就重找01
                    break;    
            };
            if(i==8)
                break;     //退出01循环,解数据体
        };
        
    }
    if(k>=200)           //未找到01与9个1
        return 0;
    //以上找数据头
   
      
    digitalWrite(TPin, HIGH); //测试用,这样用逻辑分析仪就能看到我的程序运行到哪儿了,找到了什么波形 分析起来很方便。
    
    //以下为读真正的数据共  64-9=55bit
    //9个1
    iid[0]=0x1ff;    //9个1
    iid[1]=0x0;
    
    while(Manchester_IN);     //找下降
    for(i=0;i<2;i++) {   //共找2 长整型(32bit)  实际是找 55 bit
        for( j=0;j<32;j++){    //找32位
            if((i==0) && (j==23)) //第一位只要读23位,前面是9个1
               break ; 
               
            delayMicroseconds(DELAYVALUE);    //等 T 
            iid[i]<<=1;            
            if(Manchester_IN) {  //是1
                iid[i]|=1;  
                while(Manchester_IN);    //等下降
            }else{                 //是0
                while(!Manchester_IN);     //等上升   
            };   
        };
        //digitalWrite(7, HIGH);
        //digitalWrite(7, LOW);
    } ;
    //delayMicroseconds(5);  
    digitalWrite(TPin, LOW);        
    return 1;
    
}  //ReadAllCode()

实验的测试结果如下:

1.没放4001卡时用示波器实测的波形如下:

实验OK!现在说得好象很轻松,俺开始因为对时序理解有偏差,调试好几天失败后才研究时序问题,解决问题后的那种因成就快乐感觉不是金钱能能买到的,感谢 友们的支持,没有你们支持俺或者没有这么大的工作激情!

3.酒店智能门锁管理软件的开发

上位机开发俺并不是高手,如果有说错的,大家给俺指出来。

参照 上有关电子门锁的建议和实例,和上位机的程序员商量用何种语言编写,最后决定用VS2008和SQL2005来完成,当然软件功能的实现应该由软件工程师来完成。但要注意通常PC机编程人员对硬件不太了解,因此酒店门锁管理接口需要硬件开发人员来完成通信接口的设计,和软件开发人员协商确定通信协议,此接口在很多星级酒店中需要和他们的酒店管理软件对接,如果不能提供此接口,相信大多数星级酒店会让你损失订单。在酒店方向门锁厂商索要接口开发包后,并会让自己的技术人员自行测试接口开发包是否与门锁系统匹配,详见《制作门锁接口注意事项》。

    如果接口开发包没有问题,厂商会根据该接口开发包制作接口安装包。在酒店方安装好我方实现的接口后,还需按以下步骤进行设置和测试:

   通过[系统管理->系统参数设置]菜单打开“系统参数设置窗口”(下图1)。洗浴管理系统然后门锁接口选择“仅启用门锁接口” 选项,门锁类型选择“雅洁门锁”,再单击旁边的按钮打开门锁设置窗口。 
注意:如果要严格门卡控制,请选中“客人登记保存时才允许制卡”和“结帐退房时需注销门卡”选项。

3. A1=B1,F1,R1
A2=B2,F2,R2
… 
An=Bn,Fn,Rn
其中, Ai为酒店管理系统的房 ; 
       Bi为Ai在门锁系统中对应的楼栋 ;
       Fi为Ai在门锁系统中对应的楼层 ;
       Ri为Ai在门锁系统中对应的房 。

     在完成上述步骤后,门锁接口设置工作才算完成。保存设置并退出系统,然后重新登录,就可在酒店管理系统中读卡和制卡了。

  1. 开发酒店智能门锁系统软件时需要先做好软件系统的架构规划,将基本功能实现以后,再做一些扩展功能,来增强软件的功能。因文章太长,要花费很多时间整写作,各位也可能感觉太烦,本人有空时另外再写。

 4.卡片知识T5557/T5567/T5577

上资料很多,大家找一下吧,这里不介绍拉。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年7月11日
下一篇 2011年7月11日

相关推荐