一种可变二维码锁、可变二维码的制作方法

文档序号:12947736阅读:228来源:国知局
一种可变二维码锁、可变二维码的制作方法与工艺

本发明涉及一种可变二维码锁、可变二维码,属于电子信息和共享锁具技术领域。



背景技术:

ofo共享单车所采用的单车锁并没有直接进入物联网,而是通过使用共享车的人在扫描的时候实现与网络的互动,采用这样的方式可以大大降低前期的研发费用以及自行车锁的生产成本,这对于刚刚进入共享平台的企业而言,这种模式是非常有价值的商业模式,可以大大降低研发成本,便于推广。但是这这种模式存在一个严重的问题就是ofo车锁的密码是无法改变的,对于自行车而言,由于自行车停放位置不固定,这就极大的缓解了ofo车锁存在的弊病。即便如此,很多想占便宜的人还是对解密码锁乐此不疲。小黄单车的车锁和密码都是固定的,有的人开锁知道密码后,只要保证车辆不被骑走,就能继续输入密码免费使用单车;有人以此建立了小黄单车密码分享群,数量可观。这其中既有全国性的密码共享群,也有各个具体地方的密码分享群,不少人直接在qq群聊中表示,通过密码可以免费使用小黄单车。为此ofo公司投入了大量的精力,ofo第三代车锁可以说已经达到了专业开锁水平的人才能够将其密码猜出。可以说大大提高了小黄车的正常使用率,杜绝了90%以上的撸羊毛群众。第四代智能小黄车车锁比较有特点的是在这个锁上只有了四个数字按键,仍然采用四位密码方式解锁。看上去只有四个按键,密码的位少,且四位组合出的密码数量也很少,但是,想要破解几乎不可能。在连续几次输错密码后,车锁会发出报警,并禁止用户输入密码,等待一段时间以后才能恢复。虽然只有四位密码,但是共享单车的最大特性就是流动性极高,即使你记住这辆车的密码,也不一定能骑到明天。从这样的情况来看,ofo车锁始终没有解决密码可变的问题。从目前的情况来看,面临着两难的问题,如果密码不变,所提供的共享设备就会被无偿占用;如果不使用密码,而采用互联网管理,就意味着前期开发成本过高。因此,开发可变密码锁具可以解决上述两难问题。



技术实现要素:

针对上述问题,本发明的目的在于提供一种可变二维码锁、可变二维码。

其中一种可变二维码锁其基于最小单片机系统,包括可变二维码显示模块、二维码内部处理模块、键盘密码输入子模块、供电电路、复位振荡电路、开锁电路、二维码开关、锁具状态检测模块、内部计时模块,以及与该可变二维码锁配合使用的服务器;可变二维码锁内部设置有主控程序,服务器内也设置有服务器控制程序;键盘密码输入子模块、开锁电路、二维码开关通过单片机i/o口连接单片机;供电电路、复位振荡电路采用最小单片机系统相配套的供电电路和复位振荡电路;开锁电路用于控制可变二维码锁的打开和关闭;锁具状态检测模块属于单片机内部主控程序中的一个子程序,通过检测单片机向与开锁电路模块子模块连接的i/o口发出的高电平或低电平信号来判断可变二维码锁的是打开还是关闭的状态,二维码开关被按压后向单片机发送开关信号,单片机每收到一次二维码开关产生的信号重新生成一个二维码;用户客户端扫描二维码并将二维码发送到服务器,服务器解析二维码后获得密码并将密码发送至客户端,用户读取客户端密码后输入密码实现开锁。

可变二维码显示模块与单片机连接,其显示所述的可变二维码,可变二维码包含二维码校准点、锁具状态信息部分、变量函数信息部分、服务器网站自动连接信息部分;二维码校准点设置在二维码四个角中的任意三个角上,用以系统确认二维码的方向;锁具状态信息部分通过二维码上黑白点的排列组合以显示锁具是打开还是关闭的状态;变量函数信息部分通过二维码上黑白点的排列组合以显示至少一个数值、或显示一个函数代码、或显示至少一个数值及一个函数代码;服务器网站自动连接信息部分通过二维码上黑白点的排列组合以显示服务器的网站,确保二维码被扫描后自动打开控制锁具的app或者服务器网站,最终通过手机实现与服务器的自动通信。

必要时所述的可变二维码还包含锁具识别部分,通过二维码上黑白点的排列组合以显示一个固定的但是却区别于其它锁具上的一个数值,以确保每个二维码锁能够被服务器通过二维码识别并区别开。

进一步的,所述的可变二维码还包含开锁变量识别码,通过二维码上黑白点的排列组合以显示锁具被打开的次数,同一个锁具,其初次产生的开锁变量识别码为0,锁具每打开过一次,其产生的二维码上的开锁变量识别码增加1,例如,起初关闭的锁具,其在关闭状态下无论生成多少次二维码,其生成的二维码中的开锁变量识别码均表示0,当锁具被打开过1次后,其第一次打开后生成了二维码,无论生成多少次,其生成的二维码中的开锁变量识别码均表示1,其在该锁具关闭后没有被再次打开前,其生成的二维码中的开锁变量识别码也均表示1。

进一步的,所述的可变二维码还包含时间显示部分,通过二维码上黑白点的排列组合以显示时间值,该时间值通过单片机内部的计时器记录,该值在锁具打开时清零并开始记录,在锁具关闭是停止并记录为定值;其作用是用户上的app或者服务器可以直接从二维码上解析出锁具打开的时间,以判断收费数额,减少服务器存储记录的负荷。

二维码内部处理模块,包含以下3种的至少一种,且内部模块的控制程序为主控程序中的一部分:

