如何用Go语言实现远程控制8路控制器/断路器

如何用Go语言实现远程控制8路控制器/断路器呢?

本文描述了使用Go语言调用HTTP接口,实现远程控制8路控制器/断路器,支持8路输出,均可独立控制,可接入各种电器。

可选用产品:可根据实际场景需求,选择对应的规格
序号 设备名称 厂商
1 智能控制器8路|直流电压版 友友物联
2 智能控制器8路|交流电压版

下面以每款产品为例,用Go语言编程实现远程控制8路控制器/断路器:

1. 智能控制器8路|直流电压版

提供8路直流输出,可接电磁锁、电插锁等;
广泛应用于自动保管柜,售货柜等场景;
同时提供8路开关量输出,可外接轻触开关;
8路分控,均可通过HTTP接口远程独立控制通断;
支持远程定时任务,支持自定义联动操作;

更多...


使用Go语言调用HTTP接口控制智能控制器8路|直流电压版的代码
以设备控制(向设备下发命令)为例

全部接口文档复制

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "net/url"
    "strings"
)

func main() {
    body, err := request()
    if err != nil {
      fmt.Println(err)
      return
    }
    fmt.Println(string(body))
}

func request() ([]byte, error) {
    uri := "https://api.yoyoiot.cn/{AppID}/device/control/?sign={sign}&ts={ts}"

    payload := url.Values{}
	payload.Set("device", "设备ID")
	payload.Set("order", "命令")

/*
device[字符串]:设备唯一ID,可传多个,可在控制台可查看,也可通过接口拉取;
order[json字符串]:命令,取值参考:
1. 线路1 - 可用值[1(通),0(断)]
   示例[断], order为:{"power1":"0"}
2. 线路2 - 可用值[1(通),0(断)]
   示例[断], order为:{"power2":"0"}
3. 线路3 - 可用值[1(通),0(断)]
   示例[断], order为:{"power3":"0"}
4. 线路4 - 可用值[1(通),0(断)]
   示例[断], order为:{"power4":"0"}
5. 线路5 - 可用值[1(通),0(断)]
   示例[断], order为:{"power5":"0"}
6. 线路6 - 可用值[1(通),0(断)]
   示例[断], order为:{"power6":"0"}
7. 线路7 - 可用值[1(通),0(断)]
   示例[断], order为:{"power7":"0"}
8. 线路8 - 可用值[1(通),0(断)]
   示例[断], order为:{"power8":"0"}
9. 批量控制 - 可用值[{"power":1}(全开),{"power":0}(全关),{"relay":[1,3,5,7],"power":1}(线路1|3|5|7开),{"relay":[1,3,5,7],"power":0}(线路1|3|5|7关),{"relay":[2,4,6,8],"power":1}(线路2|4|6|8开),{"relay":[2,4,6,8],"power":0}(线路2|4|6|8关)]
   示例[线路1|3|5|7关], order为:{"batch":{"relay":[1,3,5,7],"power":0}}
10. 先通后断 - 自定义
    示例[1秒,线路1|3|5|7], order为:{"point":{"relay":[1,3,5,7],"interval":1000}}
11. 先断后通 - 自定义
    示例[1秒,线路1|3|5|7], order为:{"reset":{"relay":[1,3,5,7],"interval":1000}}
*/

    req, _ := http.NewRequest("POST", uri, strings.NewReader(payload.Encode()))

    req.Header.Add("X-APISpace-Token","")
    req.Header.Add("Content-Type","")

    res, err := http.DefaultClient.Do(req)
    if err != nil {
      return nil, err
    }
    defer res.Body.Close()
    return ioutil.ReadAll(res.Body)
}

说明:{AppID}为您的应用ID(由平台生成),免费注册登录后,可在控制台查看;sign和ts的取值,请参考文档

2. 智能控制器8路|交流电压版

提供8路交流10A输出,可接照明、电器等;
广泛应用于共享自习室、共享设备改造等场景;
同时提供8路开关量信号输入,可外接轻触开关;
8路分控,均可通过HTTP接口远程独立控制通断;
支持远程定时任务,支持自定义联动操作;

更多...


使用Go语言调用HTTP接口控制智能控制器8路|交流电压版的代码
以设备控制(向设备下发命令)为例

全部接口文档复制

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "net/url"
    "strings"
)

func main() {
    body, err := request()
    if err != nil {
      fmt.Println(err)
      return
    }
    fmt.Println(string(body))
}

