首页 > 办事核心 > 澳门新濠天地讲堂 >

使用http和谈编程近程节制KC868-H8节制盒

2019-01-10 14:57
分享到:
经由阅读第一期和第二期的文章,咱们曾经进修了KC868-H8智能节制盒的通信和谈,同时,也在局域网模式中,能够对节制盒进行了继电器的开、关操作。之前,咱们也有提到过,一些关于近程节制时,所用到的指令参数区别,本日咱们将为节制盒插上近程节制的同党,让你能够大概在任何有收集环境的环境下,能够矫捷操控节制盒,完成继电器开关的节制,以及输入情况的读取。

  起首,咱们来看一下通信道理,咱们之前是在局域网内来节制节制盒,咱们把节制盒的收集参数设置成“TCP办事器”模式,从字面理解,节制盒作为办事器使用,客户端经由点对点的编制来和节制盒建立连接,并进行数据交互的通信。但由于咱们接入公网时的IP地址被ISP所分派到的都是动态的,所以,没法子长时间让通信两边能够建立长久的连接(除非你分派给节制盒的连接公网的IP地址是固定的),因而,咱们经由云办事器的架设,让节制盒和客户端之间能够大概架起一道桥梁,进行近程的数据交互通信。客户端经由收集和云办事器相连;节制盒硬件设备也经由收集和云办事器相连,因而,节制盒和客户端相互都能够经由云办事器完成相互之间的数据通信了。

  接上去,咱们就来看一下,当节制盒处于近程节制模式时,它的一些收集参数以及通信和谈指令,会有哪些区别。

  起首,咱们将节制盒的收集参数中的“工作模式”进行编削,设置成“UDP模式”,同时,将“方针IP或域名”这栏设置成咱们的云办事器地址“sdk.www.agpgames.com”,“方针端口”为“5555”,节制盒的“IP模式”建议能够设置成“动态获取”,即由路由器DHCP动态分派IP地址,前提是路由器上要开启“DHCP动态分派IP”的办事,一般路由器默认都是开启的。
智能家居收集拔擢

  设置完成收集参数后,节制盒上电,就会主动连接到云办事器上,连接成功后,网口灯会变成“绿色”。

智能家居通信

  然后,咱们就能够使用号令来进行相关的节制了。咱们举个最简单的例子,咱们经由收集傍观器发送http号令串来打开第一路继电器开关。起首,咱们看一下经由近程编制发送http号令串的号令布局。.
 
  接口地址:http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action
 
  接口参数:
deviceCode - KC868-H8/KC868-H32智能节制盒序列号
command - 要传送的通信和谈号令
 
  示例:
  HTTP 请求:
  http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-SET-1,1,1
  云办事器前去:
  {
    "message":"Command: RELAY-SET-1,1,1 was sent to device:
    56a890e6888793c97ed33f17 successfully.",
    "result":"RELAY-SET-1,1,1,OK\u0000",
    "status":"0"
  }
 
deviceCode为智能节制盒的序列号,外壳上会有粘二维码和序列号,若是找不到序列号,也能够使用读取序列号的通信和谈来获得。
Command 后面跟的和谈号令便是咱们之前所讲的节制盒通信和谈,包罗节制继电器开关,查问继电器情况以及读取输入端情况的和谈内容。

  留意:当咱们在进行http和谈近程节制节制盒的时候,之前咱们引见的节制盒通信和谈中,凡是有“包序号”的字节参数,在每次发号令是,参数进行自增赋值,范畴为1--255。如第一条号令发送的参数为1,第二条为2,第三条为3,以此类推,刚参数为255时,下一个参数为1起头,继续进行自增。

  下面是咱们在收集傍观器中输入号令串,施行后的现实成果,能够看到傍观器的无数据前去,同时,节制盒第1路所接的灯泡被点亮。

http和谈

§

  咱们例举几条常用的通信和谈号令,如:
 
1.零丁节制某一路继电器的开与关:
发送: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
 
近程节制号令串为:
http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-SET-1,1,1  暗示近程节制打开第1路继电器,留意:包序号为1
http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-SET-2,1,0  暗示近程节制封闭第1路继电器,留意:包序号为2,进行了自增
 
2.零丁查问某一路继电器当前开关情况:
发送:RELAY-READ-x(1字节pack_num),x(1字节继电器序号)
前去:RELAY-READ-x(1字节pack_num),x(1字节继电器序号),x(1字节情况0/1),OK/ERROR
 
近程节制号令串为:
http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-READ-3,1  暗示近程查问第1路继电器情况,留意:包序号为3
 
3.查问触发输入端情况:
发送:RELAY-GET_INPUT-x(1字节pack_num)
前去:RELAY-GET_INPUT-x(1字节pack_num),x(1字节情况),OK/ERROR
 
近程节制号令串为:
http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-GET_INPUT-4  暗示近程查问触发输入端情况,留意:包序号为4
 
4.一次节制多路继电器的开与关:
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
 
近程节制号令串为:
http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-SET_ALL-5,255  暗示近程节制8路继电器全数为“打开”,留意:包序号为5
 
5.一次读取多个继电器当前开关情况:
发送: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
 
近程节制号令串为:
http://sdk.www.agpgames.com:8080/smarthome.IMCPlatform/device/v1.0/sendCommand.action?deviceCode=56a890e6888793c97ed33f17&command=RELAY-STATE-5  暗示近程查问8路继电器的当前情况,留意:包序号为5
 
后面咱们曾经看了查问继电器情况的通信和谈,那是按某一路进行查问的。咱们也能够进行一次读取多个继电器情况的编制来进行查问。比如:发送“RELAY-STATE-1”,那么按照节制盒不合型号的环境,会有两种前去情况的字符串,若是节制盒是KC868-H8的型号,那会前去“RELAY-STATE-1,255,OK”,“255”则暗示节制盒8路继电器的当前情况,将十进制数“255”转成二进制数为“11111111”,“1”暗示“打开”情况,后面咱们曾经提到过,所以,这8路继电器的当前情况均为“打开”。同样,若是获得的数转成二进制后,某一位是数字“0”的话,那么代表该路的继电器当关的情况为“封闭”情况。

到止,咱们曾经全面进修并控制了智能节制盒的近程节制及查问情况的方式,经由写法式能够对异地的设备完成近程节制,在此后的连载教程中,咱们会为大师引见一下若是经由输入端获取情况从而完成智能化联动节制的实例,这也是智能家居今朝比力常见的使用,也是人工智能的底子功能。