1)每个可变二维码锁均设置有自己的编号n,第n个二维码锁对应的二维码内部处理模块的密码库中设置有均含有一个独立的函数fn及密码改变函数子程序;完全相同的函数fn及密码改变函数子程序同时也存在于管理服务器函数库中,只要有相同的变量值,就会有相同的运算结果;打开二维码开关或者单片机系统自动生成二维码开关信号后,可变二维码显示模块上显示可变二维码,二维码内部处理模块自动生成所述的可变二维码,其中的可变二维码中的变量函数信息部分显示内容包含二维码锁编号、变量值,所述的变量值随机生成;

2)每个可变二维锁的二维码内部处理模块的密码库内均设置有相同的函数fn及密码改变函数子程序;管理服务器函数库中也设置有相同的函数fn及密码改变函数子程序只;只要有相同的变量值,函数fn就会有相同的运算结果;打开二维码开关或者单片机系统自动生成二维码开关信号后,可变二维码显示模块上显示可变二维码,二维码内部处理模块自动生成所述的可变二维码,其中的可变二维码中的变量函数信息部分显示内容包含变量值,所述的变量值随机生成;

3)每个可变二维锁的二维码内部处理模块的密码库内均设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m;管理服务器函数库中,也设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m;函数fn相同,且有相同的变量值,就会有相同的运算结果,所述的变量值随机生成;打开二维码开关或者单片机系统自动生成二维码开关信号后,可变二维码显示模块上显示可变二维码,二维码内部处理模块自动生成所述的可变二维码,其中的可变二维码中的变量函数信息部分显示内容包括函数fn、编码m、函数变量值,所述的变量值随机生成。

进一步的,键盘密码输入子模块采用如下的一种或者二者的结合:

a、密码输入硬件部分为机械密码输入装置,由4个密码盘、4个密码旋钮、16个数码标识、密码旋钮、按键托盘、十字槽、施力扭钉、弹力按压键、键盘导电橡胶、密码锁面板、复位弹簧构成;密码旋钮与密码锁面板之间设置有复位弹簧,密码旋钮的轴为套管结构,嵌套旋钮发电齿轮上端轴,该轴上设有十字槽,密码旋钮的套管轴内侧设有施力扭钉,嵌入旋钮发电齿轮上端轴的十字槽内,这样的结构使得用户在转动密码旋钮这时候,施力扭钉处于十字槽的水平间隙中,不会产生下压误操作;密码旋钮的套管轴的底端焊接有弹力按压键,弹力按压键的下方为按键托盘,该按键托盘通过连接片与上方的密码锁面板固定,该按键托盘粘贴有键盘导电橡胶,转动到所设密码位置之后,向下按压密码旋钮,弹力按压键与按键托盘上键盘导电橡胶接触导通,输入一个密码值;当手放开密码旋钮的时候,在复位弹簧的作用下,恢复原位;

密码输入4个键为干扰键键盘采用行列式设计,16个按键排成4×4矩阵;设计中使用单片机的8条i/o线做16个按键的键盘扫描,由p2.0~p2.3送出扫描信号,p2.4~p2.7读取按键数据返回码;

密码扫描模块以程序扫描的方式来侦测哪一按键按下,一次扫描一列4个按键,扫描的顺序如下:

(a)送出扫描信号1110以扫描c1列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(b)送出扫描信号1101以扫描c2列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(c)送出扫描信号1011以扫描c3列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(d)送出扫描信号0111以扫描c4列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(e)回到步骤(a)续做按键扫描;

以上的步骤连续地重复,若有按键被按下,则将该按键译码出来,当某一按键按下时,其按键编号便是计数编号;

密码判断程序放在主程序中,有按键时读取,当确定键按下时做出判断;在程序中设置4字节的空间存放设定的密码和4字节存放键盘输入的数据;根据读取的键盘数据和单片机内部自动生成的本地密码逐位比较就可以判断输入密码的正确性,若密码正确,则开锁,若不正确,则密码输入次数计数单元计数,如达不到3次,返回键盘扫描模块以确保用户获得一个密码后有3此输入密码的机会,如果密码输入次数达到3次密码仍然不对,单片机系统自动生成二维码开关信号,重新生成新的二维码;

b、密码输入硬件部分采用面板式键盘,键盘上设置有0到9共10个键,设计中使用单片机的i/o连接键盘,通过键盘直接输入密码,密码扫描模块通过读取键盘输入的密码与片机内部自动生成的本地密码进行比对,若密码正确,则开锁,若不正确,则密码输入次数计数单元计数,如达不到3次,返回键盘扫描模块以确保用户获得一个密码后有3此输入密码的机会,如果密码输入次数达到3次密码仍然不对,单片机系统自动生成二维码开关信号,重新生成新的二维码。因采用面板式键盘输入密码的技术为现有技术,故不再赘述。

所述的主控程序采用汇编语言进行编程,包括系统的初始化模块、密码扫描模块、调用密码比较判断模块。

a、初始化模块在开机时运行,当二维码开关打开或者系统自动生成二维码开关信号后,系统自动进行初始化,然后查询可变二维码锁的开闭状态生成可变二维码中的锁具状态信息部分;调用单片机内存中的密码库,调取信息生产可变二维码中的变量函数信息部分;调取服务器网站自动连接信息生成部分;调取二维码二维码生生成的其它必要信息部分生成整体可变二维码,其中调取函数信息部分的工作方法是:

