电子说
步骤1:计划
计划是获得一个Arduino以模拟警报面板的键盘。
HKC面板会认为这是标准键盘-但实际上是与Arduino通讯-此Arduino没有键盘或显示器-而是有一个Web服务器,您可以通过Internet连接到该服务器。
服务器提供一个网站,该网站使用websockets作为通信传输,以在其中提供响应非常快的仿真键盘HTML。缓冲了数个按键,以提供与原始键盘相当的响应。
Arduino可以安装在HKC总线上的任何位置-我将它放在了警报面板柜中-但您可以将其连接到键盘上
如果“警报面板”与任何以太网连接相距一定距离,也可以使用以太网到Wifi适配器-尽管为方便起见,最好使用有线以太网电缆系统的安装和可靠性。
步骤2:零件
所需的零件清单为:
Arduino Uno R3(亚马逊链接£6)
-即。一个标准的arduino-可以从$ 5起的价格购买克隆
Arduino以太网屏蔽(亚马逊链接,价格为£7)
-另一个标准的Arduino部件-亚马逊以约$ 10的价格向其出售aprox
DC-DC电源(链接或链接)约$ 4
用于将面板的12V电压转换为稳定的5V电压
三个晶体管BC109(或任何类似的通用NPN晶体管,例如2N2222或2N2369)
示意图
迷你面包板
中指定的电阻。您还需要HKC警报的工程师(管理员)密码。
如果您没有密码,则可以考虑将面板默认设置为出厂默认值,然后重新配置-请参阅此过程的手册。还有其他删除密码的方法,但这些方法不在本说明的范围内。
为Arduino供电
DC-DC电源是正确的最关键组件-不要试图使用廉价的汽车12V至5V适配器-我测试的便宜适配器的电压包含可能导致Arduino随机崩溃的纹波电压。
I在使用以太网适配器或使用报警面板的5V电源时,建议不要使用内置9V插座的Arduino,否则会变热!上面指定的DC-DC适配器非常高效,并且提供了非常稳定的5V电压而不会发热-我将此5V电压施加到Arduino的5V引脚上。
如果您决定使用市电USB适配器(例如电话适配器)供电,而不是上面建议的模块供电-您需要确保此适配器的输出GND连接到任何面板接地;因为所有东西都需要共享相同的GND。
面包板选择
我使用了一个小型迷你面包板来对该系统进行原型设计。如果您制作得足够整洁-面包板足以用作多年的解决方案-但您可能希望使用例如上一张照片中所示的小型原型护罩来制作焊接版本。
第3步:构建
需要构建自定义电路以将Arduino 5V引脚连接到HKC的12V总线。
尽管HKC有4条连接小键盘的电线-实际仅使用3条。两条线接地,一条是+ 12v,最后一条是数据线,用于接收和发送来自报警面板的信号。
因此,我们需要一个电路,将其分成两个单独的部分Arduino的RX和TX以及在5V和12V之间执行电压转换。信号也被反转为Arduino的喜好。该电路还必须能够在不说话时与总线断开连接,以免干扰总线上其他键盘的操作。我尝试尽可能地使用相同的零件来简化购买-例如,这三个晶体管都相同。
我花了一些时间来制作尽可能少的零件,就像这里显示的一样。
它需要三个晶体管,但是组装起来并不难。实际使用的晶体管可以从上一步列出的兼容晶体管中选择-电阻值必须符合规定。如果使用金属盖的晶体管,请确保金属盖不会触碰任何东西,因为它们经常连接到晶体管引脚之一。电路设计为使用最小电流,因此不需要散热器。
图中显示的是面包板的照片。
有关此问题的任何问题-可以寻求帮助-我我们已经在这里拥有的两种不同型号的HKC面板进行了测试-可以与其他型号一起使用。对于其他品牌的警报器,您可能需要考虑我的其他通用遥控警报器。
第4步:Arduino代码
代码很复杂-这是一项艰巨的工作,需要使用一些技巧来压缩所有这些代码(键盘仿真器,HTML Web服务器,HTML页面,电子邮件客户端,Websocket Web服务器和DES加密以及Base64库)全部都放入了微型Arduino UNO 32K闪存和内存空间中。
所有代码都托管在这里:
https://github.com/OzmoOzmo/CastleHKCArduinoRKP
我会每次都更新项目代码-因此请务必分叉该项目,以便在有更新时得到通知。
只需下载所有文件(重要:请使用 (而不是一次下载一个zip文件)。
要编译:
将其放置在同一文件夹中-并打开Arduino IDE中的.ino文件。
项目config.h中有一个配置文件-您可以在此处设置您的IP地址,您的电子邮件地址和其他选项。值得一提的是它具有所有可供选择的选项。
编译并上传到Arduino。您需要将Arduino与警报面板完全断开以对其进行编程-好像连接到Arduino RX&TX(引脚0&1)的任何东西都会干扰编程进度。
最好不要使用5V电源。电源连接到Arduino,USB同时连接到PC。
开发人员-定制软件
有用于调试的软件串行-您可以通过TTL到USB,以查看来自arduino的日志。默认情况下,启用调试模式的标志在提供的代码中处于关闭状态。我发现Visual Micro是比Arduino IDE更好的开发环境。
示波器和数字信号分析仪对于解码所使用的协议至关重要。
出于好奇-我如何对协议进行反向工程
-我连接了两个键盘
-我用示波器测量了波特率。我可以看到这是一个令人惊讶的9bit和不寻常的波特率,这对在Arduino上工作具有挑战性(因为Arduino库不只支持8bit)。多余的位用来表示新消息的开始。
-使用合适的电压均衡电阻,让Arduino在单线数据总线上侦听流量并发送到PC。
-我在每个键盘上都放置了一个不同的电阻数据线,因此我可以通过监视电压电平并读取消息来识别警报,数字键盘1或数字键盘2在何时使用该线路。
-通过操作每个功能,我可以看到相关的消息包键盘和警报发送;我可以看到各种功能的命令字节;显示文本,指示灯,蜂鸣器等,并以纯文本形式发送显示文本,每个文本都有一个校验和字节。
-我在代码中重复了此功能。
注册新键盘的密码是最困难的。
步骤5:连接和最终说明
安装
要安装此项目-您需要告诉HKC警报面板上的总线上有一个新键盘-进入工程模式,然后从菜单中选择“安装远程键盘”选项。
如果您已将所有电缆连接好,您应该会看到一个新键盘正在注册
接受此操作,然后退出“工程”菜单。
没有要设置的键盘ID-在进行总线扫描时,键盘的ID都是确定的-但是, Arduino将尽最大努力将自己定位为键盘2。
要随时进行卸载很容易-只需进入Engineering菜单,将Arduino移开,然后再次运行“安装远程键盘”程序即可。
便捷提示
如果“警报面板”显示键盘不响应,它将发出警报-因此,如果您要在任何阶段卸下Arduino,请继续操作等等-只需在进入工程师菜单时输入-警报会在“工程”菜单中时听不到声音-邻居也将欣赏此提示。
连接
连接到面板。浏览到IP地址:检查地址设置的配置-在此版本的软件中,我默认将其设置为“ http://192.168.1.205:8383”。
它适用于大多数现代软件浏览器和手机。
外部访问权限:
您可以通过在家庭路由器上进行端口转发并选择使用以下一项来从家庭外部进行访问:免费的动态DNS服务。只需考虑提高以下安全性即可。
网络安全性:
特别是如果您要对外开放房屋访问权限,请考虑以下技巧以增加难度的任何人都会猜出您的密码。
将端口更改为某个随机数(默认值为8383)。
请考虑将警报面板密码设置为6位数字长(默认为4位数字)。
请确保用户和工程师(管理员)HKC警报面板上的密码不是默认密码。
至少应启用警报面板上的“面板篡改”功能,在经过10次左右的错误猜测后,您将被锁定一分钟,以防止蛮力猜测
将来的工作和已知问题
确定警报是否已消失-Arduino在键盘上寻找消息以点亮键盘上的红色警告灯Led-这是键盘知道警报消失的唯一方法-不幸的是,自从发现此指示灯也发出后,分开设置闹钟时会短暂灰化。因此,当您对警报进行部分设置时,您会收到一封电子邮件发送给您-多哈-当我再次设置环境后,我将更正此问题。否则仍然可以正常工作。
全部0条评论
快来发表一下你的评论吧 !