4G开关类设备接入用户服务器的步骤与意义

描述

我司开发了4G开关类设备并且不断完善整个系列,目前系列中含有C01/C11/C21/C31几个系列,这几个大型号之间主要是壳体与输入输出方式与数量的区别,主要功能上是带有DO继电器输出,DI输入检测,AI输入检测,可以与服务器之间实现控制指令的下发控制与设备主动上报设备的信息。当定制设备接入用户自己的平台后,用户服务器可以自行管控这些设备(甚至包括不同型号),方便自己的整个管理系统搭建。

4G4G

后续我司又在4G开关类中补充了智能插座智能空开,它们不仅能够进行DO输出继电器的控制,还可以进行电流检测,电压检测,用电量检测以及实现过电流/过电压保护等功能。

 

接入说明

一般情况下,4G开关类接入协议都是MQTT协议(部分设备支持TCP协议但是使用面小,基本没有使用),标准品是使用MQTT协议接入到阿里云的服务器上,然后使用阿里的“云智能”APP进行控制。


 

对于订制品而言,使用MQTT协议接入到用户自己的MQTT服务器上,需要用户提供服务器地址与端口(一般都是1883),大多数用户服务器都是开放式的MQTT接入,不对设备的MQTT三元组进行强校验,设备会以字符串”ebt-”加上设备的出厂ID作为MQTT连接的唯一ClientID,比如设备出厂ID为“S3200278S00047”,那么连接到MQTT服务器上的设备ClientID就是”ebt-S3200278S00047”,Username统一直接使用出厂ID,即为”S3200278S00047”,password要看服务器是否校验,如果需要校验则由用户提供password,如果不校验则不用管这一项。


 

这样设备出厂就会有唯一的ClientID接入到用户MQTT服务器,方便用户标记每一台设备。其中这些服务器地址,连接信息等在提交定制流程后给到我司即可,我司会按照相关信息更改固件并生产。


 

发布/订阅Topic

上面说到了用户如何接入到自己的服务器,这里说一下设备的信息上行Topic和控制信息下发的Topic,默认定制的4G开关类设备会订阅”yibaite/xxxxxxxxxxxx-set”,”xxxxx”的部分为设备的出厂ID,就是上面说到的ID,所以服务器下发的控制信息由此Topic下发,设备接收到控制信息进行解析,就会做出相应动作。


 

默认定制的4G开关类设备发布信息Topic为”yibaite/xxxxxxxxxxxx-post”,也就是说设备会通过这个Topic,上报自身的状态信息。所以如果用户不对订阅和发布Topic作特殊要求,就会使用如上的发布/订阅Topic,如果有特别要求,请联系我司相关人员。(部分用户也会使用订阅发布的统一Topic,比如所有设备都订阅同一个”eq-set”这个Topic,发布都走”eq-post”这个Topic,不过这样用户服务器必须具有向指定ClientID设备发送信息,并根据设备接入信息分辨是哪一台设备发布的信息的能力)。


 

设备交互的信息协议

以上已经说明了设备的接入过程与发布/订阅Topic的过程,下面说一下设备交互的信息协议,这是设备原有的标准品交互协议,所以设备的固件改动小,所需的定制费用低,如果需要定制自己的协议,需联系我司相关人员,相应的定制费用也更高。

 

先看一包服务器下发的控制信息最简包

{

"method":"thing.service.property.set",

“id”:”2023-6-12-16_22”

    "params":

    {

        "powerstate":1

    }

}

其中method和ID为必要字段,method必须填写thing.service.property.set,id一般使用时间戳,然后就是params也是必要字段,代表控制信息,下面的子json里面就是相应的控制字段,对于所有的4G开关系列而言,第一路开关(包括只有一路的设备,比如空开类和智能插座类)的控制字都是"powerstate",对应值填1就是打开,填0就是关闭,其他的控制字在下面会更详细一些给出,设备其实有很多功能,都可以通过不同控制字段实现控制。

 

再看一包设备上发的设备信息最简包

{

    "id": "000001-0000010",

    "version": "1.0",

    "method": "thing.event.property.post",

    "params": 

    {

        "csq": 71,

        "ICCID": "89860495042180775849",

        "powerstate": 0

    }

}

设备上发的信息json中的method固定为thing.event.property.post,然后params中就是设备的自身信息,比如上方的csq代表的是设备的信号强度,ICCID代表的是SIM卡的标识,powerstate就是第一路开关的当前状态。上面的只是最简包,方便最快理解,上报信息中还有很多其他的信息字段,代表的是其他部分功能,比如智能插座/空开的电流/电压/用电量读取值这类参数。

 

一些关键字段(不同设备有一些不同的功能,所以有不同的字段,但是设备没有的功能,不会上发相应的控制字段,也不会响应相应的控制信息)

powerstate:第一路开关的当前状态(部分设备有powerstate_currunt字段,功能一样)

ch2:第二路开关的当前状态(部分设备有多路DO输出)

ch3:第三路开关的当前状态

ch4:第四路开关的当前状态


 

ICCID:SIM卡标识

csq:信号强度

mode:IO的工作模式,分别是自锁/点动/互锁(只有部分设备有此功能)

dtime:点动时间(部分设备有此功能)

dstatus:设备上电状态,默认值为2,代表维持断电前状态

IN_CH1/IN_CH2/IN_CH3/IN_CH4:分别代表4路DI输入的值,当为1时代表接通(只有部分设备有DI功能)

S_Version:软件版本号

is_warning:是否产生断电报警,0为关闭,1为打开(只有部分设备有断电报警功能,设备发生断电,会上发一包数据,里面带有powerWarning这个关键字,用户可以自己查看数据包自然明白)

 

以下参数只有智能插座/空开这类带电流电压检测功能的设备才有这部分控制字段:

power_read:功率读取值,单位W

electric_read:电流读取值,单位A

voltage_read:电压读取值,单位V

power_usage:用电量,单位千瓦时

over_protect_up_sw:过电流上阈值保护启用

over_protect_up:过电流保护上阈值,当启用过电流上阈值保护,电流值大于这个值自动关断

is_enable_reclose:是否启用重合闸(智能空开特有功能)

is_enable_v_protect_up:是否启用过压保护(智能空开特有功能)

is_enable_v_protect_down:是否启用欠压保护(智能空开特有功能)

v_over_range:过压阈值,当启用过压保护,电压大于这个值,开关自动关闭

v_down_range:欠压阈值,当启用欠压保护,电压小于这个值,开关自动关闭

 

以上就是主要的一些控制,虽不是全部功能,但是已经包含了所有的主要功能,其他一些功能都不常用,比如还有带AI输入的设备的AI相关读取与联动控制等。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分