a)当每个可变二维码锁均设置有自己的编号n,第n个二维码锁对应的二维码内部处理模块的密码库中设置有均含有一个独立的函数fn及密码改变函数子程序,完全相同的函数fn及密码改变函数子程序同时也存在于管理服务器函数库中,只要有相同的变量值,就会有相同的运算结果时,调取可变二维码锁的内部编号n,并随机生成变量值c,生产的可变二维码中的可变函数信息部分包含可变二维码锁的内部编号n和随机生成变量值c;单片机根据调取的内部编号n、随机生成变量值c和独立函数fn,生成本地密码y存储在单片机内存内;

b)当每个可变二维锁的二维码内部处理模块的密码库内均设置有相同的函数fn及密码改变函数子程序,管理服务器函数库中也设置有相同的函数fn及密码改变函数子程序,只要有相同的变量值,函数fn就会有相同的运算结果时,随机生产变量值c,生产的可变二维码中的可变函数信息部分仅包含随机生成变量值c,单片机根据随机生成变量值c和独立函数fn,生成本地密码y存储在单片机内存内;

c)每个可变二维锁的二维码内部处理模块的密码库内均设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m,管理服务器函数库中,也设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m,函数fn相同,且有相同的变量值,就会有相同的运算结果时,随机生产变量值c,同时随机调用函数fn的编号m,生产的可变二维码中的可变函数信息部分包含随机生产变量值c、随机调用函数fn的编号m,单片机根据随机生成变量值c和随机调用的独立函数fn,生成本地密码y存储在单片机内存内;

d)当每个可变二维锁的二维码内部处理模块的密码库至少包含有上述a)、b)、c)三种情况中两种情况下的密码库所存储的信息,且服务器上也存储相对应的解析信息时,随机调取可变二维锁的二维码内部处理模块的密码库中存储的信息对应情况的任意一种,并产生相应的二维码和生产相应的本地值y。

b、密码扫描模块主要是读取键盘输入的密码,并与单片机内部生成的本地密码进行比对,该模块在上述已经阐述,故不再赘述。

可变二维码锁的工作方法如下:

1)按压二维码开关或者系统自动生成二维码开关信号,系统自动初始化,查询可变二维码锁的开闭状态生成可变二维码中的锁具状态信息部分;调用单片机内存中的密码库,调取信息生产可变二维码中的变量函数信息部分;调取服务器网站自动连接信息生成部分;调用锁具打开的次数数据,生成开锁变量识别码;调取二维码二维码生生成的其它必要信息部分生成整体可变二维码,并显示在可变二维码显示模块上,同时单片机自身根据该生成的二维码中的变量函数信息部分解析本地密码,并将该二维码的信息储存以备调用;当所述的可变二维码包含锁具识别部分时,服务器解析锁具识别部分以确保每个二维码锁能够被服务器区别开,同时把整个二维码的信息按照不同锁具进行归类存储,以备查询调用;当所述的可变二维码包含时间显示部分时,当锁具状态信息部分显示锁具为打开状态时,其显示锁具打开时的时间点值或者不现显示间值;当锁具状态信息部分显示锁具关闭状态时,其显示上一次锁具打开至关闭时间段的时间值;

2)手持客户端扫描,并将扫描的可变二维码交给手持客户端中的app解析,app通过解析服务器网站自动连接信息部分自动连接服务器;app或者服务器通过解析锁具状态信息部分判断锁具是打开还是关闭的状态;服务器通过解析可变二维码上的变量函数信息部分,在服务器中查找相应的函数,并采用变量函数信息部分中给出信息计算生成与单片机生产的本地密码一致的密码y;当所述的可变二维码包含时间显示部分时,锁具识别部分显示时间值,该时间值通过单片机内部的计时器记录,该值在锁具打开时清零并开始记录,在锁具关闭是停止并记录为定值,服务器通过解析可变二维码上的时间显示部分确定上一次锁具打开至关闭时间段的时间值,以确定用户使用的时间,根据该时间和收费标准确定应向客户收取的费用;当所述的可变二维码不包含时间显示部分时,服务器根据锁具识别部分有针对性的查询和调取服务器内部数据库记录,以确定用户使用的时间,根据该时间和收费标准确定应向客户收取的费用;

进一步的,服务器计数服务费的方法是:服务器能够记录每个客户端对应账户向服务器发射的二维码,并能通过识别二维码上的锁具识别部分判断客户端发送的二维码是否来自同一个锁具;针对同一个锁具,服务器检测到具有相同锁具识别部分的两个不同的二维码,且两个二维码均显示锁具处于关闭状态,且后一个显示锁具关闭状态的二维码与前一个显示锁具关闭状态的二维码具有差值为1的开锁变量识别码,那么服务器判断该锁被打开过,并默认的该客户端用户打开的;如果客户端对应的账户在发送具有差值为1的开锁变量识别码且均显示锁具关闭状态的两个二维码之间的时间段没有支付过对应锁具的服务费,则判定两个该具有差值为1的开锁变量识别码且均显示锁具关闭状态的两个二维码之间的时间段为该锁具为用户服务的时间段;当所述的可变二维码包含时间显示部分时,服务器直接读取最后一个显示锁具关闭状态的二维码中的时间显示部分,就能解析确定用户使用的时间,并根据该时间和收费标准确定应向客户收取的费用;当所述的可变二维码不包含时间显示部分时,服务器根据锁具识别部分有针对性的查询和调取服务器内部数据库记录,通过查询用户客户端向服务器发送这两个客户端的时间,求出的时间差即是用户使用的时间,并根据该时间和收费标准确定应向客户收取的费用;

3)服务器检测发送二维码的客户端的ip或者帐户信息,以判断该客户端对应账户是否有未支付的情况,如果有则根据步骤2中的情况查询相应费用,并向该客户端app发送信息,提醒客户支付未付的费用和具体金额,如果该客户端对应的账户没有需要支付的费用则进入下一步骤;

