IoT 自建智能门锁!教你以声音节奏认证开门

..

你有没有曾经想过”开门真的好无聊有没有其他有趣的方法”又或者”疫情留在家中真的很无聊,有什么适合打发时间”。

你行运啦!我哋篇教程就系专门为大家在无聊到爆嘅日常,落手落脚做劳作,体验手作嘅成功感和挫败感。无论你系咩都唔识,定系电工大师睇完教程之后你最起码会得到过得非常之充实嘅一个礼拜。

而今日我哋要介绍嘅就系,由Grathio研制嘅Secret Knock Detecting Door Lock,令你完全不需要挂心有没有带锁匙。更可以订制自己喜欢的节奏,无论系姜b新歌《作品的说话》定系安东宁·德弗札克的第9号交响曲《From the New World》都冇问题。

说到点解要做敲门门锁,理由有一大堆,除左可以用自己钟意嘅方式黎开门之外,摆脱锁匙、锁匙会被图片复制都是理由之一,你可能会话,买一个电子门锁不就好了?但看到小则上千的价格,难免不让人却步,这个就是为什么这一篇文章会出现的原因。

呢一次要制作的敲门门锁有比较多的步骤,需要一步一步来慢慢制作,首先从材料方面说起。

第一步:以下是必须的一些材料

材料:

  • 一块arduino电子板,(又或者能够兼容具有至少 1 个类比输入和 3 个数字输出的微控制器)
  • 1个3-6 V的齿轮减速马达
  • 一个压电喇叭(30mm) 
  • 一个按钮开关
  • 红色和绿色的LED灯各一个
  • 一个双极性电晶体(P2N2222A)
  • 一个整流二极管(1N4001)
  • 一个2.2k Ω的电阻(1/4瓦特)
  • 一个1M Ω的电阻(1/4瓦特)
  • 两个560Ω的电阻(1/4瓦特)
  • 一块面包板(免焊万用电路板)
  • 杜邦线(公对公头)
  • 两个9v电池座
  • 打印机线(USB type A to type B)

建议有:

  • 簪玉
  • 万用电表
  • 烙铁
  • 剥线钳
  • 锡线

第二步:编程arduino电子板

首先,我们需要在这个网站下载arduino的软件,然后按照说明安装。

然后下载文章下面的档案并且将名字转为secret_knock_detector.ino。

准备好以上步骤后,接下来我们需要用打印机线把arduino电子板连接到电脑进行编程。打开安装好的arduino软件,开启刚刚下载好的secret_knock_detector.ino档案并点击左上角的剔号进行检查验证,若显示没有问题,就可以点击同样在左上角的箭咀上载编码到arduino之中。

如果你对编程有一定认识,那么你可以选择修改档案内的code来获得更个人化的体验。

以下说明code的运作:

const int knockSensor = 0;   设定压电喇叭      

const int programSwitch = 2;      设定按钮 

const int lockMotor = 3;            设定摩打

const int redLED = 4;               设定红色LED灯

const int greenLED = 5;            设定绿色LED灯

以上是默认的电路位置,没有特别问题可以不用更改

第40行:int secretCode[maximumKnocks] = {50, 25, 25, 50, 100, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

以上输入的数值确定了敲门的节奏,默认的节奏是shave and a hair cut歌曲,输入25或50的数值就能够以更快的拍子来解锁,你可以设计一个你喜欢的节奏来设定该部分,但建议先修改为100,100,0,0,0…..快速敲击3下来测试成效。

除非你有编程的底子,不然其他code则不建议你更改,保持默认的设定就可以了。

步:电路

现在你终于来到最激动人心的步骤连接电路,首先你需要准备一块免焊式的电路板面包板和一块arduino。

将两条杜邦线从面包板的正负极连接到arduino的5v和GND接口。

将整流二极管(1N4001)白色的那一面连接到4b另一面连接到7b,把一条杜邦线从1a连接到正极。

将一条杜邦线从面包板的7a连接到11c,另一条从9c连接到负极,再将一条从10c连接到arduino的Digital PWM 3接口。将双极性电晶体(P2N2222A)连接到9d、10d、11d。

然后先准备好了你的电阻。

把22k电阻从18a连接到负极,将一条杜邦线从15c连接到正极,另一条从18b连接到arduino的Digital PWM 2接口。

把560电阻从21a连接到负极,另一条从22a连接到arduino的Digital PWM 4接口。

把560电阻从25a连接到负极,另一条从26a连接到arduino的Digital PWM 5接口。

然后就准备安装LED灯,所谓长正短负,永远要记得要将较长的一边连接住正极。

将红色led灯连接着21b和22b,绿色led灯连接着25b和26b。

把1M电阻从27d连接到30d,将一条杜邦线从30c连接到负极,另一条从27c连接到arduino的A0接口。

把压电喇叭连接到27e和30e。

下一步就是连接电源,由于一颗9v电池不太够经过电路板再推动马达,所以建议用簪玉并联两个9v电池推动马达。电池的正极连接到Vin,负极连接到GND。

然后便是连接马达和开关,根据我们无数失败的经验建议使用LED代替马达测试电路。

把马达从4c连接到7c,开关从15d 连接到8c。

如果没有连接错电路就大功告成。

最后将马达与这形状的铁片结合,你就会得到一款新奇有趣的敲门门锁。

第四步:测试

打开arduino软件,然后在右上角点击放大镜标志开始测试,如无以外会出现”Program start.”,接着就可以开始敲击,等一至两秒后敲击节奏正确应该会出现”Door unlocked!”字样,反之则出现”Secret knock failed”。

其次,经过我们测试,面包板上的红绿LED灯在按钮开关开启时应该只有绿灯会亮起,在每一次敲击时绿灯都会闪烁,成功解锁后绿灯会连续闪烁三次。而如果失败则红灯连续闪烁三次。成功解锁arduino将会传送信号让摩打启动以开启门锁。

在按钮开关保持关闭时,红绿LED灯都会同时亮起,以表示目前是关闭状态,敲击将不会启动摩打。

如果以上步骤出现问题,那么首先检查一下线路有没有错误。

我们在这里提供几个可能会发生的问题解决方法。

绿色LED灯有亮但是马达或测试用LED灯没有反应。那就很大机会是双极性电晶体或是线路连接出错,先检查线路有没有错误,再检查双极性电晶体平面是否面对杜邦线。

若线路没有错但没有任何回应,检查杜邦线是否有效。

改进:

若你希望进一步提升该系统的实用性,建议能从以下方面考虑:

  • 修改或添加code来附加新功能,例如储存复数敲门声序列
  • 加入镜头来拍下敲门错误的人
  • 以更好的物料来包覆零件

还有其他你能够想像的都是好的想法

总结:

虽然这个DIY敲击门锁有一定的难度及一定的电工知识要求,但也是一个不错的体验,如果你对DIY有兴趣,不妨尝试一下,满足自己亲手制作的成功感和挫败感。

编程档案https://content.instructables.com/ORIG/F1T/DII6/GIYWWK6R/F1TDII6GIYWWK6R.tmp

Reference:https://www.instructables.com/Secret-Knock-Detecting-Door-Lock/


想在手机阅读更多程式设计资讯?下载【香港硅谷】Android应用
分享到Facebook
技术平台: Nasthon Systems