想要使用涂鸦云 IoT 平台,需要对设备进行授权,本文便是对使用涂鸦云常见的几种授权方式进行一个介绍。
对于嵌入式开发来说,在使用涂鸦云时常见的授权方式有两种,一种是使用上位机进行烧录授权,另一种则是使用 UUID 和 AuthKey 的方式进行授权。
在进行授权时,主要有下图中三种方式:生产凭证,授权码清单,生产凭证-仅授权。
生产凭证:要使用涂鸦提供的上位机进行烧录授权。
授权码清单:提供 UUID 和 AuthKey ,开发者通过代码的方式将提供的 UUID 和 AuthKey 写入到加密 flash 中(也就是本文要详细介绍的方式)。
生产凭证-仅授权:要使用涂鸦提供的上位机仅进行授权操作,不烧录固件。
在使用上述几种方式进行授权,其原理都是一样,都是将 UUID 和 AuthKey 写入到指定的 flash 中。只不过使用生产凭证进行授权时,是通过上位机将 UUID 和 AuthKey 写入到加密 flash 中。
通过使用授权码清单进行授权,就不用再通过使用使用上位机进行授权了,方便开发。
具体操作代码如下:
#include "tuya_iot_wifi_api.h"
#define UUID "tuyaxxxxxxxxxxxxa4c6"
#define AUTHKEY "GPwIxxxxxxxxxxxxxxxxxxxxxxxx1maj" // 这里的 UUID, Authkey 是无效的!!!
WF_GW_PROD_INFO_S prod_info = {UUID, AUTHKEY};
ws_db_init_mf();
op_ret = tuya_iot_set_wf_gw_prod_info(&prod_info);
if (OPRT_OK != op_ret) {
PR_ERR("tuya_iot_set_gw_prod_info err:%d", op_ret);
}
这里的是通过 tuya_iot_set_wf_gw_prod_info()
函数将 UUID 和 AuthKey 写入到加密 flash 中的。ws_db_init_mf()
是用来初始化加密 flash 的。
还有一点需要的注意的是,该函数的调用应该在 tuya_iot_wf_soc_dev_init()
函数之前,这是因为tuya_iot_wf_soc_dev_init()
执行之后设备就进入了配网模式,如果之前连过网那么设备就会直接去连接云。如果在此之后进行初始化的话,就有可能会出现设备连云的时候 UUID 和 AuthKey 还没写入。
还有最为重要的一点,一个 UUID 和 AuthKey 代表一台设备,不能多个设备同时使用一个 UUID 和 AuthKey 。如果多个设备同时使用一个 UUID 和 AuthKey 这样会导致设备频繁掉线的,这就有点类似于你使用多台手机同时登录一个 QQ 一样。
这里提供了一个简单的应用示例,基于 TuyaOS 3.3.0,也就是通过 VS code 中的 Wind IDE 插件下载的。
关于 TuyaOS 3.3.0,可以点击查看更多详情。