自动唤醒解锁电脑 bat_电脑锁屏/刷卡自动解锁装置DIY

261b289648466220872a3d04706f22c5.png

前言

建立这个专栏已经很久了, 一直也没有做点什么。以前的时候非常喜欢电子DIY,大学的时候也做过很多东西。后来学业逐渐繁重,也就把这种DIY留在心里,全心做科研。然而, 最近愈发觉得,这样的兴趣不应该被抛弃,在繁杂的生活工作之中给自己找点额外的乐趣,对生活和工作也都会有积极的作用。何乐不为呢?

这次DIY的动机是,每天都要锁屏解锁电脑很多次,用的是windows系统,快捷键锁屏(win+L)以及输入密码解锁,虽然已经很方便了,但是作为一个有DIY头脑以及能省则省的懒癌患者,自然地就会想如何简化这样繁琐的程序。于是,就开始了此次的DIY。

基本思想

这样个装置最重要的就是实现电脑解锁的简化,每次都要输入一长串密码确实很繁琐,尤其是很多时候输入错误,又要重新输入。最开始的想法是通过程序解锁,但是windows并没有提供可以解锁的API,当然这是可以理解的,这是为了系统用户的安全。作为喜欢电子的DIYer来说,很自然的就想到了通过单片机模拟USB键盘,模拟手动解锁的步骤给电脑解锁。电脑锁屏的实现相对简单,可以通过按键输入win+L,也可以通过程序给系统发送锁屏信号,但是为了与解锁统一,此处也就选用单片机模拟键盘进行锁屏。

硬件方案

对于解锁,需要保证安全性,即只能我自己才能解锁,否则锁屏没有什么意义。我能想到的方案有三个:

1、指纹解锁

62e695f7174959f92cb1b467e40b024e.png

指纹模块非常符合,但是价格较贵。

2、 人脸识别,通过摄像头读取人脸数据,放在台式机上运行相关程序。这种首先摄像头价格不便宜,其次,虽然人脸识别都有开源程序,但是还是较为复杂。另外,对于照片并不能很好的做区别。

3、NFC近场通信模块,就类似于我们用的公交卡

1233af840f326569aaa6ed33ea7f7cca.png

NFC模块价格便宜,通信也不复杂,只是每次都需要手动刷卡。


综合上面几种方法,最终还是决定选用NFC模块,其实是因为我手头恰好还有一个NFC模块(hahahaha...)

控制中心当然是用单片机,对于单片机选取方案也是有三种

1、51单片机

51单片机是经典单片机了,价格便宜,电路简单,网上的资料可以说是非常丰富了,是一个非常好的备选。

2、STM32单片机。

这些年火起来的,价格便宜,关键是性能强劲,种类型号非常多,可以适用不同的场景,相关的资料也是不少。

3、Arduino

最近几年逐渐流行起来,把底层的硬件全部屏蔽,以堆积木的方式进行硬件搭建和编写程序,在GitHub上也有很多包。不过相对来说,Arduino的价格也是最贵的。

前两个我都有学习过,但是Arduino并没有真正的接触过。综合考虑后,我还是选择了Arduino,可以作为一个学习的机会。另外,Arduino也有很多型号,根据我们的要求,需要选择能进行键盘模拟的,经过考虑,最终选择了Arduino Micro,这个板子上的单片机硬件支持USB模拟,因此在编程方面较为简单。

7fb6544a81c5613581c6a90367ae8b25.png
上电测试刚到手的Arduino Micro,一切运行正常

————————

另外,还需要

一个人体红外探测器,用于检测是否有人在电脑前;

一个按钮,用于锁屏(虽然还是需要按钮,但是比win+L简化了);

LED+三极管+220电阻+10k电阻,组成LED电路,用于指示系统工作状态。

关于NFC卡以及模块做一个简单的说明:NFC卡里面有一个芯片,每一块芯片都有一个可读的唯一编号,以及一些加密了的信息。编号是可以直接读取的,所以对于安全性要求不是很高的情况下,可以通过读取卡的编号来判断卡的主人。此次DIY就是用的这样的原理,首先把读取卡的编号并存储在Arduino中,然后每次刷卡的时候读取编号,二者比对,若相同,则解锁,若不相同,则不产生动作。

118c3b7fe5b6153b663b3436893e2bdc.png
我手上的NFC模块,型号为RFID-RC522

关于用Arduino控制NFC模块,我用的NFC模块是比较常见的RC522,在GitHub上早就有了开源的库,

367d2c88545fffa5637502f6ae2ff488.png
github上的开源库

链接

miguelbalboa/rfid​github.com
b865e7fc8fb243cbffa8c58f316222d3.png

所以最关键的刷卡部分的程序实际上很简单。

制作成品

虽然是成品,但是也就是简易的DIY,外形并不美观,但是好在实现了功能。电路图就不放了,下面直接放做好了的电路。电路是在洞洞板上做的,

0416802a82151e874680d70257510d19.png
电路正面

47adf5e725e44125897aed96387f5f39.png
电路背面

把Arduino通过USB连接到电脑上就可以正常运行了。

锁屏:按一下锁屏按钮

解锁:进入到人体红外探头可探测范围,一般在几米之内,此时LED指示灯亮起,表示进入读卡准备状态,此时在面板的刷卡区刷一下卡,就可以解锁了。

下面是演示视频

950c3f98f3e3ac5f44733964f5dd75ce.png
演示视频https://www.zhihu.com/video/1135658716492931072

总结

关于NFC卡,现在有不少手机,比如说小米手机极其手环,都有门禁卡模拟功能,因此可以用手机或者手环去解锁电脑,这样就显得更加高端了!(本来想录制一段手机解锁的视频,但是我就一个手机,所以很遗憾没法录制了。之后录了再补上!)

这次制作总体来说比较简单,关键的NFC部分也有现成的包,Arduino本身编程也很简单,因此制作还是比较容易的。这次制作主要是拾起来曾经的爱好,也算是小成就一件!


子乾 · DIY, FUN WITH DIY!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值