打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
改造通信小板电路,实现远程开锁
前一段时间的一篇文章说到,一个朋友家的楼宇对讲系统不支持远程通话、对讲的功能。
有时出入不太方便。
这种情况下,作为一个有几十年工作经验的工程师,我为了不愧于这一称号,主动承接接下改造楼宇对讲分机的重任。
上一次花了点时间,把分机外壳拆开,用万用表把数据通信部分电路抄了下来,如下图:
数据通信电路

今天又花了半天时间,利用之前基于LoRA通信的智能灌溉系统测试时报废的样品,
改了几个电阻,焊了几条飞线,再改写了一小段程序,顺利完成了远程开锁的功能。
远程开锁功能的系统架构如下:
系统架构

远程开锁操作步骤如下:
  • 智能灌溉主控与自建服务器建立TCP长链接;
  • 为了达到免布线的目的,主控与安装在分机附件的通信小板采用LoRA进行无线通信;
  • 用户走到门前时,打开手机x信,在公众号菜单上点击链接;
  • 从自建云服务器上下载开锁界面;
  • 通过x信提供的API接口对用户的身份进行认证,生成access token;
  • 采用 websocket协议向云服务器服务器发送开锁消息以及access token;
  • 云服务器根据access token判断权限,如果有权限,则向智能灌溉主控转发开锁消息;
  • 智能灌溉主控将开锁消息通过LoRA通信转发给由智能灌溉分控改造的通信小板;
  • 通信小板生成从楼宇对讲总线上抓包得到的开锁消息,通知楼宇对讲主机开锁;
  • 楼宇对讲主机收到消息之后,执行开锁动作;
通信小板的改造
改造的电路

如上图,阴影部分区域为由智能灌溉分控改造的通信小板电路,其余部分为对讲分机的通信相关电路;
通信小板通过SPI接口与LoRA模块对接;
从其单片机的UART模块输出的UART数据经过两极反向之后,由PNP三极管将其发送到总线;
在输出的PNP三极管Q9的E极串入两个并联的100欧电阻,使得通信采用电流信号实现。
可以增加通信数据的传输距离和抗干扰能力;
当串口数据位为0时,通信小板向总线提供200mA左右的电流;
当串口数据位为1时,通信小板不向总线提供电流;
楼宇对讲的分机处于待机状态时,仍会定时向总线发送心跳数据。
这一心跳数据会影响通信小板的通信,因此,增加了NPN三极管Q12组成的电路;
当通信小板需要发送数据时,单片机在YOUT_04口输出高电平,使得Q12处于饱和导通状态;
此时,如果楼宇对讲分机有数据发送,其提供的电流信号将被Q12消耗,而不会流入总线,从而不会对通信小板的通信造成影响;
碰到的几个问题以及应对的措施在调试过程中,碰到了几个问题:
1) 供电问题
刚开始想通过对讲分机内部的12V电源给通信小板供电。细算下来,电流太大,功耗太高。
最后采用9V电池给通信小板供电,所幸通信小板支持低功耗,静态平均工作电流仅几十uA,一节电池工作一年应该没有问题;
分析如下:
对讲系统的12V电流由28V的总线电源通过7812稳压得到,
而通信小板的单片机工作电源由外部电源通过3.3V的LDO稳压得到;
LoRA处于工作状态时,其工作电流可高达50mA;
如果由对讲分机内部的12V供电,则其内部的7812的功耗高达 50*(28-12)=800mW。
温升可高达50度左右;
通信小板的LDO的功耗也高达50*(12-3.3)=435mW,SOT-23封装的LDO的温升至少高达50度以上;
2)串口通信的时钟精度问题
灌溉分机采用内部高速R、C振荡器作为时钟,开始测试时,通信小板发了命令,
但是主机没有任何反应,用示波器实测通信波形,发现1200bps的波特率,
但是1个bit的脉宽居然是890us左右,与实际的 833us脉宽相比;
误差高达(890us-833us)/833us=7%。
当发送到第10个停止位时,其误差高达70%,显示接收端已经无法再正确解析数据;
果断把预留的外部晶振焊上,时钟改成外部晶振,问分机愉快地与主机打上了招呼;
3)分机待机状态开锁的问题
在分机未进入通话状态时,通信小板发送开锁命令,主机就是不执行任何动作;
再细查,原来分机待机开锁的功能被禁用了。
对讲系统只保留了主机呼叫、分机摘机再开锁的功能;
不得以,只能在通信小板上实现简单的自动摘机、开锁功能;
即检测到有呼叫命令(后续增加)或者收到从服务器发送的开锁命令,则:
a. 通过YOUT_04输出高电平,禁止对讲分机发送数据,延时一段时间;
b. 往总线发送摘机命令,延时一段时间;
c. 往总线发送开锁命令,延时一段时间;
d. YOUT_04输出低电平,允许对讲分机发送数据;
4)模拟按键操作的问题
在整个调试过程中,也有想法模拟按键操作,
如果是机械按键,可以接线从摘机和开锁按键焊出线来控制;
无奈对讲分机是触摸按键,而且触摸按键由另一块小板上的专用芯片检测;
如果要模拟按键操作,则需要实现专用芯片的协议,还需要不影响原来按键操作;
相关麻烦,只能暂时选放弃;
程序灌溉分机已经有了完整的程序,因此只需要在原来LoRA通信以及RS485通信的基本上增加一个简单的状态机;
  1. if(bTimer100ms){
  2.                  if(unlocktimer > 0){
  3.                                 unlocktimer --;
  4.                  }
  5.         }
  6.         if(unlockstate == 1){
  7.                 fnMB_Init();
  8.                 uartbuff[0] = 0x7f;
  9.                 uartbuff[1] = 0x06;
  10.                 uartbuff[2] = 0x0A;
  11.                 uartbuff[3] = 0x04;
  12.                 uartbuff[4] = 0x00;
  13.                 uartbuff[5] = 0x00;
  14.                 uartbuff[6] = 0x15;
  15.                 uartbuff[7] = 0x23;
  16.                 RS485_Send(0, uartbuff, 8, FALSE);
  17.                 unlocktimer = 20;
  18.                 unlockstate = 2;
  19.         }
  20.         else if(unlockstate == 2){
  21.                 if(0 == unlocktimer){
  22.                         unlockstate = 3;
  23.                 }
  24.         }else if(unlockstate == 3){
  25.                
  26.                 uartbuff[0] = 0x7f;
  27.                 uartbuff[1] = 0x06;
  28.                 uartbuff[2] = 0x22;
  29.                 uartbuff[3] = 0x04;
  30.                 uartbuff[4] = 0x00;
  31.                 uartbuff[5] = 0x00;
  32.                 uartbuff[6] = 0x15;
  33.                 uartbuff[7] = 0x3b;
  34.                 RS485_Send(0, uartbuff, 8, FALSE);
  35.                 unlocktimer = 15;
  36.                 unlockstate = 4;
  37.                
  38.         }else{
  39.                 if(0 == unlocktimer){
  40.                         unlockstate = 0;
  41.                 }
  42.         }

通信小板

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
楼宇4
楼宇对讲系统方案
一种新颖的1 1 线制楼宇对讲系统
什么是楼宇对讲系统?如何安装接线?一文了解清楚
安居宝楼宇对讲系统如何设置 安居宝楼宇对讲系统设置方法【详解】
楼宇对讲智能功能有哪些具体内容
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服