4)服务器检测锁具状态信息部分,当锁具状态信息部分显示可变二维码锁处于打开状态时,app提醒客户报修或关闭锁具;当锁具状态信息部分显示可变二维码锁处于关闭状态时,并将上述步骤2中解析的密码y密码发送到用户手持客户端上的app上;

5)根据服务器推送的信息并结合实际情况进行报修、付款、关闭锁具,或者根据从服务器获得的密码通过键盘输入密码;

6)单片机调取本地密码和服务器获得的密码进行比对,如果单片机检测到密码输入3次后仍不正确,则单片机系统自动生成二维码开关信号,重新生成新的二维码,可变二维码显示模块上显示新的二维码,系统返回到上述步骤1;如果密码正确单片机驱动开锁电路将可变二维码锁打开;

7)用户使用完毕后,关闭锁具,按压二维码开关获取新的二维码,并通过手持客户端上的app将获得的二维码发送到服务器,系统回到上述第1步骤。

进一步的,所述的供电电路还包括外接供电模块,外接供电模块具有自动发电功能,当密码输入硬件部分为机械密码输入装置时,外接供电模块至少包括为机械充电和太阳能充电两部分中的其中一部分;当密码输入硬件部分采用面板式键盘时,外接供电模块不包含机械充电部分。

a)机械充电:由4个密码盘、4个密码旋钮、16个数码标识、微型发电机以及旋钮发电齿轮构成;密码旋钮和旋钮发电齿轮同轴连接,密码旋钮下面为密码盘,密码盘粘贴在面板表面,密码旋钮和旋钮发电齿轮之间有面板隔离,4个旋钮发电齿轮同时与电机齿轮啮合,4个旋钮发电齿轮彼此不啮合,电机齿轮与微型发电机同轴;微型发电机输出电路串接整流桥堆并接充电电池,充电电池为可变密码锁提供电能。这样的结构使得用户在旋转其中一个密码旋钮的时候,旋钮发电齿轮也发生转动,带动与之相啮合的电机齿轮转动,带动微型发电机进行发电,输出电流经过整流桥堆整流之后对充电电池进行充电。

b)太阳能充电:由太阳能电池板、稳压二极管、防回流二极管构成;太阳能电池板输出反向串接稳压二极管后正向串接防回流二极管。这种结构使得当阳光强烈的时候,太阳能电池板(14)输出一个高电压,电压击穿稳压二极管(15)对充电电池(7)进行充电,如果光线弱的时候,例如在夜里,充电电池(7)在电压高于太阳能电池板(14)的输出电压,正向串接防回流二极管(16)可以防止电流回流。

进一步的,本发明中采用at89c51单片机,在at89c51芯片内部有一个高增益反相放大器,其输入端为芯片引脚xtal1,其输出端为引脚xtal2;而在芯片内部,xtal1和xtal2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。

进一步的,开锁电路模块子模块的工作原理是:当用户输入正确的密码时,单片机向与开锁电路模块子模块连接的i/o口输出高电平信号,晶体管饱和导通,继电器吸合,驱动电动小马达运作,电子锁打开;反之,当输入错误的密码时,单片机向与开锁电路模块子模块连接的i/o口输出低电平,晶体管截止,继电器不能吸合,马达不运作。

进一步的,本申请还包括声光报警电路子模块和震动传感器模块;其中声光报警电路子模块由555定时器u2,扬声器ls1,普通红色发光二极管led2等组成声光报警电路;震动传感器模块通过单片机i/o口连接单片机,当密码锁处于关闭状态且震动传感器模块检测到强烈震动后会向单片机发出信号,单片机驱动声光报警电路子模块报警。

进一步的,本申请还包括蓝牙通信模块,蓝牙通信模块通过单片机i/o口连接单片机,蓝牙通信模块能和手持客户端通过蓝牙进行通信,通过手持客户端实现服务器与单片机的互通信息,通过手持客户端将从服务器获得的密码传送至单片机,通过单片机进行密码比对实现开锁功能。

本发明相当于现有技术具有明显有益效果。

第一,一种可变二维码锁、可变二维码,二维码开关被按压后向单片机发送开关信号,单片机每收到一次二维码开关产生的信号重新生成一个二维码,用户客户端扫描二维码并将二维码发送到服务器,服务器解析二维码后获得密码并将密码发送至客户端,用户读取客户端密码后输入密码实现开锁,锁具不需要与服务器直接通信,减小了服务器的数据处理压力,节约了锁具的制造成本。

第二,可变二维码包含二维码校准点、锁具状态信息部分、变量函数信息部分、服务器网站自动连接信息部分,能够让客户端自动连接服务器,服务器能够通过二维码信息直接判断锁具状态、准确可靠的解析锁具密码。

第三,可变二维码还包含锁具识别部分,通过二维码上黑白点的排列组合以显示一个固定的但是却区别于其它锁具上的一个数值,以确保每个二维码锁能够被服务器通过二维码识别并区别开,让二维码更加智能。

第四,可变二维码还包含开锁变量识别码,通过二维码上黑白点的排列组合以显示锁具被打开的次数,同一个锁具,其初次产生的开锁变量识别码0,锁具每打开过一次,其产生的二维码上的开锁变量识别码增加1,例如,起初关闭的锁具,其在关闭状态下无论生成多少次二维码,其生成的二维码中的开锁变量识别码均表示0,当锁具被打开过1次后,其第一次打开后生成了二维码,无论生成多少次,其生成的二维码中的开锁变量识别码均表示1,其在该锁具关闭后没有被再次打开前,其生成的二维码中的开锁变量识别码也均表示1,让二维码更加智能,为服务器判断用户是否支付提供了参考。

