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/