天猫精灵通过AliOS网桥控制Zigbee设备

本文详细介绍了如何使用AliOS Things Studio和Link Kit SDK将ESP32设备连接到阿里云物联网平台,通过云智能App控制灯的开关,并与天猫精灵绑定实现语音控制。首先,讲解了安装开发环境、编译运行Linkkitapp的步骤。接着,介绍了如何在阿里云物联网平台创建设备,配置产品和设备信息。随后,定制linkkitapp的代码以处理设备控制。最后,实现了天猫精灵通过云对云方式控制Zigbee设备,包括生成Zigbee Coordinator,建立WiFi网桥,以及处理子设备的加入、离开和状态控制。
摘要由CSDN通过智能技术生成

天猫精灵对接AliOS 设备

The article is released under license CC BY-NC-ND 4.0

IoT Boot Camp系列课程是由TorchIoTBootCamp团队发起,广大IoT领域的爱好者共同参与的项目。旨在高效率、高质量地传播IoT领域的相关知识,以促进物与物,人与人,人与信息的连接。
点击这里,观看博主更多有趣视频教程
点击这里,学习更多知识

1. 介绍

IoT物联网变得越来越火热, 智能家居已经走入家庭. 智能设备,如灯, 开关, 空调, 温湿度传感器, 风扇, 扫地机器人都可以通过智能音箱来控制.
极大方便了我们日常的生活和智能家居控制管理. 针对IoT市场, Alibaba提供了完善的生态系统, 包括AliOS Things针对终端设备, 含有Link Kit SDK
来连接阿里云IoT物联网平台-智能生活开放平台. 同时允许天猫精灵无缝连接, 通过语音来控制智能设备.
在本文, 我们利用ESP32的平台来跑AliOS, 连接到阿里云IoT物联网平台, 通过阿里巴巴的云智能App来控制灯的开/关, 然后绑定天猫精灵,使得我
们能够通过语音来控制灯的开/关和了解灯的状态.

2. 安装AliOS Things Studio

阿里巴巴提供了详细的文档介绍如何安装开发环境, 下载AliOS Things的代码, 编译示例代码, 下载代码到目标板. ESP32 devkitc是AliOS Things
支持一款开发板. 详细介绍可以参看此网址 AliOS Things Studio.

3. Link Kit SDK介绍

Link Kit SDK是阿里云提供给设备厂商并通过该SDK将设备安全接入到阿里云IoT物联网平台, 从而设备可以被阿里云IoT平台控制, 同样可以被阿里
云的App, 或者天猫精灵控制. 详细介绍可以参看此网址设备接入Link Kit SDK
AliOS 已经包含Link Kit SDK, 我们可以直接生成示例代码.

4. 编译运行Linkkit的示例代码

打开Visual Studio Code, 点击下方工具栏红色方框中的编译选项, 输入linkkitapp选择示例代码按回车, 再输入esp32devkitc选择开发平台再回车.
点击编译按钮生成烧录文件, 再点击烧录. 在这里它会每次提示你选择串口, 如果觉得烦就直接修改\AliOS-Things\build\site_scons\upload\esp32.json,
将"@PORT@“修改成你的串口号比如"COM11”.
点击串口工具图标观察输出, 如果有看到设备反复重启, 应该是没有烧录正确, 可以通过ESP32原厂的烧录工具来验证.
对此过程有疑问的可以参考网址AliOS Things Studio

5. 在阿里云物联网平台建立设备

我们需要在阿里云物联网平台建立设备, 生成product key, device key等信息, 并把信息加入到Linkkit的示例代码中, 双方才可以建立连接.
阿里云IoT提供两个云服务平台:生活物联网平台物联网管理平台, 其中生活物联网平台, 提供设备端的SDK, 公版App, 开发门槛较低, 我们这里采用的就
是这个平台.
进入生活物联网平台

  • 首先创建产品, 我们选择灯的产品, 选项都默认, 这个灯只具有开关功能. 创建完后, 在右侧的基本信息中, 把Product Secret的值拷贝下来.
  • 设备调试, 选择认证模组/芯片里面没有ESP32, 我们选择最后一个品牌,型号不限. 在这里我们可以添加测试设备, 生成 Product Key,
    Device Name, DeviceSecret等信息用于调试.
  • 人机交互, 这一步可以下载公版App, 并可生成产品配网二维码, 用App扫描此二维码即可添加设备.
  • 产品发布, 在这一步可以发布产品, 购买激活码并分配给产品, 我们就可以在App里面找到我们自定义的产品.在这里点击量产管理, 选择量产记录,
    找到你已经发布的设备,点击查看, 在弹出窗口下载激活码, 在一个excel文件里包含了Product key, Device Name 和 Device Secret.

6. 定制linkkitapp的代码

a. app\example\linkkitapp\linkkit_example_solo.c

i. 用生活物联网平台得到的产品信息更新如下宏定义.

#define PRODUCT_KEY "a1X2bEnP82z"
#define PRODUCT_SECRET "7jluWm1zql7bt8qK"
#define DEVICE_NAME "test_06"
#define DEVICE_SECRET "wQ1xOzFH3kLdjCTLfi8Xbw4otRz0lHoq"

ii. 添加GPIO18初始化设置

gpio_dev_t led;
#define GPIO_LED_IO 18

void init_gpio(void)
{
   
  led.port = GPIO_LED_IO;
  led.config = OUTPUT_PUSH_PULL;
  hal_gpio_init(&led);
}

int linkkit_main(void *paras)
{
   
  /* Adding GPIO initialization at beginning of linkkit_main() */
  init_gpio();}

iii. 添加处理LED on/off的代码
在处理阿里云发送过来的JSON格式的命令处理函数添加对LightSwitch的处理

static int thing_prop_changed(const void *thing_id, const char *property,void *ctx)
{
   
    if (strstr(property, "HSVColor") != 0) {
   else if (strstr(property, "LightSwitch") != 0) {
   
    int sw_on = 0xFF;
    linkkit_get_value
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值