第五,所述的可变二维码还包含时间显示部分,通过二维码上黑白点的排列组合以显示时间值,该时间值通过单片机内部的计时器记录,该值在锁具打开时清零并开始记录,在锁具关闭是停止并记录为定值;其作用是用户上的app或者服务器可以直接从二维码上解析出锁具打开的时间,以判断收费数额,减少服务器存储记录的负荷。

第六,二维码内部处理模块,至少包含3种中的一种可变密码生产方法,让锁具更安全可靠,更为可变密码的生产提供了具方法。

第七,键盘密码输入子模块既能采用现有面板键盘输入,还能采用具有创造性的新式机械键盘输入,设计更灵活。

第八,可变二维码锁的工作方法严谨、灵活、可靠,确保了二维码锁二维码锁正常有效的工作。

第九,所述的供电电路还包括外接供电模块,外接供电模块具有自动发电功能,当密码输入硬件部分为机械密码输入装置时,外接供电模块至少包括为机械充电和太阳能充电两部分中的其中一部分;当密码输入硬件部分采用面板式键盘时,外接供电模块不包含机械充电部分;机械充电部分设计巧妙,输入密码就能发电。

第十,本申请还包括声光报警电路子模块和震动传感器模块当密码锁处于关闭状态且震动传感器模块检测到强烈震动后会向单片机发出信号,单片机驱动声光报警电路子模块报警。

第十一,本申请还包括蓝牙通信模块,蓝牙通信模块通过单片机i/o口连接单片机,蓝牙通信模块能和手持客户端通过蓝牙进行通信,通过手持客户端实现服务器与单片机的互通信息,通过手持客户端将从服务器获得的密码传送至单片机,通过单片机进行密码比对实现开锁功能。

附图说明

图1为本发明系统工作原理图。

图2为本发明中可变二维码构成框架图示例之一。

图3为本发明开锁电路。

图4为发明键盘扫描控制电路。

图5为本发明可变密码锁自发电结构示意图。

图6为本发明密码锁矩阵键盘剖面结构示意图。

图中各标号为:1:密码盘,2:数码标识,3:密码旋钮,4:微型发电机,5:旋钮发电齿轮,6:整流桥堆,7:充电电池,8:可变密码锁,9:二维码校准点,10:锁具状态信息部分,11:变量函数信息部分,12:服务器网站自动连接信息部分,13:锁具识别部分,14:太阳能电池板,15:稳压二极管,16:防回流二极管,17:按键托盘,18:十字槽,19:施力扭钉,20:弹力按压键,21键盘导电橡胶,22:密码锁面板,23:复位弹簧,24:开锁变量识别码,25:时间显示部分,26:其它必要信息部分。

具体实施方式

下面结合附图1至6和实施例,对本发明作进一步说明,但本发明的内容并不限于所述范围。

一种可变二维码锁、可变二维码,其基于最小单片机系统,包括可变二维码显示模块、二维码内部处理模块、键盘密码输入子模块、供电电路、复位振荡电路、开锁电路、二维码开关、锁具状态检测模块、内部计时模块,以及与该可变二维码锁配合使用的服务器;可变二维码锁内部设置有主控程序,服务器内也设置有服务器控制程序;键盘密码输入子模块、开锁电路、二维码开关通过单片机i/o口连接单片机;供电电路、复位振荡电路采用最小单片机系统相配套的供电电路和复位振荡电路;开锁电路用于控制可变二维码锁的打开和关闭;锁具状态检测模块属于单片机内部主控程序中的一个子程序,通过检测单片机向与开锁电路模块子模块连接的i/o口发出的高电平或低电平信号来判断可变二维码锁的是打开还是关闭的状态,二维码开关被按压后向单片机发送开关信号,单片机每收到一次二维码开关产生的信号重新生成一个二维码;用户客户端扫描二维码并将二维码发送到服务器,服务器解析二维码后获得密码并将密码发送至客户端,用户读取客户端密码后输入密码实现开锁。

可变二维码显示模块与单片机连接,其显示可变二维码,可变二维码包含二维码校准点(9)、锁具状态信息部分(10)、变量函数信息部分(11)、服务器网站自动连接信息部分(12);二维码校准点(9)设置在二维码四个角中的任意三个角上,用以系统确认二维码的方向;锁具状态信息部分(10)通过二维码上黑白点的排列组合以显示锁具是打开还是关闭的状态;变量函数信息部分(11)通过二维码上黑白点的排列组合以显示至少一个数值、或显示一个函数代码、或显示至少一个数值及一个函数代码;服务器网站自动连接信息部分(12)通过二维码上黑白点的排列组合以显示服务器的网站,确保二维码被扫描后自动打开控制锁具的app或者服务器网站,最终通过手机实现与服务器的自动通信。

必要时所述的可变二维码还包含锁具识别部分(13),通过二维码上黑白点的排列组合以显示一个固定的但是却区别于其它锁具上的一个数值,以确保每个二维码锁能够被服务器通过二维码识别并区别开。

进一步的,所述的可变二维码还包含开锁变量识别码(24),通过二维码上黑白点的排列组合以显示锁具被打开的次数,同一个锁具,其初次产生的开锁变量识别码(24)0,锁具每打开过一次,其产生的二维码上的开锁变量识别码(24)增加1,例如,起初关闭的锁具,其在关闭状态下无论生成多少次二维码,其生成的二维码中的开锁变量识别码(24)均表示0,当锁具被打开过1次后,其第一次打开后生成了二维码,无论生成多少次,其生成的二维码中的开锁变量识别码(24)均表示1,其在该锁具关闭后没有被再次打开前,其生成的二维码中的开锁变量识别码(24)也均表示1。

