步驟1:計劃
HKC面板會認為這是標準鍵盤-但實際上是與Arduino通訊-此Arduino沒有鍵盤或顯示器-而是有一個Web服務器,您可以通過Internet連接到該服務器。
服務器提供一個網(wǎng)站,該網(wǎng)站使用websockets作為通信傳輸,以在其中提供響應非??斓?a target="_blank">仿真鍵盤HTML。緩沖了數(shù)個按鍵,以提供與原始鍵盤相當?shù)捻憫?/p>
Arduino可以安裝在HKC總線上的任何位置-我將它放在了警報面板柜中-但您可以將其連接到鍵盤上
如果“警報面板”與任何以太網(wǎng)連接相距一定距離,也可以使用以太網(wǎng)到Wifi適配器-盡管為方便起見,最好使用有線以太網(wǎng)電纜系統(tǒng)的安裝和可靠性。
步驟2:零件
所需的零件清單為:
Arduino Uno R3(亞馬遜鏈接£6)
-即。一個標準的arduino-可以從$ 5起的價格購買克隆
Arduino以太網(wǎng)屏蔽(亞馬遜鏈接,價格為£7)
-另一個標準的Arduino部件-亞馬遜以約$ 10的價格向其出售aprox
用于將面板的12V電壓轉(zhuǎn)換為穩(wěn)定的5V電壓
三個晶體管BC109(或任何類似的通用NPN晶體管,例如2N2222或2N2369)
示意圖
迷你面包板
如果您沒有密碼,則可以考慮將面板默認設置為出廠默認值,然后重新配置-請參閱此過程的手冊。還有其他刪除密碼的方法,但這些方法不在本說明的范圍內(nèi)。
為Arduino供電
DC-DC電源是正確的最關鍵組件-不要試圖使用廉價的汽車12V至5V適配器-我測試的便宜適配器的電壓包含可能導致Arduino隨機崩潰的紋波電壓。
I在使用以太網(wǎng)適配器或使用報警面板的5V電源時,建議不要使用內(nèi)置9V插座的Arduino,否則會變熱!上面指定的DC-DC適配器非常高效,并且提供了非常穩(wěn)定的5V電壓而不會發(fā)熱-我將此5V電壓施加到Arduino的5V引腳上。
如果您決定使用市電USB適配器(例如電話適配器)供電,而不是上面建議的模塊供電-您需要確保此適配器的輸出GND連接到任何面板接地;因為所有東西都需要共享相同的GND。
面包板選擇
我使用了一個小型迷你面包板來對該系統(tǒng)進行原型設計。如果您制作得足夠整潔-面包板足以用作多年的解決方案-但您可能希望使用例如上一張照片中所示的小型原型護罩來制作焊接版本。
第3步:構建
需要構建自定義電路以將Arduino 5V引腳連接到HKC的12V總線。
盡管HKC有4條連接小鍵盤的電線-實際僅使用3條。兩條線接地,一條是+ 12v,最后一條是數(shù)據(jù)線,用于接收和發(fā)送來自報警面板的信號。
因此,我們需要一個電路,將其分成兩個單獨的部分Arduino的RX和TX以及在5V和12V之間執(zhí)行電壓轉(zhuǎn)換。信號也被反轉(zhuǎn)為Arduino的喜好。該電路還必須能夠在不說話時與總線斷開連接,以免干擾總線上其他鍵盤的操作。我嘗試盡可能地使用相同的零件來簡化購買-例如,這三個晶體管都相同。
我花了一些時間來制作盡可能少的零件,就像這里顯示的一樣。
它需要三個晶體管,但是組裝起來并不難。實際使用的晶體管可以從上一步列出的兼容晶體管中選擇-電阻值必須符合規(guī)定。如果使用金屬蓋的晶體管,請確保金屬蓋不會觸碰任何東西,因為它們經(jīng)常連接到晶體管引腳之一。電路設計為使用最小電流,因此不需要散熱器。
圖中顯示的是面包板的照片。
有關此問題的任何問題-可以尋求幫助-我我們已經(jīng)在這里擁有的兩種不同型號的HKC面板進行了測試-可以與其他型號一起使用。對于其他品牌的警報器,您可能需要考慮我的其他通用遙控警報器。
第4步:Arduino代碼
代碼很復雜-這是一項艱巨的工作,需要使用一些技巧來壓縮所有這些代碼(鍵盤仿真器,HTML Web服務器,HTML頁面,電子郵件客戶端,Websocket Web服務器和DES加密以及Base64庫)全部都放入了微型Arduino UNO 32K閃存和內(nèi)存空間中。
所有代碼都托管在這里:
https://github.com/OzmoOzmo/CastleHKCArduinoRKP
我會每次都更新項目代碼-因此請務必分叉該項目,以便在有更新時得到通知。
只需下載所有文件(重要:請使用 (而不是一次下載一個zip文件)。
要編譯:
將其放置在同一文件夾中-并打開Arduino IDE中的.ino文件。
項目config.h中有一個配置文件-您可以在此處設置您的IP地址,您的電子郵件地址和其他選項。值得一提的是它具有所有可供選擇的選項。
編譯并上傳到Arduino。您需要將Arduino與警報面板完全斷開以對其進行編程-好像連接到Arduino RX&TX(引腳0&1)的任何東西都會干擾編程進度。
最好不要使用5V電源。電源連接到Arduino,USB同時連接到PC。
開發(fā)人員-定制軟件
有用于調(diào)試的軟件串行-您可以通過TTL到USB,以查看來自arduino的日志。默認情況下,啟用調(diào)試模式的標志在提供的代碼中處于關閉狀態(tài)。我發(fā)現(xiàn)Visual Micro是比Arduino IDE更好的開發(fā)環(huán)境。
示波器和數(shù)字信號分析儀對于解碼所使用的協(xié)議至關重要。
出于好奇-我如何對協(xié)議進行反向工程
-我連接了兩個鍵盤
-我用示波器測量了波特率。我可以看到這是一個令人驚訝的9bit和不尋常的波特率,這對在Arduino上工作具有挑戰(zhàn)性(因為Arduino庫不只支持8bit)。多余的位用來表示新消息的開始。
-使用合適的電壓均衡電阻,讓Arduino在單線數(shù)據(jù)總線上偵聽流量并發(fā)送到PC。
-我在每個鍵盤上都放置了一個不同的電阻數(shù)據(jù)線,因此我可以通過監(jiān)視電壓電平并讀取消息來識別警報,數(shù)字鍵盤1或數(shù)字鍵盤2在何時使用該線路。
-通過操作每個功能,我可以看到相關的消息包鍵盤和警報發(fā)送;我可以看到各種功能的命令字節(jié);顯示文本,指示燈,蜂鳴器等,并以純文本形式發(fā)送顯示文本,每個文本都有一個校驗和字節(jié)。
-我在代碼中重復了此功能。
注冊新鍵盤的密碼是最困難的。
步驟5:連接和最終說明
安裝
要安裝此項目-您需要告訴HKC警報面板上的總線上有一個新鍵盤-進入工程模式,然后從菜單中選擇“安裝遠程鍵盤”選項。
如果您已將所有電纜連接好,您應該會看到一個新鍵盤正在注冊
接受此操作,然后退出“工程”菜單。
沒有要設置的鍵盤ID-在進行總線掃描時,鍵盤的ID都是確定的-但是, Arduino將盡最大努力將自己定位為鍵盤2。
要隨時進行卸載很容易-只需進入Engineering菜單,將Arduino移開,然后再次運行“安裝遠程鍵盤”程序即可。
便捷提示
如果“警報面板”顯示鍵盤不響應,它將發(fā)出警報-因此,如果您要在任何階段卸下Arduino,請繼續(xù)操作等等-只需在進入工程師菜單時輸入-警報會在“工程”菜單中時聽不到聲音-鄰居也將欣賞此提示。
連接
連接到面板。瀏覽到IP地址:檢查地址設置的配置-在此版本的軟件中,我默認將其設置為“ http://192.168.1.205:8383”。
它適用于大多數(shù)現(xiàn)代軟件瀏覽器和手機。
外部訪問權限:
您可以通過在家庭路由器上進行端口轉(zhuǎn)發(fā)并選擇使用以下一項來從家庭外部進行訪問:免費的動態(tài)DNS服務。只需考慮提高以下安全性即可。
網(wǎng)絡安全性:
特別是如果您要對外開放房屋訪問權限,請考慮以下技巧以增加難度的任何人都會猜出您的密碼。
將端口更改為某個隨機數(shù)(默認值為8383)。
請考慮將警報面板密碼設置為6位數(shù)字長(默認為4位數(shù)字)。
請確保用戶和工程師(管理員)HKC警報面板上的密碼不是默認密碼。
至少應啟用警報面板上的“面板篡改”功能,在經(jīng)過10次左右的錯誤猜測后,您將被鎖定一分鐘,以防止蠻力猜測
將來的工作和已知問題
確定警報是否已消失-Arduino在鍵盤上尋找消息以點亮鍵盤上的紅色警告燈Led-這是鍵盤知道警報消失的唯一方法-不幸的是,自從發(fā)現(xiàn)此指示燈也發(fā)出后,分開設置鬧鐘時會短暫灰化。因此,當您對警報進行部分設置時,您會收到一封電子郵件發(fā)送給您-多哈-當我再次設置環(huán)境后,我將更正此問題。否則仍然可以正常工作。
-
警報器
+關注
關注
2文章
71瀏覽量
19712 -
Arduino
+關注
關注
188文章
6477瀏覽量
187602
發(fā)布評論請先 登錄
相關推薦
評論