近期,一栋楼的楼宇对讲系统遭遇了不便,那就是它不支持远程通话和对讲功能。
对于这一情况,作为一位资深工程师,我深感责任重大。于是,我决定对楼宇对讲分机进行改造,以解决这一问题。
改造过程中,我花费时间拆开了分机的外壳,并使用万用表对数据通信部分的电路进行了详细检查,其电路图如下所展示。
数据通信电路
随后的日子里,我利用之前测试智能灌溉系统废的LoRA通信样品,进行了若干调整。
以下是远程的系统架构:
系统架构图
操作步骤如下:
- 智能灌溉主控与自建服务器建立长久的TCP连接。
- 为了省去布线的麻烦,主控与安装在分机附件的通信小板采用LoRA进行无线通信。
- 当用户走到门前时,只需打开手机上的某个应用,点击其中的链接。
- 随后,从自建云服务器上下载界面。
- 通过特定的API接口对用户身份进行验证,生成访问令牌。
- 采用websocket协议向云服务器发送请求及访问令牌。
- 通信小板接收到请求后,解析出信息,并通过楼宇对讲总线通知主机进行操作。
- 楼宇对讲主机收到指令后,执行动作。
关于通信小板的改造部分,我进行了如下操作:
如上图所示,阴影区域是由智能灌溉分控改造的通信小板电路,其余部分为对讲分机的通信相关电路。
通信小板通过SPI接口与LoRA模块连接。其单片机的UART模块输出的UART数据经过处理后,由PNP三极管发送到总线。
为了增强通信数据的传输距离和抗干扰能力,我在输出的PNP三极管Q9的E极串入了两个并联的电阻。
当串口数据位为0时,通信小板向总线提供一定电流;而当数据位为1时,则不提供电流。这样设计使得楼宇对讲分机在待机时也能定时向总线发送心跳数据。
在改造过程中,我遇到了几个问题并采取了相应的措施:
供电问题:最初打算通过对讲分机内部的12V电源为通信小板供电。但经计算,电流过大,功耗太高。最后改为使用9V电池供电。得益于通信小板的低功耗设计,其静态平均工作电流仅几十微安,一节电池使用一年应该没有问题。
串口通信的时钟精度问题:初期测试时,发现通信小板的命令发出后主机无反应。通过实测通信波形,发现波特率对应的脉宽存在较大误差。为解决此问题,我果断将预留的外部晶振焊上,改用外部晶振作为时钟源,此后分机便能愉快地与主机进行通信了。
分机待机状态问题:在分机未进入通话状态时,发送命令主机无动作。经查证,发现分机待机的功能被禁用。为此,我在通信小板上增加了简单的自动摘机、功能。
模拟按键操作的问题:因对讲分机采用触摸按键且由另一块小板上的专用芯片检测,模拟按键操作涉及专用芯片协议的实现及原按键操作的不影响,考虑到复杂度及实施难度,我选择了暂时放弃这一方案。
关于程序部分,智能灌溉分机已有完整的程序。我仅需在原有的LoRA通信及RS485通信基础上增加一个简单的状态机即可。
通过这些改造和调整,我成功地为这栋楼的楼宇对讲系统添加了远程通话和对讲功能,极大地提升了居民的出入便利性。