进一步的,所述的可变二维码还包含时间显示部分(25),通过二维码上黑白点的排列组合以显示时间值,该时间值通过单片机内部的计时器记录,该值在锁具打开时清零并开始记录,在锁具关闭是停止并记录为定值;其作用是用户上的app或者服务器可以直接从二维码上解析出锁具打开的时间,以判断收费数额,减少服务器存储记录的负荷。

二维码内部处理模块,包含以下3种的至少一种,且内部模块的控制程序为主控程序中的一部分:

1)每个可变二维码锁均设置有自己的编号n,第n个二维码锁对应的二维码内部处理模块的密码库中设置有均含有一个独立的函数fn及密码改变函数子程序;完全相同的函数fn及密码改变函数子程序同时也存在于管理服务器函数库中,只要有相同的变量值,就会有相同的运算结果;打开二维码开关或者单片机系统自动生成二维码开关信号后,可变二维码显示模块上显示可变二维码,二维码内部处理模块自动生成所述的可变二维码,其中的可变二维码中的变量函数信息部分(11)显示内容包含二维码锁编号、变量值,所述的变量值随机生成;

2)每个可变二维锁的二维码内部处理模块的密码库内均设置有相同的函数fn及密码改变函数子程序;管理服务器函数库中也设置有相同的函数fn及密码改变函数子程序只;只要有相同的变量值,函数fn就会有相同的运算结果;打开二维码开关或者单片机系统自动生成二维码开关信号后,可变二维码显示模块上显示可变二维码,二维码内部处理模块自动生成所述的可变二维码,其中的可变二维码中的变量函数信息部分(11)显示内容包含变量值,所述的变量值随机生成;

3)每个可变二维锁的二维码内部处理模块的密码库内均设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m;管理服务器函数库中,也设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m;函数fn相同,且有相同的变量值,就会有相同的运算结果,所述的变量值随机生成。

打开二维码开关或者单片机系统自动生成二维码开关信号后,可变二维码显示模块上显示可变二维码,二维码内部处理模块自动生成所述的可变二维码,其中的可变二维码中的变量函数信息部分(11)显示内容包括函数fn、编码m、函数变量值,所述的变量值随机生成。

进一步的,键盘密码输入子模块采用如下的一种或者二者的结合:

a、密码输入硬件部分为机械密码输入装置,由4个密码盘(1)、4个密码旋钮(3)、16个数码标识(2)、密码旋钮(3)、按键托盘(17)、十字槽(18)、施力扭钉(19)、弹力按压键(20)、键盘导电橡胶(21)、密码锁面板(22)、复位弹簧(23)构成;密码旋钮(3)与密码锁面板(22)之间设置有复位弹簧(23),密码旋钮(3)的轴为套管结构,嵌套旋钮发电齿轮(5)上端轴,该轴上设有十字槽(18),密码旋钮(3)的套管轴内侧设有施力扭钉(19),嵌入旋钮发电齿轮(5)上端轴的十字槽(18)内,这样的结构使得用户在转动密码旋钮(3)这时候,施力扭钉(19)处于十字槽(18)的水平间隙中,不会产生下压误操作;密码旋钮(3)的套管轴的底端焊接有弹力按压键(20),弹力按压键(20)的下方为按键托盘(17),该按键托盘(17)通过连接片与上方的密码锁面板(22)固定,该按键托盘(17)粘贴有键盘导电橡胶(21),转动到所设密码位置之后,向下按压密码旋钮(3),弹力按压键(20)与按键托盘(17)上键盘导电橡胶(21)接触导通,输入一个密码值;当手放开密码旋钮(3)的时候,在复位弹簧的作用下,恢复原位;

密码输入4个键为干扰键键盘采用行列式设计,16个按键排成4×4矩阵;设计中使用单片机的8条i/o线做16个按键的键盘扫描,由p2.0~p2.3送出扫描信号,p2.4~p2.7读取按键数据返回码;

密码扫描模块以程序扫描的方式来侦测哪一按键按下,一次扫描一列4个按键,扫描的顺序如下:

(a)送出扫描信号1110以扫描c1列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(b)送出扫描信号1101以扫描c2列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(c)送出扫描信号1011以扫描c3列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(d)送出扫描信号0111以扫描c4列的4个按键,读取按键数据,判断该列是否有键按下,若有键被按下,则连接至被按下的该键,返回线状态为0;

(e)回到步骤(a)续做按键扫描;

以上的步骤连续地重复,若有按键被按下,则将该按键译码出来,当某一按键按下时,其按键编号便是计数编号;

密码判断程序放在主程序中,有按键时读取,当确定键按下时做出判断;在程序中设置4字节的空间存放设定的密码和4字节存放键盘输入的数据;根据读取的键盘数据和单片机内部自动生成的本地密码逐位比较就可以判断输入密码的正确性,若密码正确,则开锁,若不正确,则密码输入次数计数单元计数,如达不到3次,返回键盘扫描模块以确保用户获得一个密码后有3此输入密码的机会,如果密码输入次数达到3次密码仍然不对,单片机系统自动生成二维码开关信号,重新生成新的二维码。

b、密码输入硬件部分采用面板式键盘,键盘上设置有0到9共10个键,设计中使用单片机的i/o连接键盘,通过键盘直接输入密码,密码扫描模块通过读取键盘输入的密码与片机内部自动生成的本地密码进行比对,若密码正确,则开锁,若不正确,则密码输入次数计数单元计数,如达不到3次,返回键盘扫描模块以确保用户获得一个密码后有3此输入密码的机会,如果密码输入次数达到3次密码仍然不对,单片机系统自动生成二维码开关信号,重新生成新的二维码。因采用面板式键盘输入密码的技术为现有技术,故不再赘述。

