太阳城2528娱乐-太阳集团99138.com-www.2003.com 
首页 > 服务中心 > 晶控教室 >

KC868-H8_H32智能家居掌握盒通信协议详解

2018-12-23 16:32
分享到:
经由过程浏览第一期文章——《第一个翻开/封闭电灯的Hello World小顺序》,信赖你已经能够经由过程电脑写个简朴的PC顺序去掌握一个灯胆的开取闭,肯定很镇静了吧。恭喜,你已经跨入物联网的第一道大门,今天我们将对KC868-H8智能掌握盒的通信协议做一下周全的剖析取进修,如许,您便能够充分发挥本身的想象力,对掌握盒停止当地、近程、智能化的掌握以至是联动掌握,真正接触到他的壮大地点,给你绝对的DIY天真度。

  物联网将万物停止互联,正在全部体系中,有云端,有客户端,有硬件底层端,之前我们之前是自力存在的,相互之间就是相互生疏的,只要人人遵照同一的尺度,如许每一个部分皆能够听懂得对方,以至能够停止交换。好比:我们各地的人本地的方言,外埠的听不懂,这时候若是人人皆讲普通话,所有的人皆能够晓畅人人念表达的意义了。通信协议正在全部系统中,便起到了标准化的要害感化,从而让所有的装备可以或许懂对方。

  上面,我们去一同进修一下KC868-H8智能掌握盒的通信协议,看看他是怎样和别的装备停止交换的。注:通信协议中有泛起KC868-H8和KC868-H32两种型号,KC868-H8是带8路继电器开关的智能掌握盒;KC868-H32是带32路继电器开关的智能掌握盒,这是两种差别设置的产物,差别的继电器路数能够实用差别的运用场景。

kc868-h8
KC868-H8 形状图片

太阳城2528娱乐
KC868-H32 形状图片

  起首,我们列出所有的通信协议内容,以下所有的内容,当智能掌握盒经由过程以太网设置东西,把本身设置成“TCP服务器”形式下,都可经由过程客户端,如PC端停止下令的收发实现交互通讯,掌握盒默许的IP和端口参数是IP地点:192.168.1.200,端口:4196
  通信协议的进修取调试,我们能够运用网络调试助手软件,也能够从杭州晶控电子官网停止下载运用。
网络设置

1.查询智能掌握盒装备型号:
发送:RELAY-SCAN_DEVICE-NOW
返回:RELAY–SCAN_DEVICE–CHANNEL_8/CHANNEL_32,OK/ERROR
 
  那是一条查询装备范例的指令,我们念得到当前衔接的装备范例时,能够发送以上参数。现在智能掌握盒有两种差别设置的型号,即下令下发后,若是获得胜利会返回:“RELAY–SCAN_DEVICE–CHANNEL_8,OK” 或 “RELAY–SCAN_DEVICE–CHANNEL_32,OK”那两品种型的字符串。返回值最前面的数字“8”代表该掌握范例为KC868-H8,“32”代表该掌握范例为KC868-H32。

智能家居通信协议

2.智能掌握盒服务器事情形式开启:
发送:RELAY-TEST-NOW
返回:RELAY-TEST-START
 
  那是一条智能掌握盒的初始化下令,当掌握盒处于“TCP服务器”形式时,需求发送那条初始化下令让掌握盒进入事情状况,该事情形式开启后,后续一切通信协议中的“包序号”参数都可运用流动的数值便可,我们在后面的和谈剖析中会再说明一下。

太阳集团99138.com

3.KC868-H8装备初始化下令集:
发送:RELAY–SCAN_DEVICE–NOW
发送:RELAY-TEST-NOW
 
  那是作为智能掌握盒的初始化下令集,每一次装备上电或从新上电后,必需起首发送这两条下令去停止装备的初始化事情,详细下令的返回值,前面已讲。待“RELAY-TEST-NOW”那条下令发送后,有返回“RELAY-TEST-START
”字符串后,我们便能够停止自在天使唤掌握盒了。
 
