串口传感器通过WiFi模块链接服务器

万万没想到,在人工智能技术日新月异的今天,我却由于工作需要,开始倒退搞传感器和串口了。虽然觉得没什么技术含量,但也还是记录下来吧,一是没准会给有需要的兄弟们提供微薄的帮助,二是给自己做个记录。

首先介绍一下场景,我的目的是要检测区域内是否有人出现,但是处于隐私的考虑,不能使用摄像头。我采购的硬件包括:泽泰的传感器,型号是ZT-CZSXD034-T485,这个传感器可以通过“红外”、“雷达”和“存在”三种感应方式检验区域内是否有人。我先后买了他们家的两款设备,这个贵一点但是感觉更灵敏,但是价格也贵一些。为了跟服务器链接,我还买了一个汉枫的串口转WiFi模块,型号是HF-2211A。拓扑图如下:

设备长这个样子:

硬件到手后,先把HF-2211A接上电源,上电后会有一个HF2211A_XXXX的无线网络,最后四位XXXX是随机的,每个设备的不一样。然后加入这个无线网络,输入10.10.100.254登录HF-2211A的管理页面,在里面把无线网配置好,保证HF-2211A能连上WiFi。我连上WiFi后就把HF-2211A“无线网络设置”里面的“WiFi模式”设置成STA了。如下图:

这里还要提个醒,“WiFi模式”设置成STA之前,一定要先看看HF-2211A的IP是什么,点击管理页面中左侧栏“系统设置”,就是下面图中这个地方:

因为一旦设置成STA模式就意味着要关闭AP了,这时就不能再通过原先HF2211A_XXXX的无线网络连上管理页面了。只能通过STA之后的IP链接后台,我这里的WiFi是office-2,内网IP是172.28.140.241,所以新的管理页面地址是http://172.28.140.241/index.html,重启HF-2211A之后,就要通过这个地址登录管理页面了。

这里还有个办法,就是在office-2内网的电脑上安装IOTService,我安装的是中文版3.1.3,这个工具很重要,早晚都得安装,启动后就可以看到office-2网内所有的串口模块设备了。我这里有两台HF-2211A,为了区分,我把其中一台的主机名改成了Eport-HF2211A-Test。从这个界面中也可以看到串口设备的内网IP 地址,用这个地址拼接管理页面的链接也可以。如下图:

接下来配置HF-2211A调用的接口地址,点击管理页面左侧栏的“通讯设置”,选择要使用的协议,我这里选择的是Http协议。然后再“协议设置”里面配置好“路径”就可以了。要注意,这里配置的接口路径,一定要保证能在内网被访问到,否则这里配置了也没用。如果HF-2211A暂时还没有链接串口设备,也可以把“心跳”打开先测试一下,我一般会设置哥DATA+TIME做心跳包的报文,如果接口能收到POST或者GET的报文就说明配置没有问题了,如下图:

下一步要点击管理页面左侧栏的“串口设置”,根据传感器的参数配置,我的ZT-CZSXD034-T485传感器波特率是9600,8个数据位,1个起始位,1个停止位,无校验位,共10个bit。下面是说明书:

按照这个说明书里面的信息配置就行,具体配置如下:

到这里,HF-2211A的配置就完成了,接下来要设置ZT-CZSXD034-T485传感器。按照我的需求,主要有两个地方需要设置:

1、要把传感器的“拉取”查询模式改为主动“推送”模式,简单说就是当传感器发现“有人”或“无人”的时候,主动向接口推送报文告知。

2、要修改传感器ID,因为HF-2211A下面要接多个传感器,接口必须要知道报文是哪个传感器发送过来的,好确定具体位置。

这时就必须要用到前面提到的IOTService了,打开应用程序,找到要设置的HF-2211A,双击图中的位置查看设备状态:

在“设备状态”界面中,点击“设备编辑”按钮,如下图:

再点击“高级设置”按钮:

点击“编辑脚本”按钮:

点击“导入脚本”按钮:

把下面脚本保存成txt并导入:

cmd01=[0x02,0x06,0x00,0x05,0x00,0x01,0x58,0x38]

num=0

TIMER HeartBeat 1000

   num=num+1

   IF(num==2)

      SEND(UART,uart0,cmd01)

   END

END

请注意,cmd01里面的第一个值,0x02表示传感器编号,如果修改了编号,需要修改最后两位校验码。校验码要在另一个软件里获取,如下图:

点击“校验”:

点击“确定”后,增加的两位就是校验码,如下图:

脚本里面cmd01的值和校验码就是这么来的。接下来把脚本导入。

导入后重启模块:

重启后,传感器就变成主动推送模式了,此时当传感器感应到“有人”或“无人”的时候,就会主动调用接口,可以在接口里获取输入流,如下图:

这里会打印出报文信息,具体含义如下图:

下面再说一下修改ZT-CZSXD034-T485传感器的报文,报文如下:
cmd01=[0x02,0x06,0x00,0x01,0x00,0x03,0x98,0x38]

num=0

TIMER HeartBeat 1000

   num=num+1

   IF(num==2)

      SEND(UART,uart0,cmd01)

   END

END

其中cmd01里面的0x02是当前要修改传感器的ID,0x03是要将当前传感器要改成的ID,最后两位0x98,0x38也是校验码,修改报文的时候,要跟前面一样,去“串口调试软件4.5”里面获取对应的校验码。

最后还有一点,HF-2211A这个设备,使用AP模式后,没过1、2个小时就会出现断网的现象,断网后手动重启一下就能恢复。因为我的使用场景对传感器实施性要求不是非常高,而且我没有串口转USB的线,所以没有深究其中原因,对HF2211A做了个处理,只要HF2211A断网一分钟就自动重启。这个处理也是通过脚本的方式实现的,脚本如下:

connflg=0

CONN SOCK netp

   connflg=1

END

DISCONN SOCK netp

   connflg=0

END

TIMER time 60000

   IF (connflg == 0)

   RESET

END

END

脚本的写入方式和前面一样。

至此调试全部完成,希望对大家有所帮助。

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值