家里的智能化設(shè)備越來越多了,比如我現(xiàn)在家里用的門鎖可以使用密碼或者指紋解鎖,相比之前只能用鑰匙開門的老式機(jī)械鎖,就沒有了忘記帶鑰匙而進(jìn)不去家門的煩惱了。但是我住的小區(qū)是一個90年代的老小區(qū),單元門禁還是非常老式的門禁系統(tǒng)。開單元門只能通過樓下鑰匙,或者樓下按房間號樓上電話機(jī)開鎖鍵開鎖。
這種受限的開鎖方式給日常生活帶來了一定的不便利性,比如平時上班家里沒人時,經(jīng)常會有快遞員去送快遞卻進(jìn)不去單元門的問題。此外自己偶爾也會忘記帶鑰匙,恰好碰上家里也沒人,樓下也沒人進(jìn)出的話,就會出現(xiàn)尷尬進(jìn)不去的狀況。
作為一個嵌入式工程師,咱能不能把單元門禁改進(jìn)一下,不用鑰匙使用手機(jī)就能開鎖呢?
答案當(dāng)然是可以的!
我家里的門禁系統(tǒng)是立林的,室內(nèi)電話機(jī)型號是JB-2002II-F06,四根線和樓下的主機(jī)連接。
為了不破壞原有主機(jī),我在網(wǎng)上又單獨(dú)買了一個電話機(jī),專門用來做改造,一不小心型號買成了JB-2001II-F06,不好還好這個型號也能用,買來后連接接線端子,樓下按房間號:000,就會建立起連接。如果要改為自己家的房間號,需要去剪斷下圖紅框中的部分連接引腳,它對應(yīng)樓層和房間號的編碼。
要實現(xiàn)控制,首先需要了解此單元門禁的工作機(jī)制。
電話機(jī)的供電來自于樓下主機(jī),不過不是常供電,可以用萬用表去量那幾根線,兩兩之間是沒有電壓的。只有在樓下按下房間號后,主機(jī)才會給相應(yīng)的房間電話機(jī)供電。當(dāng)室內(nèi)電話機(jī)鈴聲響起時,在一定的時間內(nèi)拿起電話機(jī),再按下確認(rèn)鍵,就可以實現(xiàn)看門了。
樓下不按房間號,直接用電話機(jī)是開不了門的,另外電話鈴響起時不摘機(jī)也是開不了門的。
要實現(xiàn)遠(yuǎn)程控制,就需要對原有的電路板做一定的修改,我們要實現(xiàn)的就是模擬摘機(jī)和按下開鎖鍵的動作。同時還要考慮不影響原來正常的手動摘機(jī)開鎖的功能。
拆開之后,首先找到開鎖鍵對應(yīng)的信號點,當(dāng)按下開鎖鍵時下圖紅框中的兩個點會短接。
摘機(jī)對應(yīng)的是一個叉簧開關(guān),平時叉簧開關(guān)是按下的狀態(tài),摘機(jī)的時候?qū)?yīng)開關(guān)彈起來。叉簧開關(guān)有6個引腳。
當(dāng)電話機(jī)一直掛在上面的時候,PCB上的3-1通,3-5斷,4-2通,4-6斷。然后電話摘機(jī)后,3-1斷,3-5通,4-2斷,4-6通。并且3-4是不通的。
這里我們可以通用繼電器去控制,3和4接繼電器的公共端,5和6接繼電器的常開端,1和2接繼電器的常關(guān)端。
但是問題來了,如果電話一直是掛機(jī)狀態(tài),3-1和4-2就一直是通的狀態(tài),你用繼電器去控制,怎么能讓其斷開呢?
把叉簧開關(guān)的A腳拔出來,接到繼電器的NC上,繼電器的公共端接PCB的A,繼電器的NO接C腳,就可以解決上述問題。
電話機(jī)正常使用時:
因為繼電器沒有控制,叉簧開關(guān)的A和PCB的A接在一起,和之前叉簧開關(guān)正常焊接時的情況是一樣的:掛機(jī)狀態(tài)下, PCB的AB通,AC斷。摘機(jī)狀態(tài)下,PCB的AB斷,AC通。
遠(yuǎn)程控制使用時:
電話機(jī)處于掛機(jī)狀態(tài),還是PCB的AB通,AC斷。
繼電器一旦控制,叉簧開關(guān)的A和PCB的A會斷開,所以PCB的AB不會再通了,而PCB的AC會通。和手動摘機(jī)的效果完全一樣。
要實現(xiàn)遠(yuǎn)程控制,我這里使用了一個ESP-C3的小板子,加上3個繼電器,借助WIFI連接就可以實現(xiàn)遠(yuǎn)程控制。
軟件使用樂鑫提供的rainmaker示例,https://github.com/espressif/esp-rainmaker,可以在examples/led_light的例子上做簡單修改,
添加上GPIO控制繼電器的代碼,再配合手機(jī)Rainmaker APP, 就可以實現(xiàn)遠(yuǎn)程開鎖了。