4.零丁掌握某一路继电器的开取闭:
发送:RELAY-SET-x(1字节pack_num),x(1字节继电器序号),x(1字节行动0/1)
返回:RELAY-SET-x(1字节pack_num),x(1字节继电器序号),x(1字节行动0/1),OK/ERROR

  那条下令是我们正在第一期文章中所引见到的中心指令,也是最让人镇静的一条硬件版的Hello World指令,它能够掌握某一路继电器的翻开或封闭,指令异常简朴,通俗易懂。起首,第一个参数pack_num,我们曾经有前面讲到过,当掌握盒正在“TCP服务器”形式下,该参数曾经出有意义,好比:我们能够设置成数字“1”流动稳定。但您可能会问,既然没有用的参数,为何还要放正在指令中作为参数呢,那不是挺贫苦?呵呵,“包序号”的真正意义将会正在近程掌握形式中表现出来,只是我们的教程如今还没有讲到,我们将会正在前期的“近程掌握形式”教程中运用到它。和谈中的第3个字节参数——“行动0/1”的意义在于,“0”示意“封闭”;“1”示意“翻开”。我们举个例子来看一下,好比:我们要翻开第1路继电器,我们能够发送下令“RELAY-SET-1,1,1”,第1个参数“1”示意流动的包序号;第2个参数的“1”示意第1路继电器,第三个参数“1”示意“翻开”。若是我们要封闭第1路继电器,我们能够发送下令“RELAY-SET-1,1,0”,第1个参数“1”示意流动的包序号;第2个参数的“1”示意第1路继电器,第三个参数“0”示意“封闭”。若是我们要翻开第2路继电器,我们能够发送下令“RELAY-SET-1,2,1”,第1个参数“1”示意流动的包序号;第2个参数的“2”示意第2路继电器,第三个参数“1”示意“翻开”。看到这里,您应当觉得掌握继电器本来是那么轻易吧。略有点小成就感吧:)

智能家居通信协议

硬件控制电灯

5.零丁查询某一路继电器当前开关状况:
发送:RELAY-READ-x(1字节pack_num),x(1字节继电器序号)
返回:RELAY-READ-x(1字节pack_num),x(1字节继电器序号),x(1字节状况0/1),OK/ERROR
 
  当我们时不时掌握继电器的“翻开”、“封闭”、再“翻开”、再“封闭”........,等工夫暂了,我们能够曾经不晓得掌握盒上继电器当前的事情状况了,有时候我们正在做掌握之前,照样需求晓得他们确当前装备的,现在是“翻开”的,照样“封闭”的。这时候,我们便能够运用继电器的查询下令去停止查询了。好比:我们要查询第1路继电器如今是处于“翻开”照样“封闭”状况,我们能够发送:“RELAY-READ-1,1”,第1个参数“1”示意流动的包序号;第2个参数“1”示意需求查询的路数。此时,查询胜利后,掌握盒会返回“RELAY-READ-1,1,OK”,第2个参数“1”示意如今的状况为“翻开”状况,若是是“0”示意如今的状况为“封闭”状况。念查询第几路继电器,间接将路数参数变动便可。

智能家居二次开发

6.查询触发输入端状况:
发送:RELAY-GET_INPUT-x(1字节pack_num)
返回:RELAY-GET_INPUT-x(1字节pack_num),x(1字节状况),OK/ERROR
 
注:当掌握盒触发输入端被触发时,会自动上报一条下令,花样为:RELAY-ALARM-X,X代表被触发的路数。
 
  触发输入端是掌握盒用来接开关量传感器的输入端子,如图中掌握盒的一侧,由高位和低位组合成一组开关量输入端,他有多元化的现实运用体式格局,好比:您能够接办动开关,软件中能够界说好,当手动按下开关后,输出端的继电器会实行哪些行动;当有线开关量的传感器旌旗灯号接入时,软件中能够界说好,当传感器被触发时,输出端的继电器会实行哪些行动,那就是我们一般说的智能联动,也是智能家居中最普遍的运用要领之一。联动的自动化掌握历程中,第一步便需求我们去得到触发事宜的状况,即什么时候被触发,哪路传感器被触发。此时,我们能够运用触发输入端的查询下令发给掌握合,如:“RELAY-GET_INPUT-1”,查询胜利后,掌握盒会返回:“RELAY-GET_INPUT-1,255,OK”,第2个参数“255”即是8路触发端的状况字节。我们用8位二进制去示意8路输入端状况。用“0”示意“触发”,用“1”示意“已触发”。若是当前8路状况悉数是“已触发”的话,那么8路输入端的状况为 11111111,注重,那是二进制的8个“1”,然后我们将其转换为十进制数,为“255”。若是当前8路状况悉数是“触发”的话,那么8路输入端的状况为 00000000,注重,那是二进制的8个“0”,然后我们将其转换为十进制数,为“0”。若是当前8路状况是1-4路是“已触发”,5-8路为“触发”的话,那么8路输入端的状况为 00001111,注重,那是二进制的“00001111”,然后我们将其转换为十进制数,为“15”。正在顺序中,我们不需要络续的轮回去查询状况,能够应用触入端被触发器的自动上报下令停止合营而停止查询,当触发旌旗灯号发生时,客户端接收到“RELAY-ALARM-X”的指令串时,再发收一条“RELAY-GET_INPUT-x”停止查询。如下图所示,当我们用镊子手动短接第一起的输入端时,则掌握盒会自动上报字符串“RELAY-ALARM-1”到PC客户端,这时候,我们发送查询第1路输入端的下令后,返回字符串“RELAY-GET_INPUT-1,254,OK”,我们将数字十进制数“254”转换为二进制数为“11111110”,以是能够得知第1路输入端被触发。

智能家居调试

智能家居开辟

十进制数

澳门2017太阳集团

