解决方案
Product
Services
开发者
工厂客户
Register
Login
首页
文章
详情
怎样用Go语言控制灯光
2026-04-30 发布
浏览:749 次
本文介绍了如何用
Go
对接 智能灯座 的方法: 可以通过接口实现。
智能灯座
更多...
支持命令
线路
power
先通后断
point
先断后通
reset
产品手册
版本
对应产品手册
HTTP接口控制
以设备控制(向设备下发命令)为例
Go语言
// First you need to prepare the following values // 1. AppID (in your console development settings) // 2. AppSecret (in your console development settings) // 3. ts (timestamp of the current time, seconds) // 4. YourSign = md5(md5(AppSecret)ts);(md5 is an encryption method, AppSecret is the AppSecret prepared above, ts is the timestamp prepared above, concatenate the string after the AppSecret after md5 encryption) // In simple terms, the signature is md5(md5(your developer password)concatenate the above ts timestamp value); ts is the timestamp of the current timestamp; that is, to perform one MD5 on the developer password (AppSecret), then concatenate the timestamp, and then perform one MD5 on the entire concatenated string // Core request address: api.thingboot.com/AppID/device/control/?sign=YourSign&&ts=ts; // Request needs to pass two parameters device and order: // device[string]: unique device ID, can pass multiple [separated by ,], can be viewed in the console, or pulled through the interface // order[json string]: the command to be issued, for example: // {"power":1}, usually to connect the circuit of the switch // {"power3":0}, usually to close the third line of the switch or controller // {"play:gbk:16":"hello, welcome to visit"}, let the voice speaker report the specified content // The same type of product, the command is the same, different product types of commands, please view the product manual page of each product // Note: you must replace the formal AppID and AppSecret with real-time timestamp calculation of the signature, the request must have device device ID and order command package main import ( "bytes" "crypto/md5" "encoding/hex" "encoding/json" "fmt" "io" "net/http" "net/url" "time" ) func calculateMD5(s string) string { h := md5.New() h.Write([]byte(s)) return hex.EncodeToString(h.Sum(nil)) } func main() { AppID := "开发者ID" // 替换为实际的 AppID AppSecret := "开发者密码" // 替换为实际的 AppSecret ts := time.Now().Unix() // 获取当前时间戳(秒) // 计算签名 md5(md5(开发者密码)拼接上面的ts参数) sign := calculateMD5(calculateMD5(AppSecret) + fmt.Sprintf("%d", ts)) // 构建 URL baseURL := fmt.Sprintf("https://api.thingboot.com/%s/device/control/", AppID) params := url.Values{} params.Add("sign", sign) params.Add("ts", fmt.Sprintf("%d", ts)) // 构建请求体数据 device := "1878" // 替换为实际的设备ID;可传多个[用,间隔] order := map[string]interface{}{"power1": 1} // 替换为实际的命令 requestBody := map[string]interface{}{ "device": device, "order": order, } jsonBody, err := json.Marshal(requestBody) if err != nil { fmt.Println("Error marshaling JSON:", err) return } // 创建请求 req, err := http.NewRequest("POST", baseURL+"?"+params.Encode(), bytes.NewBuffer(jsonBody)) if err != nil { fmt.Println("Error creating request:", err) return } req.Header.Set("Content-Type", "application/json") // 发送请求 client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println("Error sending request:", err) return } defer resp.Body.Close() // 读取响应 body, err := io.ReadAll(resp.Body) if err != nil { fmt.Println("Error reading response:", err) return } fmt.Println("Response Status Code:", resp.StatusCode) fmt.Println("Response Body:", string(body)) }
文章:
怎样用Go语言控制灯光
相关技术文章:
怎么用Go语言对接智能语音壁挂音箱5W
查看
如何用Go语言对接门禁系统控制开关
查看
怎样用Go语言对接语音控制空调伴侣2
查看
如何用Go语言控制智能86型语音喇叭
查看
怎么用Go语言控制吸顶式智能感应控制器
查看