所述的主控程序采用汇编语言进行编程,包括系统的初始化模块、密码扫描模块、调用密码比较判断模块。

a、初始化模块在开机时运行,当二维码开关打开或者系统自动生成二维码开关信号后,系统自动进行初始化,然后查询可变二维码锁的开闭状态生成可变二维码中的锁具状态信息部分(10);调用单片机内存中的密码库,调取信息生产可变二维码中的变量函数信息部分(11);调取服务器网站自动连接信息生成部分;调取二维码二维码生生成的其它必要信息部分(26)生成整体可变二维码,其中调取函数信息部分的工作方法是:

a)当每个可变二维码锁均设置有自己的编号n,第n个二维码锁对应的二维码内部处理模块的密码库中设置有均含有一个独立的函数fn及密码改变函数子程序,完全相同的函数fn及密码改变函数子程序同时也存在于管理服务器函数库中,只要有相同的变量值,就会有相同的运算结果时,调取可变二维码锁的内部编号n,并随机生成变量值c,生产的可变二维码中的可变函数信息部分包含可变二维码锁的内部编号n和随机生成变量值c;单片机根据调取的内部编号n、随机生成变量值c和独立函数fn,生成本地密码y存储在单片机内存内;

b)当每个可变二维锁的二维码内部处理模块的密码库内均设置有相同的函数fn及密码改变函数子程序,管理服务器函数库中也设置有相同的函数fn及密码改变函数子程序,只要有相同的变量值,函数fn就会有相同的运算结果时,随机生产变量值c,生产的可变二维码中的可变函数信息部分仅包含随机生成变量值c,单片机根据随机生成变量值c和独立函数fn,生成本地密码y存储在单片机内存内;

c)每个可变二维锁的二维码内部处理模块的密码库内均设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m,管理服务器函数库中,也设置有多个的函数fn及以及相对应的密码改变函数子程序,每个函数fn及以及相对应的密码改变函数子程序均设置有编号m,函数fn相同,且有相同的变量值,就会有相同的运算结果时,随机生产变量值c,同时随机调用函数fn的编号m,生产的可变二维码中的可变函数信息部分包含随机生产变量值c、随机调用函数fn的编号m,单片机根据随机生成变量值c和随机调用的独立函数fn,生成本地密码y存储在单片机内存内;

d)当每个可变二维锁的二维码内部处理模块的密码库至少包含有上述a)、b)、c)三种情况中两种情况下的密码库所存储的信息,且服务器上也存储相对应的解析信息时,随机调取可变二维锁的二维码内部处理模块的密码库中存储的信息对应情况的任意一种,并产生相应的二维码和生产相应的本地值y。

b、密码扫描模块主要是读取键盘输入的密码,并与单片机内部生成的本地密码进行比对,该模块在上述已经阐述,故不再赘述。

可变二维码锁的工作方法如下:

1)按压二维码开关或者系统自动生成二维码开关信号,系统自动初始化,查询可变二维码锁的开闭状态生成可变二维码中的锁具状态信息部分(10);调用单片机内存中的密码库,调取信息生产可变二维码中的变量函数信息部分(11);调取服务器网站自动连接信息生成部分;调用锁具打开的次数数据,生成开锁变量识别码(24);调取二维码二维码生生成的其它必要信息部分(26)生成整体可变二维码,并显示在可变二维码显示模块上,同时单片机自身根据该生成的二维码中的变量函数信息部分(11)解析本地密码,并将该二维码的信息储存以备调用;当所述的可变二维码包含锁具识别部分(13)时,服务器解析锁具识别部分(13)以确保每个二维码锁能够被服务器区别开,同时把整个二维码的信息按照不同锁具进行归类存储,以备查询调用;当所述的可变二维码包含时间显示部分(25)时,当锁具状态信息部分(10)显示锁具为打开状态时,其显示锁具打开时的时间点值或者不现显示间值;当锁具状态信息部分(10)显示锁具关闭状态时,其显示上一次锁具打开至关闭时间段的时间值;

2)手持客户端扫描,并将扫描的可变二维码交给手持客户端中的app解析,app通过解析服务器网站自动连接信息部分(12)自动连接服务器;app或者服务器通过解析锁具状态信息部分(10)判断锁具是打开还是关闭的状态;服务器通过解析可变二维码上的变量函数信息部分(11),在服务器中查找相应的函数,并采用变量函数信息部分(11)中给出信息计算生成与单片机生产的本地密码一致的密码y;当所述的可变二维码包含时间显示部分(25)时,锁具识别部分(13)显示时间值,该时间值通过单片机内部的计时器记录,该值在锁具打开时清零并开始记录,在锁具关闭是停止并记录为定值,服务器通过解析可变二维码上的时间显示部分(25)确定上一次锁具打开至关闭时间段的时间值,以确定用户使用的时间,根据该时间和收费标准确定应向客户收取的费用;当所述的可变二维码不包含时间显示部分(25)时,服务器根据锁具识别部分(13)有针对性的查询和调取服务器内部数据库记录,以确定用户使用的时间,根据该时间和收费标准确定应向客户收取的费用;