7.查询智能掌握盒序列号:
发送:RELAY-HOST-NOW
返回:HOST-CHKLIC-8a2af927888793c9a22280b8(返回掌握盒序列号)
 
  每台掌握盒装备皆有一个独一的标识符,类似于每个人的身份证号码一样,为了做好装备的保护和管理工作,也不破例,如发送:“RELAY-HOST-NOW”下令后,将返回“HOST-CHKLIC-8a2af927888793c9a22280b8”,个中最初一个“-”前面的一长串数字、字母的组合,即为装备的序列号,“8a2af927888793c9a22280b8”是装备的序列号,序列号将用于前期关于近程掌握的教程中运用。同时,那也是一条装备继电器的测试下令,若是发送此下令给掌握盒,掌握盒的第1-8路继电器会顺次翻开,然后第1-8路继电器再顺次封闭,作为一条简朴的继电器测试下令。

智能家居体系

8.一次掌握多路继电器的开取闭:
 
KC868-H8:
发送:RELAY-SET_ALL-x(1字节pack_num),D0
返回:RELAY-SET_ALL-x(1字节pack_num),D0,OK/ERROR
 
KC868-H32:
发送:RELAY-SET_ALL-x(1字节pack_num),D3,D2,D1,D0
返回:RELAY-SET_ALL-x(1字节pack_num),D3,D2,D1,D0,OK/ERROR
 
  之前所引见的通信协议中,我们曾经能够离别对每个继电器停止“翻开”和“封闭”的操纵了,这里,我们再引见一条多路继电器同时停止掌握的指令,他们是区分正在那里呢?前面我们所讲的掌握继电器都是针对某一个的,若是要掌握多个继电器开关,就是需求发送多条掌握下令,需求多少工夫去实行。这里,我们引见的指令,能够实现一次性掌握多路继电器开关,如“全开”、“齐闭”,大概某几路“翻开”,某几路“封闭”的操纵,只需求一条指令,多路掌握速度异常快。我们能够看到下令中,除“包序号”参数以外,只要一个字节的参数了,那一个字节便代表了8路继电器念停止掌握的状况设置,用“1”示意“翻开”,用“0”示意“封闭”,一样,也是用8位二进制去示意各路继电器的状况,再转成十进制数。如:我们要将8路继电器悉数翻开,则能够发送下令“RELAY-SET_ALL-1,255”,我们要将8路继电器悉数封闭,则能够发送下令“RELAY-SET_ALL-1,0”,若是要将1-4路继电器翻开,5-8路继电器封闭,那么参数是如许界说的,二进数示意:00001111,转换为十进制数为“15”,终究发送下令为“RELAY-SET_ALL-1,15”。正在和谈内容中,我们看到另有KC868-H32型号的掌握盒,即他有32路继电器能够让我们停止掌握,以是,他是用4个字节去示意一切继电器的状况的,1-8路继电器用D0字节示意;9-16路继电器用D1字节示意;17-24路继电器用D2字节示意;25-32路继电器用D3字节示意,每个字节的寄义和KC868-H8掌握盒的表达方式一样,只是将32路划分红4个字节,多了几个参数。

www.2003.com

9.一次读取多个继电器当前开关状况:
发送:RELAY-STATE-x(1字节pack_num)
返回:
KC868-H32:RELAY-STATE-x(1字节pack_num),D0,OK/ERROR
KC868-H8:RELAY-STATE-x(1字节pack_num),D3,D2,D1,D0,OK/ERROR
 
  一样的状况,前面我们曾经看了查询继电器状况的通信协议,那是按某一路停止查询的。我们也能够停止一次读取多个继电器状况的体式格局去停止查询。好比:发送“RELAY-STATE-1”,那么凭据掌握盒差别型号的状况,会有两种返回状况的字符串,若是掌握盒是KC868-H8的型号,那会返回“RELAY-STATE-1,255,OK”,“255”则示意掌握盒8路继电器确当前状况,将十进制数“255”转成二进制数为“11111111”,“1”示意“翻开”状况,前面我们曾经提到过,以是,那8路继电器确当前状况均为“翻开”。一样,若是获得的数转成二进制后,某一位是数字“0”的话,那么代表该路的继电器当闭的状况为“封闭”状况。

读继电器状况

  到行,我们曾经周全进修并把握了智能掌握盒的输出和输入资本的掌握取状况获得,是否是觉得一会儿有许多资本可以来运用了,不只能够掌握继电器开关,也能够停止一些传感器状况的获得,如许便能够施展本身的创意去实现一些准时、主动或具有AI人工智能方面的运用了。详细的功用是什么,怎样去实现,能够处理哪些生涯及东西运用场景的痛点题目,便看您的程序代码去怎样写了。我们对通信协议的本地化挪用,曾经给人人做了周全的引见,正在以后的连载教程中,我们借会为人人引见到怎样打破当地局域网内掌握的天文局限限定,真正实现Internet级的无间隔限定的近程掌握要领,信赖会激起人人充足猛烈的乐趣感。