更新时间:2023-05-22 06:38:31下载pdf
涂鸦智能摄像机硬件 Wi-Fi 主要支持以下配网模式:
快连模式(Smart Config 模式)
热点模式(AP 模式)
二维码模式
二维码模式较为简单,建议使用二维码配网,如果设备扫描不了二维码,再尝试快连模式。
快连模式和热点模式这两种配网方式和涂鸦其他设备的配网方式一样,可以参考文档设备配网。
下面着重介绍一下智能摄像机特有的二维码配网模式。
二维码模式配网流程
类和协议
类名(协议名) | 说明 |
---|---|
TuyaSmartActivator | 设备配网相关功能封装 |
TuyaSmartActivatorDelegate | 设备配网结果回调代理 |
接口说明
配网 Token 获取接口
- (void)getTokenWithHomeId:(long long)homeId
success:(TYSuccessString)success
failure:(TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 设备将要绑定到的家庭的 id |
success | 成功回调,返回此次配网用的 Token |
failure | 失败回调,error 标示失败原因 |
接口说明
开始配网接口
- (void)startConfigWiFi:(TYActivatorMode)mode
ssid:(NSString *)ssid
password:(NSString *)password
token:(NSString *)token
timeout:(NSTimeInterval)timeout;
参数说明
参数 | 说明 |
---|---|
mode | 配网模式 |
ssid | 期望设备连接的 Wi-Fi 的 ssid |
password | 期望设备连接的 Wi-Fi 的密码 |
token | 配网 Token |
timeout | 超时时间 |
接口说明
停止配网接口
- (void)stopConfigWiFi;
接口说明
配网结果代理回调
- (void)activator:(TuyaSmartActivator *)activator didReceiveDevice:(TuyaSmartDeviceModel *)deviceModel error:(NSError *)error;
参数说明
参数 | 说明 |
---|---|
activator | 此次配网使用的 TuyaSmartActivator 对象 |
deviceModel | 配网成功时,返回此次配网的设备模型,失败时返回 nil |
error | 配网失败时,标示错误信息,成功时为 nil |
开始配网之前,SDK 需要在联网状态下从涂鸦云获取配网 Token,然后将 Wi-Fi 的 ssid 与密码一起生成二维码。Token 的有效期为 10 分钟,且配置成功后就会失效(再次配网需要重新获取)。设备配网需要依赖于家庭,设备必须绑定在某个家庭下,所以获取配网 Token 时,需要传入一个家庭的 id 作为参数,设备使用这个 Token 激活成功后,就会绑定在这个家庭的设备列表中。
ObjC
- (void)getToken {
[[TuyaSmartActivator sharedInstance] getTokenWithHomeId:homeId success:^(NSString *token) {
NSLog(@"getToken success: %@", token);
// TODO: startConfigWiFi
} failure:^(NSError *error) {
NSLog(@"getToken failure: %@", error.localizedDescription);
}];
}
Swift
func getToken() {
TuyaSmartActivator.sharedInstance()?.getTokenWithHomeId(homeId, success: { (token) in
print("getToken success: \(token)")
// TODO: startConfigWiFi
}, failure: { (error) in
if let e = error {
print("getToken failure: \(e)")
}
})
}
获取到配网 Token 后,还需要有期望设备连接的 Wi-Fi 的 ssid 和密码,通过下面的方式拼接成字符串,然后根据这个字符串生成一个二维码图片。
ObjC
NSDictionary *dictionary = @{
@"s": self.ssid,
@"p": self.pwd,
@"t": self.token
};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:nil];
self.wifiJsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
Swift
let dictionary = [
"s": self.ssid,
"p": self.pwd,
"t": self.token
]
let jsonData = JSONSerialization.data(withJSONObject: dictionary, options: JSONSerialization.WritingOptions.Element)
self.wifiJsonStr = String(data: jsonData, encoding: String.Encoding.utf8)
使用上面生成的 wifiJsonStr
生成二维码,确定设备处于配网状态,将二维码对准摄像头,设备捕捉到二维码信息后会发出提示音。此时通过以下接口开始监听配网结果。
ObjC
[[TuyaSmartActivator sharedInstance] startConfigWiFi:TYActivatorModeQRCode ssid:self.ssid password:self.pwd token:self.token timeout:100];
Swift
TuyaSmartActivator.sharedInstance()?.startConfigWiFi(TYActivatorModeQRCode, ssid: self.ssid, password: self.pwd, token: self.token, timeout: 100)
配网过程中,可使用下面的方法停止配网。
ObjC
[[TuyaSmartActivator sharedInstance] stopConfigWiFi];
Swift
TuyaSmartActivator.sharedInstance()?.stopConfigWiFi()
配网结果通过代理 TuyaSmartActivatorDelegate
回调,代理方法如下:
ObjC
// deviceModel 则为配网成功的设备的信息
- (void)activator:(TuyaSmartActivator *)activator didReceiveDevice:(TuyaSmartDeviceModel *)deviceModel error:(NSError *)error;
Swift
func activator(_ activator: TuyaSmartActivator!, didReceiveDevice deviceModel: TuyaSmartDeviceModel!, error: Error!)
涂鸦智能设备支持强、中、弱三种绑定模式,设备成功激活到对应账号的家庭中后,不同的绑定模式,解除绑定需要不同的校验方式。
由于 IPC 有音视频传输,涉及到的隐私比较多,默认是强绑定模式,且不可以切换成其他模式,如果接入方有强烈需求,且评估过修改成其他模式的影响,可向涂鸦开发者平台提交工单处理。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