func request() ([]byte, error) {
    uri := "https://api.yoyoiot.cn/{AppID}/device/control/?sign={sign}&ts={ts}"

    payload := url.Values{}
	payload.Set("device", "设备ID")
	payload.Set("order", "命令")

/*
device[字符串]:设备唯一ID,可传多个,可在控制台可查看,也可通过接口拉取;
order[json字符串]:命令,取值参考:
1. 线路1 - 可用值[1(通),0(断)]
   示例[断], order为:{"power1":"0"}
2. 线路2 - 可用值[1(通),0(断)]
   示例[断], order为:{"power2":"0"}
3. 线路3 - 可用值[1(通),0(断)]
   示例[断], order为:{"power3":"0"}
4. 线路4 - 可用值[1(通),0(断)]
   示例[断], order为:{"power4":"0"}
5. 线路5 - 可用值[1(通),0(断)]
   示例[断], order为:{"power5":"0"}
6. 线路6 - 可用值[1(通),0(断)]
   示例[断], order为:{"power6":"0"}
7. 线路7 - 可用值[1(通),0(断)]
   示例[断], order为:{"power7":"0"}
8. 线路8 - 可用值[1(通),0(断)]
   示例[断], order为:{"power8":"0"}
9. 批量控制 - 可用值[{"power":1}(全开),{"power":0}(全关),{"relay":[1,3,5,7],"power":1}(线路1|3|5|7开),{"relay":[1,3,5,7],"power":0}(线路1|3|5|7关),{"relay":[2,4,6,8],"power":1}(线路2|4|6|8开),{"relay":[2,4,6,8],"power":0}(线路2|4|6|8关)]
   示例[线路1|3|5|7关], order为:{"batch":{"relay":[1,3,5,7],"power":0}}
10. 先通后断 - 可用值[{"interval":500}(500毫秒,全部线路),{"relay":[1,3,5,7],"interval":1000}(1秒,线路1|3|5|7),{"relay":[2,4,6,8],"interval":2000}(2秒,线路2|4|6|8)]
    示例[1秒,线路1|3|5|7], order为:{"point":{"relay":[1,3,5,7],"interval":1000}}
11. 先断后通 - 可用值[{"interval":500}(500毫秒,全部线路),{"relay":[1,3,5,7],"interval":1000}(1秒,线路1|3|5|7),{"relay":[2,4,6,8],"interval":2000}(2秒,线路2|4|6|8)]
    示例[1秒,线路1|3|5|7], order为:{"reset":{"relay":[1,3,5,7],"interval":1000}}
*/

    req, _ := http.NewRequest("POST", uri, strings.NewReader(payload.Encode()))

    req.Header.Add("X-APISpace-Token","")
    req.Header.Add("Content-Type","")

    res, err := http.DefaultClient.Do(req)
    if err != nil {
      return nil, err
    }
    defer res.Body.Close()
    return ioutil.ReadAll(res.Body)
}

说明:{AppID}为您的应用ID(由平台生成),免费注册登录后,可在控制台查看;sign和ts的取值,请参考文档

产品参数对比

产品 / 版本

参数

智能控制器8路|直流电压版

智能控制器8路|交流电压版
内置天线
外置天线
内置天线
外置天线
外壳材质
塑料
塑料
塑料
塑料
产品尺寸
宽:125mm;长:90mm;厚:40mm
宽:125mm;长:90mm;厚:40mm
宽:125mm;长:90mm;厚:40mm
宽:125mm;长:90mm;厚:40mm
产品净重
258g
258g
258g
258g
产品颜色
浅灰色
浅灰色
浅灰色
浅灰色
控制路数
8路
8路
8路
8路
工作电压
AC 85-265V(交流 / 市电)
AC 85-265V(交流 / 市电)
AC 85-265V(交流 / 市电)
AC 85-265V(交流 / 市电)
额定电流
MAX 10A / gang(路)
MAX 10A / gang(路)
MAX 10A / gang(路)
MAX 10A / gang(路)
负载功率
MAX 1000W / gang(单路),总负载不得超过2500W
MAX 1000W / gang(单路),总负载不得超过2500W
MAX 4400W[阻性负载] / 700W[感性负载] 单独每路输出负载最大不超过2200W[阻性负载] / 350W[感性负载] 全接通时的总负载不得超过4400W[阻性负载] / 700W[感性负载]
MAX 4400W[阻性负载] / 700W[感性负载] 单独每路输出负载最大不超过2200W[阻性负载] / 350W[感性负载] 全接通时的总负载不得超过4400W[阻性负载] / 700W[感性负载]
待机功耗
0.4(全断) - 1(全通 / 无负载)W
0.4(全断) - 1(全通 / 无负载)W
0.4(全断) - 1(全通 / 无负载)W
0.4(全断) - 1(全通 / 无负载)W
无线连接
WiFi IEEE 802.11 b / g / n 2.4GHz
WiFi IEEE 802.11 b / g / n 2.4GHz
WiFi IEEE 802.11 b / g / n 2.4GHz
WiFi IEEE 802.11 b / g / n 2.4GHz
产品外壳
防火V0级PC,耐高温,符合安规标准
防火V0级PC,耐高温,符合安规标准
防火V0级PC,耐高温,符合安规标准
防火V0级PC,耐高温,符合安规标准
包装清单
智能控制器*1
智能控制器*1
智能控制器*1
智能控制器*1

产品尺寸与走线

1. 智能控制器8路|直流电压版接线示意图

走线示意


* 接线前请确保断路器上的电源已关闭

2. 智能控制器8路|交流电压版接线示意图

走线示意


* 接线前请确保断路器上的电源已关闭