工作原理
智能wifi开关是常见的wifi智能家居设备,通过连接wifi,可实现远程控制。
用手机远程控制电源开关的方法很多,按客户端有APP、H5、小程序等,但无外乎有两种连接方式:
通过HTTP接口,或与云平台建立socket连接,来实现控制。
对接的两种方式
方式 | 特点 | 说明 |
---|---|---|
HTTP接口 | 简单、易用(响应时间100-150ms) | 通过后端程序(可以是任何语言java/php/pyhon等), 请求云平台的控制接口,云平台负责向wifi电源开关下发打开/关闭指令 |
socket连接 | 开发代价稍大、及时性高(响应时间50-100ms) | 前端(H5/小程序)与云平台建立socket连接,云平台双向转发命令和消息 |
工作机制
硬件方案
电源有1|2|3路可选,分别可控制对应线路的电器或灯光。 另外,更加小巧灵活的WiFi通断器,也可作为WiFi开关使用,适用于各种DIY或加装到其他电器或设备中。
设备名称 | 说明 |
---|---|
| 链接 |
| 链接 |
| 链接 |
| 链接 通断器模块 电源模块 |
安装方法
WiFi电源开关为标准86型尺寸,可完美替换原来的普通开关,来实现智能化管理。
WiFi墙壁开关接线示意图
WiFi智能通断器接线示意图
远程控制命令
设备 | 命令 / 方法 | |
---|---|---|
WiFi开关 | 开关 | 开(接通) {"power":"1"} 关(断开) {"power":"0"} |
WiFi通断器 | 开关 | 开(接通) {"power":"1"} 关(断开) {"power":"0"} |
延时关 | 先接通,等待x毫秒,再断开 {"point":"毫秒"} | |
延时开 | 先断开,等待x毫秒,再接通 {"reset":"毫秒"} |
远程控制电源开关
以PHP语言为例,编程实现远程控制电源开关
<?php
$app = array(
'id' => 'app_id', //请在接口文档中查看自己的应用ID
'secret' => 'app_secret', //你设置的secret
);
$ts = time();
$sign = md5(md5($app['secret']) . $ts);
$api = 'http://iot-api.unisoft.cn/' . $app['id'];
$url = $api . "/device/control/?sign=$sign&ts=$ts";
$data = array(
'device' => '1110', //设备id,在控制台查看,或通过接口拉取,可一次传多台
'order' => array('power' => 1) //对于智能通断器,这条命令让通断器上打开(接通)
//'order' => array('power1' => 1, 'power2' => 1, 'power3' => 1) //对于智能三路开关器,这条命令让三个开关全部打开
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
//curl_setopt($ch, CURLOPT_TIMEOUT, 2);
$ret = curl_exec($ch);
echo date('Y-m-d H:i:s') . ' ' . $ret . "\n";
curl_close($ch);