本发明所述的智能云锁系统,包括与电控锁相连的智能云锁、经过管理控制台授权的移动客户端,以及设置于阿里云端的服务器,智能云锁包括通信模块ⅰ和显示二维码数据的显示模块ⅰ;移动客户端包括通信模块ⅱ和采集二维码数据的图像采集模块ⅱ;服务器分别与通信模块ⅰ、通信模块ⅱ无线相连,服务器包括存储智能云锁id信息和移动客户端id信息的存储模块,一台id信息的存储智能云锁通过存储模块仅连接经过管理控制台授权id信息的移动客户端,不同的存储智能云锁的id信息存储在存储模块的不同位置;存储智能云锁id信息和移动客户端id信息匹配后,智能云锁开启。
优选地,所述智能云锁包括控制器、按键模块和继电器模块,按键模块通过继电器模块与控制器相连,按键模块输入的信息通过通信模块ⅰ上传到服务器,与存储模块内的信息匹配后,智能云锁开启。
优选地,所述服务器采用tomcat服务器,其运行在linux系统的web环境下,其存储模块包括用来记录用户提交的个人信息及开锁权限的mysql数据库,以及用于记录微信app的登陆状态的redis数据库;服务器生成刷新频率可选的二维码数据。
优选地,所述移动客户端采用智能手机或者智能pad,移动客户端上安装有加载开锁小程序的微信app,该开锁小程序通过通信模块ⅱ下载并显示由java运行下的生成随机的二维码数据。
本发明所述的智能云锁系统的开锁方法,包括如下步骤:
步骤一:开机后智能云锁初始化,并通过通信模块ⅰ连接至服务器的通信模块ⅲ;
步骤二:通信模块ⅰ接收服务器随机生成的二维码数据,并发送给控制器并将其显示到液晶屏上;
步骤三:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
步骤四:服务器将来自移动客户端的二维码数据与存储模块中的数据进行比对,如果比对不通过,则继续等待;如果比对通过,则说明有开锁权限,下达开锁指令至智能云锁;
步骤五:智能云锁等待来自服务器的开锁指令,如果没有收到开锁指令,则继续等待;如果收到开锁指令则通过控制器控制继电器开启电控锁,完成开锁。
优选地,所述步骤三还包括以下前置步骤:
第一步:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
第二步:服务器将新加入的移动客户端id信息存储至存储器;
第三步:管理员通过pc端的管理控制台登录服务器,访问服务器新加入的移动客户端id信息,如果认可该移动客户端则授权,如果不认可移动客户端则拒绝;
第四步:服务器接收管理员的授权或者拒绝指令,并存储至存储模块中。
优选地,所述步骤四中,所述存储模块中的个人信息、微信app的登陆状态均不可访问,管理控制台可访问开锁权限信息。
优选地,所述服务器连接至少一台智能云锁和至少一台移动客户端,智能云锁与移动客户端为多对多的关系,即同一台智能云锁连接至少一台移动客户端且同一台移动客户端连接至少一台智能云锁;两个不同id信息的智能云锁之间、两个不同id信息的移动客户端之间均不可访问。
本发明的有益效果是:采用本发明所述的智能云锁系统采用存储模块划分不同的位置,保证了客户的开锁信息的安全性。本发明所述的智能云锁系统的开锁方法,利用微信小程序,简单快捷,无需另外安装app,存在粘性强的优点,体验效果好;开锁过程极大程度的避免客户的财产不受到非法的侵害,具有很大的研究和开发的意义。本发明可以广泛用于学校门禁、居民区门禁、企业门禁等场合。
附图说明
图1是本发明的结构原理框图。
图2是智能云锁的结构原理框图。
图3是移动客户端的结构原理框图。
图4是服务器的结构示意图。
图5是智能云锁控制器的电气连接图。
图6是智能云锁通信模块ⅰ的电气连接图。
图7是智能云锁继电器的电气连接图。
图8是本发明的流程框图。
图9是步骤三的前置步骤流程框图。
图10是服务器授权界面图。
图11(a)是微信app开锁小程序授权前的界面图。
图11(b)是微信app开锁小程序授权后的界面图。
图12(a)是智能云锁显示二维码数据的界面图。
图12(b)是智能云锁显示开锁成功的界面图。
图12(c)是开锁小程序显示开锁成功的界面图。
具体实施方式
为了使本发明目的、技术方案更加清楚明白,下面结合实施例,对本发明作进一步详细说明。
实施例一:
如图1至图7所示,本发明所述的智能云锁系统,包括与电控锁相连的智能云锁、经过管理控制台授权的移动客户端,以及设置于阿里云端的服务器,智能云锁包括通信模块ⅰ和显示二维码数据的显示模块ⅰ;移动客户端包括通信模块ⅱ和采集二维码数据的图像采集模块ⅱ;服务器分别与通信模块ⅰ、通信模块ⅱ无线相连,服务器包括存储智能云锁id信息和移动客户端id信息的存储模块,一台id信息的存储智能云锁通过存储模块仅连接经过管理控制台授权id信息的移动客户端,不同的存储智能云锁的id信息存储在存储模块的不同位置;存储智能云锁id信息和移动客户端id信息匹配后,智能云锁开启。
所述智能云锁系统还包括位于智能云锁上的图像采集模块ⅰ和位于移动客户端上的显示模块ⅱ,图像采集模块ⅰ采集显示模块ⅱ上的二维码数据。
所述智能云锁系统还包括移动客户端的按键模块和位于智能云锁的存储模块,按键模块输入的信息通过通信公司网络连接到智能云锁的通信模块ⅰ,输入的信息与存储模块内的信息匹配后,智能云锁开启。
如图2和图5所示,所述智能云锁包括型号为stm32f103vct6的控制模块、型号为sim800c的通信模块ⅰ、型号为lm2596-5v的电源模块、继电器模块和为液晶屏的显示模块,控制模块分别与通信模块ⅰ、电源模块、继电器模块和显示模块相连。
如图4所示,所述服务器采用tomcat服务器,其运行在linux系统的web环境下,其存储模块包括用来记录用户提交的个人信息及开锁权限的mysql数据库,以及用于记录微信app的登陆状态的redis数据库;服务器生成刷新频率可选的二维码数据。
如图3所示,所述移动客户端采用智能手机或者智能pad,移动客户端上安装有加载开锁小程序的微信app,该开锁小程序通过通信模块ⅱ下载并显示由java运行下的生成随机的二维码数据。
需要说明的是:通信模块ⅰ使用sim800c模块,该模块可支持4频gsm/gprs,工作的频段为:gsm850、egsm900、dcs1800和pcs1900mhz,与服务器通信。服务器采用阿里服务器,采用阿里服务器,可靠性高,性能强,linux系统开发简单,性价比高,多节点可选,满足该设计要求。采用微信小程序,开发简单,方便,实用,开发成本低,不需要下载和安装,方便用户使用。微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
阿里服务器与linux系统的配置步骤如下:
第一步:远程连接阿里云主机。
第二步:使用阿里云自带的分区工具auto_fdisksh给数据盘分区并格式化、挂载。
第三步:配置系统——linux一键安装web环境。
服务器运行在linux系统下,其中mysql数据库用来记录用户提交的个人信息及开锁权限。redis数据库用于记录微信app的登陆状态。tomcat服务器用于部署云锁的web应用,及java程序。
在服务器和微信小程序的前提下,为了使安全系数提高,将利用服务器在液晶屏上显示由java运行下的生成任意的二维码,并且每分钟刷新一次,刷新频率可以自己更改,只有管理员给用户权限,用户利用微信小程序扫描二维码,通过服务器识别判定,才可以打开电控锁。从而提高了系统的安全性。如果手机丢失,只需要告诉管理员,将会取消该微信的权限,进而得到安全保障。
1)控制器与服务器通信:服务器将二维码数据以及开锁指令发送给控制器。
2)移动客户端与服务器通信:开锁权限的申请以及开锁命令的请求。
3)继电器控制:用于控制电控锁的开启。
4)显示模块:用于显示服务器生成的二维码数据。
本发明的有益效果是:采用本发明所述的智能云锁系统采用存储模块划分不同的位置,保证了客户的开锁信息的安全性。
实施例二:
如图8至图12(c)所示,本发明所述的智能云锁系统的开锁方法,包括如下步骤:
步骤一:开机后智能云锁初始化,并通过通信模块ⅰ连接至服务器的通信模块ⅲ;
步骤二:通信模块ⅰ接收服务器随机生成的二维码数据,并发送给控制器并将其显示到液晶屏上;
步骤三:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
步骤四:服务器将来自移动客户端的二维码数据与存储模块中的数据进行比对,如果比对不通过,则继续等待;如果比对通过,则说明有开锁权限,下达开锁指令至智能云锁;
步骤五:智能云锁等待来自服务器的开锁指令,如果没有收到开锁指令,则继续等待;如果收到开锁指令则通过控制器控制继电器开启电控锁,完成开锁,如图12(a)至图12(c)。
如图9所示,所述步骤三还包括以下前置步骤:
第一步:客户打开移动客户端上微信app中的开锁小程序扫描液晶屏上的二维码数据,并通过通信模块ⅱ将其上传到服务器;
第二步:服务器将新加入的移动客户端id信息存储至存储器;
第三步:管理员通过pc端的管理控制台登录服务器,访问服务器新加入的移动客户端id信息,如果认可该移动客户端则授权,如果不认可移动客户端则拒绝,如图10和图11(b)所示;
第四步:服务器接收管理员的授权或者拒绝指令,并存储至存储模块中。
所述步骤四中,所述存储模块中的个人信息、微信app的登陆状态均不可访问,管理控制台可访问开锁权限信息。
所述服务器连接至少一台智能云锁和至少一台移动客户端,智能云锁与移动客户端为多对多的关系,即同一台智能云锁连接至少一台移动客户端且同一台移动客户端连接至少一台智能云锁;两个不同id信息的智能云锁之间、两个不同id信息的移动客户端之间均不可访问。
本发明的有益效果是:本发明所述的智能云锁系统的开锁方法,利用微信小程序,简单快捷,无需另外安装app,存在粘性强的优点,体验效果好;开锁过程极大程度的避免客户的财产不受到非法的侵害,具有很大的研究和开发的意义。
实施例三:
下面通过测试例对于本发明作出进一步的解释。
一、测试准备
s1:将sim卡装入sim800c模块中,并将sim800c与控制器连接。
s2:将控制器与液晶屏、继电器模块等外设相连接。
s3:给主控板通电,系统初始化。
二、测试过程
s4:用户扫描二维码下载微信小程序,并且打开小程序,如图11(a)至图11(b)所示。
s5:编辑开锁权限申请,管理员登陆云服务器,查看申请并同意,如图10所示。
s6:用户扫描液晶显示屏上生成的二维码,如图12(a)至图12(c)所示。
s7:等待五秒之内门锁开启。
三、测试结果
经过测试用户可通过扫描二维码下载微信小程序,打开小程序申请开锁权限,等待管理员授权。此时,用户扫描液晶显示屏上生成的二维码即可开启门锁,完成了预期设计目的。
本发明具有以下优点:
(1)方便快捷:该智能云锁系统只需用手机扫码就可以开锁,省去了传统机械锁携带钥匙的繁琐。
(2)数据互联:该门禁系统的数据都保存到了云服务器,即使断电,数据也不会丢失。
(3)系统简洁:该智能云锁系统因为采用了sim800c集成模块与单片机相结合进行控制,这样就避免了传统有线远程控制中布线,维护线路的繁琐工序,使得设备系统的架设变得非常的简洁并且易于维护,同时也降低了运行成本。
(4)管理简单:管理员只需在pc端登录服务器就能对用户进行授权管理,从而简化了管理过程。
(5)安全性高:显示屏生成任意的二维码,并且每分钟刷新一次,刷新频率可以自己更改,而且只有管理员授权后用户才能开启门锁,从而提高了系统的安全性。
本发明在实际生产生活中具有很大的意义,能被广泛的应用于家庭、工厂、政府、公司等各类场所,有效的消除安全忧虑的同时也具有很大的商业利用价值。
以上所述仅为本发明的较佳实施例而己,并不以本发明为限制,凡在本发明的精神和原则之内所作的均等修改、等同替换和改进等,均应包含在本发明的专利涵盖范围内。求手机扫描二维码的工作原理 50分
现在常见的二维码都是以QR码作为编码的码制,它是在一个矩形空间内,通过黑、白像素在矩阵中的不同分布来进行编码的。我们知道电脑使用二进制(0和1)数来贮存和处理数据,而在二维码中,用黑白矩形表示二进制数据,我们肉眼能看到的黑色表示的是二进制“1”,白色表示二进制的“0”,黑白的排列组合确定了矩阵式二维条码的内容,以便于计算机对二维码符号进行编码和分析。通过黑白表示0和1便于计算机读取,这就是二维码为什么都是黑白图形的原因。
二维码扫描定位流程
不过,手机拍到的照片都是彩色的,对于扫描的二维码也是一样,它默认也是彩色的,只不过颜色有深有浅而已,所以识别软件正是依靠颜色的深浅来完成对二维码识别的第一步。这一步叫做灰度化,也就是说颜色深的按深灰处理,颜色浅的按浅灰处理。
仅仅有了灰度的识别还是不够的,因为扫描时受周围环境的影响,会有噪声。这里所谓的噪声其实就相当于手机拍照时产生的噪点一样,也许照片上的噪点对照片并不会有太大的影响,但是扫描时的噪声却容易引起扫描的分析错误,所以第二步就是去噪。
完成了上面两步,就进入至关重要的二值化流程。因为上面已经说过,计算机采用二进制,而将深灰和浅灰的图案转换成只有黑或白两种颜色,就是二值化处理的任务,在二值化处理时,二维码将会首先被解读成白色黑色的条码。然后根据解析公式和阈值运算将其转化成二进制信息,也许再深入讲解公式可能一般人不能理解,但是我们要知道,二值化是一个非常复杂而且需要相当准确的步骤。
结束了上面的三步,接下来就是寻找探测图形。什么是探测图形呢?
经常看二维码的朋友都知道,二维码上有三个方块,这三个方块有什么作用?代表了怎样的含义呢?其实它的准确叫法就是位置探测图形。有了这三个点,不管是从哪个方向读取二维码,信息都可以被识别。即使将二维码图形旋转,也可以识别。
每个位置探测图形可以看作是由3个重叠的同心的正方形组成,它们分别为7×7个深色模块、5×5个浅模块和3×3个深色模块。位置探测图形的模块宽度比为1:1:3:1:1。这种1:1:3:1:1的宽度比例特征在图像的其他位置出现的可能性很小,因此被作为位置探测图形的扫描特征。正是基于此特征,当一条直线上(也就是扫描时看到的那条红线)被黑白相间地截为1:1:3:1:1时,可以认为该直线穿过了位置探测图形。
此外,二维码上还有一些图形混杂在几何图形中,是肉眼看不出来的,比如定位图形和分隔符。定位图形就是图中连接三个位置探测图形之间的两根“线”,它的作用是决定二维码符号中模块的座标,而分隔符的作用是将位置探测图形与符号的其余部分分开。也就是说,通过扫描能读取的数据信息在二维码中的位置是由定位图形和分隔符决定的。所以二维码上都有三个小方块,它的作用主要是方便识别和决定二维码符号中模块的座标。
二维码译码与纠错
当得到了一个可识别的二维码后,接下来的工作就是译码和纠错。译码就是对二维码中所包含的格式信息、版本信息、数据和纠错码信息进行解码和比对,而纠错是在译码的同时进行的。其实,一个二维码除了上面讲到的探测图形外,还有各种译码信息被集成在二维码中,通过二维码包含信息示意图我们就可以对一个二维码所含的信息元素有大概的了解。
完成了译码,手机上从二维码的识别到解码的工作就完成了,剩下的工作就是联网传输数据,从而获得二维码的相关内容。也许你不曾想到,看似 *** 作简单的二维码识别,没想到背后会涉及到这么多的步骤和公式计算,而这仅仅还是针对普通的二维码,如果是一个加密的二维码,其背后的工作可
android 二维码扫描的原理是什么
将二维码图型,通过扫描器输入,在内制软件进行解码。详情查看百科
参考资料:
微信扫描二维码登录网页是什么原理
在电脑上使用微信时,你可能已经发现微信不提供传统的账号密码登陆,取而代之的是通过扫描二维码进行登陆。今天就要研究下次登陆方式微信时如何实现的?
1、每次用户打开PC端登陆请求,系统返回一个唯一的uid,并将uid的信息绘制成二维码返回给用户。这里的uid一定是唯一的,否则就会造成你登陆了其他用户的账号或者其他用户登陆你的账号。
2、当用户使用登陆后的微信扫描该二维码的时候,会将这个uid和手机上的微信账号及密码产生的token进行绑定,并上传到服务器。
3、WEB通过JS不断的向后端发起请求,查询有没有关于uid的登陆记录(uid和token是否存在于服务器上)。实现代码可以从微信页面获取:
function _poll(_asUUID) {
var _self = argumentscallee,
_nTime = 0;
_sCurUUId = _asUUID;
_logInPage("_poll Request Start, time: " + new Date()getTime());
_nTime = new Date()getTime();
$ajax({
type: "GET",
url: "login" + _sBaseHost + "/cgi-bin/mmwebwx-bin/loginuuid=" + _asUUID + "&tip=" + show_tip,
dataType: "script",
cache: false,
timeout: _nAjaxTimeout,
success: function(data, textStatus, jqXHR) {
_logInPage("_poll Request Success, code: " + windowcode + ", time: " + (new Date()getTime() - _nTime) + "ms");
switch (_aoWincode) {
case 200:
_sSecondRequestTime = new Date()getTime() - _sSecondRequestTime;
_logInPage("Second Request Success, time: " + _sSecondRequestTime + "ms");
clearTimeout(_oResetTimeout);
$get(_aoWinredirect_uri + "&fun=new", function(msg) {
_logInPage("new func reponse, reponseMsg: " + msg);
_reportNow("new func reponse, reponseMsg: " + msg);
var code = msgmatch(/
gne 是什么格式? 20分
Flickr中利用该文件类型响应用户请求(类似cgi)。
Flickr是一个著名的国外Blog
二维码扫描q原理是什么
通过2d的激光头进行识别,实际上是图像解析就是固定在硬件中
有声明信片的二维码是什么原理?
首先,有声明信片是基于网络的,每一个二维码是独一无二的,他的每一个二维码对应着该明信片公司服务器上的一个特定的地址(网址),基本原理如下:
发送方:进入“贴贴手机"软件->扫描二维码(软件会得到服务器上一个特定的地址)->上传声音照片等信息
接收方:进入“贴贴手机"软件->扫描二维码(软件会得到服务器上同样的地址)->读取声音等信息
二维码确实是先录入后生成的,这个公司是先将服务器上的每一个地址录入到二维码,然后将二维码卖给顾客,接下来就和上面的一样了。
微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的
可以江网页链接生成二维码 然后微信扫一扫就自动链接网页了呀 现在网上很多免费生成二维码的软件哦
微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的
你直接买软件就行,营掌柜据我说了解的。
二维码是一个字符串。这个字符串一般藏的信息是一个a链接。然后通过这个链接,
会发出一个>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)