进一步的,服务器计数服务费的方法是:服务器能够记录每个客户端对应账户向服务器发射的二维码,并能通过识别二维码上的锁具识别部分(13)判断客户端发送的二维码是否来自同一个锁具;针对同一个锁具,服务器检测到具有相同锁具识别部分(13)的两个不同的二维码,且两个二维码均显示锁具处于关闭状态,且后一个显示锁具关闭状态的二维码与前一个显示锁具关闭状态的二维码具有差值为1的开锁变量识别码(24),那么服务器判断该锁被打开过,并默认的该客户端用户打开的;如果客户端对应的账户在发送具有差值为1的开锁变量识别码(24)且均显示锁具关闭状态的两个二维码之间的时间段没有支付过对应锁具的服务费,则判定两个该具有差值为1的开锁变量识别码(24)且均显示锁具关闭状态的两个二维码之间的时间段为该锁具为用户服务的时间段;当所述的可变二维码包含时间显示部分(25)时,服务器直接读取最后一个显示锁具关闭状态的二维码中的时间显示部分(25),就能解析确定用户使用的时间,并根据该时间和收费标准确定应向客户收取的费用;当所述的可变二维码不包含时间显示部分(25)时,服务器根据锁具识别部分(13)有针对性的查询和调取服务器内部数据库记录,通过查询用户客户端向服务器发送这两个客户端的时间,求出的时间差即是用户使用的时间,并根据该时间和收费标准确定应向客户收取的费用;

3)服务器检测发送二维码的客户端的ip或者帐户信息,以判断该客户端对应账户是否有未支付的情况,如果有则根据步骤2中的情况查询相应费用,并向该客户端app发送信息,提醒客户支付未付的费用和具体金额,如果该客户端对应的账户没有需要支付的费用则进入下一步骤;

4)服务器检测锁具状态信息部分(10),当锁具状态信息部分(10)显示可变二维码锁处于打开状态时,app提醒客户报修或关闭锁具;当锁具状态信息部分(10)显示可变二维码锁处于关闭状态时,并将上述步骤2中解析的密码y密码发送到用户手持客户端上的app上;

5)根据服务器推送的信息并结合实际情况进行报修、付款、关闭锁具,或者根据从服务器获得的密码通过键盘输入密码;

6)单片机调取本地密码和服务器获得的密码进行比对,如果单片机检测到密码输入3次后仍不正确,则单片机系统自动生成二维码开关信号,重新生成新的二维码,可变二维码显示模块上显示新的二维码,系统返回到上述步骤1;如果密码正确单片机驱动开锁电路将可变二维码锁打开;

7)用户使用完毕后,关闭锁具,按压二维码开关获取新的二维码,并通过手持客户端上的app将获得的二维码发送到服务器,系统回到上述第1步骤。

进一步的,所述的供电电路还包括外接供电模块,外接供电模块具有自动发电功能,当密码输入硬件部分为机械密码输入装置时,外接供电模块至少包括为机械充电和太阳能充电两部分中的其中一部分;当密码输入硬件部分采用面板式键盘时,外接供电模块不包含机械充电部分。

a)机械充电:由4个密码盘(1)、4个密码旋钮(3)、16个数码标识(2)、微型发电机(4)以及旋钮发电齿轮(5)构成;密码旋钮(3)和旋钮发电齿轮(5)同轴连接,密码旋钮(3)下面为密码盘(1),密码盘(1)粘贴在面板表面,密码旋钮(3)和旋钮发电齿轮(5)之间有面板隔离,4个旋钮发电齿轮(5)同时与电机齿轮(24)啮合,4个旋钮发电齿轮(5)彼此不啮合,电机齿轮(24)与微型发电机(4)同轴;微型发电机(4)输出电路串接整流桥堆(6)并接充电电池(7),充电电池(7)为可变密码锁(8)提供电能。这样的结构使得用户在旋转其中一个密码旋钮(3)的时候,旋钮发电齿轮(5)也发生转动,带动与之相啮合的电机齿轮(24)转动,带动微型发电机(4)进行发电,输出电流经过整流桥堆(6)整流之后对充电电池(7)进行充电。

b)太阳能充电:由太阳能电池板(14)、稳压二极管(15)、防回流二极管(16)构成;太阳能电池板(14)输出反向串接稳压二极管(15)后正向串接防回流二极管(16)。这种结构使得当阳光强烈的时候,太阳能电池板(14)输出一个高电压,电压击穿稳压二极管(15)对充电电池(7)进行充电,如果光线弱的时候,例如在夜里,充电电池(7)在电压高于太阳能电池板(14)的输出电压,正向串接防回流二极管(16)可以防止电流回流。

进一步的,本发明中采用at89c51单片机,在at89c51芯片内部有一个高增益反相放大器,其输入端为芯片引脚xtal1,其输出端为引脚xtal2;而在芯片内部,xtal1和xtal2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。

进一步的,开锁电路模块子模块的工作原理是:当用户输入正确的密码时,单片机向与开锁电路模块子模块连接的i/o口输出高电平信号,晶体管饱和导通,继电器吸合,驱动电动小马达运作,电子锁打开;反之,当输入错误的密码时,单片机向与开锁电路模块子模块连接的i/o口输出低电平,晶体管截止,继电器不能吸合,马达不运作;所述的

进一步的,本申请还包括声光报警电路子模块和震动传感器模块;其中声光报警电路子模块由555定时器u2,扬声器ls1,普通红色发光二极管led2等组成声光报警电路;震动传感器模块通过单片机i/o口连接单片机,当密码锁处于关闭状态且震动传感器模块检测到强烈震动后会向单片机发出信号,单片机驱动声光报警电路子模块报警。

进一步的,本申请还包括蓝牙通信模块,蓝牙通信模块通过单片机i/o口连接单片机,蓝牙通信模块能和手持客户端通过蓝牙进行通信,通过手持客户端实现服务器与单片机的互通信息,通过手持客户端将从服务器获得的密码传送至单片机,通过单片机进行密码比对实现开锁功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1