Open Source藍牙控制門鎖

十月 1, 2014
Facebook
Twitter
常常四處尋找鑰匙,想撥通電話給它,才發現它們只不過是一串討人厭的破銅爛鐵嗎?或者是想要讓朋友或客人在你到家前進入你家,才想到他們沒有鑰匙嗎?
Lockitron原本可能是你的救星,它是一個可以搭配各種門鎖,用app遠端控制的裝置。它在Kickstarter上募集了220萬美元,但是集資成功時已經超過了1.5年的時限,這項裝置的資助者只好幻想破滅了。
你也是期待幻滅的集資者之一嗎?別再不切實際地等待Lickitron出現在你的信箱裡了,你可以化悲憤為力量,用智慧型手機數字密碼鎖-The Bean Lock,透過手機控制你家的門鎖。
The Bean Lock是一種裝在無線電子鎖上,以the LightBlue Bean控制的數字密碼鎖。The LightBlue Bean是種可以跟Arduino相容的微型控制裝置,可以透過藍牙進行無線編寫,所以即便你已經將它裝進電子鎖裡,你還是可以重新編寫它的程式。The Bean Lock可以用the iOS application LightBlue來對the LightBlue Bean發送串列資料,所以你不必為了使用the Bean Lock自己編寫一個新的app


步驟一:取得所有材料

图片

步驟二:重新組裝電子鎖

將電子所拆開並拆卸下如圖中的金屬板,這個門鎖的門閂是以馬達驅動,小小的轉動就可以將門牢牢鎖上。你得把幾乎所有的電線從電子鎖上移除,唯一要留下的只有馬達、微動開關以及電池組。

步驟三:連接LightBlue Bean

The Bean沒辦法跟馬達使用相同的電壓,所以我們需要穩壓器來替LightBlue Bean將電壓降至3.3V
將穩壓器的接腳銲接到電路板上,並且將兩個電容器都接上穩壓器。

步驟四:將穩壓器通電

GND銲接一條電線到穩壓器最左邊的接腳,然後將另一條電線從BAT銲接上中間的接腳。

步驟五:接上馬達的控制板

馬達控制面板要用來控制電子鎖的馬達,以下是銲接的方法:
STBY      
AIN1      
AIN2       
PWMA   
VCC         
GND    
VM    
A01
A02
BeanPin3
BeanPin0 
BeanPin 2
BeanPin 1 
BeanBAT
BeanGND
電池組
馬達鎖

馬達鎖

步驟六:連接門鎖的微動開關

門鎖中有兩條電線負責連接門鎖的微動開關,將其中一條接地,並將另一條連接到LightBlue Bean上面的Pin 5。
喘口氣,好好欣賞你的傑作吧!

步驟七:收尾

图片

稍微檢查一下,你的電線跟控制面板組合應該看起來是這個樣子,如果跟上圖完全吻合無誤,恭喜你,你已經完成大部分的步驟了!

步驟八:把各個零件放進門鎖裡

图片

LightBlue Bean 跟馬達控制面板通通放電子鎖背後的空間裡,把金屬背板鎖回去,把背殼放回去,別忘了裝電池!

步驟九:設定密碼

我們可以使用the app LightBlue來控制電子鎖的開關,其中有一個叫做Sandbox的功能,讓你可以直接在這個app上給予串列資訊,控制門鎖的動作,免去自己重新編寫一個app的麻煩。當LightBlue Bean收到你的手機發出的串列資訊,它會將收到的位元資訊跟內建在編程裡的密碼相比對,當比對無誤,the Bean Lock就會打開或上鎖,從這裡獲得初始密碼。
除此之外,記得將你的Bean以密碼加護,以免別人重新編寫它,讓你的家暴露於危險之中。

步驟十:將門鎖安裝回門上

我們打算跟鳥爸爸鳥媽媽一樣,把如同雛鳥的你們直接推出鳥巢外。每個門多多少少都有些不同,所以你們得自己摸出方法把門鎖安回門上,不過也不必太擔心,因為電子鎖的包裝上都會有簡潔明瞭的安裝說明,所以我相信你們一定可以馬上搞懂怎麼做的。
鳥爸爸鳥媽媽的確很狠心,我們也是,抱歉囉。

結論

安全上的疑慮

Bean Lock如果很容易被破解的話,就會將所有使用者的居家安全暴露於危險當中。因此,除非你能夠確定它很安全,否則我們不建議將家裡主要的門鎖換成這個電子門鎖。我們認為,用安全性金鑰加密將Bean Lock變成安全性更高的IoT裝置會是一個解決辦法。如果你自己用Bean SDKiPhone app來控制門鎖,你可以選擇在你的ArduinoiPhone app 密碼加入AES 加密庫,然後你就可以在其中植入安全驗證系統(challenge-response system)來防止駭客入侵。

  • iPhone app發送將門解鎖的要求訊息
  • The Bean接收要求訊息,然後發送安全驗證碼(任意字元串)至手機app
  • App以共享安全性金鑰將驗證碼加密,然後將加密過的安全驗證碼發送回The Bean上。
  • The Bean將加密過的安全驗證碼以安全性金鑰解密,然後確認驗證碼與原本送出的符合,就可以確定正在發送要求打開門鎖的訊息的iPhone有相同的安全性金鑰,並且是被授權的裝置。
  • 然後The Bean就會把門打開了!

如果你是用比較小型或簡單的裝置,例如5-digit pin而不是128-bit key的話,入侵者可能就會嘗試用每種可能的數字密碼組合來暴力破解你的電子鎖。如果你有自動鎖定裝置,例如,每輸入三次錯誤的密碼就會自動鎖定裝置60秒,入侵者可能就會因為太耗時間知難而退。
The Bean被設計成非常容易編寫指令的程式,但是為了門鎖的安全性,你應該不會希望自己的鄰居可以輕易的重新編寫它,所以在最近的版本更新裡,我們加上了驗證碼認證程序,讓你的The Bean可以避免被不認識裝置的任意進入編程。
如果你希望有更安全的保障,你可以將藍牙模組連接到Arduino板上RESET腳位的路徑切斷,少了這個重置路徑,LBM313模組就無法重置Arduino板來進行重新編程。你也可以選擇在Aruino板上的RESET腳位上焊上開關,這樣你就可以確保只有能夠接觸到門鎖本體的人才能夠重新編寫the Bean程式。

下一步?

目前這個計畫還只是個原型,不能保證居家安全無虞,但我們相信未來可以將這個裝置發展更好,甚至跟市面上的智慧型手機控制鎖一樣好,就像原本萬眾期待的Lockitron。如果你有任何疑問或點子,都歡迎在BeanTalk論壇上跟我們討論,我們非常期待看見你們的任何想法。

图片

西蒙.葉茲
原本在瑞典名校Hyper Island就讀,但後來發現鑽研硬體改裝比研究數據戰略有趣多了。目前在Punch Through Design實習,擔任創意科技開發人員。


(譯:孟令函)
[原文]

Social media & sharing icons powered by UltimatelySocial