扩展 SDK 方案

更新时间:2022-11-24 09:20:02下载pdf

本文介绍了涂鸦网关扩展 SDK 接入方案开发的大概流程。有关涂鸦网关方案的详细说明,请参考 涂鸦网关联网 SDK 接入方案

第一步:搭建开发环境

嵌入式开发环境搭建的方法较多,本文以较流行的 Linux 发行版 Ubuntu18.04_LTS 桌面操作系统为例说明开发常见的一些环境配置,并实现在 Ubuntu 虚拟机上运行一个有线网关设备。

  1. Ubuntu18.04_LTS桌面操作系统的安装,采用实体机或虚拟机的方式,虚拟机管理软件常见有VMwareVirtualBox,具体安装方法可参考 VMware 等官方网站文档。

  2. 安装常用依赖库及工具。

    $ sudo apt-get install lib32ncurses5 lib32z1 $ sudo apt-get install make-guile gcc g++ gawk vim git
  3. 安装了虚拟机软件后,网络连接请配置为 桥接模式

    扩展 SDK 方案

第二步:创建网关产品

您可以参考 选品类创建产品涂鸦 IoT 平台 上创建一个网关产品。本小节以开发一个有线 Zigbee 网关为例来说明您需要注意的事项。

说明:目前涂鸦 IoT 平台暂不对联网方式做区分,联网方式为有线也可通过上述方式创建网关产品。

扩展 SDK 方案

在添加功能时,涂鸦 IoT 平台展示的标准功能是基于涂鸦安防报警网关的。如果您开发的是普通网关,可以不用选择标准功能,只需要根据具体需求选择即可。

扩展 SDK 方案

硬件调试

在创建产品的 硬件开发 阶段,您需要选择网关的接入方案、选择云模组类型、下载嵌入式 SDK、以及获取设备激活码。

  • 接入方案:支持 网关 MCU 对接网关 SDK 对接,详情请参考 网关联网 SDK 接入方案

    其中,网关 SDK 对接 根据开发者联云芯片平台选择对应工具链和操作系统,生成 SDK 下载链接。无法选择所用的芯片平台时,请 提交工单 说明所需SDK类型、芯片型号、操作系统、上传工具链包,涂鸦运营人员处理上传 SDK。

    扩展 SDK 方案

  • 选择模组:您可以根据网关通讯协议选择多种型号云模组,具体规格可点击查看模组详情,按需选择下单采购。

    选择模组后,网关固件选择跟随模组类型,例如 Zigbee 模组的固件串口配置参数为 115200,8,N,1,RTS,CTS

  • 产品 PID:创建网关后,与其他产品一样,就会获得一个全局唯一的产品 ID(PID),是网关 SDK 中的PRODUCT_KEY 宏的值,为网关在产品维度的标识,创建产品成功后,由涂鸦 IoT 平台生成分配。

    扩展 SDK 方案

  • 激活码:创建网关后,您就获得了 10 个设备激活码,此激活码作为网关设备连接涂鸦云的凭证,是网关 SDK 中的 UUIDAUTHKEY 宏的值,每个设备唯一,供前期开发调试用。

SDK 运行演示

本小节根据您在创建产品时获取到的网关 SDK 演示如何在 Ubuntu 系统上使用该 SDK。

应用编译方法

如下为解压后得到的 SDK 产物包目录结构如下所示:

tuya_zigbee_gw_ext_sdk ├── build_app.sh # 编译脚本 ├── CHANGE_LOG.md # SDK 版本信息 ├── demos │ ├── demo_gw # Zigbee网关的示例程序 │ ├── demo_misc # Zigbee网关接入非Zigbee子设备的示例程序 │ └── demo_z3 # Zigbee网关接入Zigbee子设备的示例程序 ├── Makefile # 编译所有的Makefile └── sdk ├── include # SDK 的头文件 └── lib # SDK 的库文件
  1. 配置交叉编译工具链,修改 Makefile 文件,将交叉编译工具链的路径配置到 COMPILE_PREX 变量。在 Ubuntu 系统中,COMPILE_PREX 默认指向系统的 gcc 编译器,您不用修改 Makefile文件。

  2. 运行 sh build_app.sh demo_gw 编译产生的应用位于 output/demo_gw 目录下。

    tuya_zigbee_gw_ext_sdk$ sh build_app.sh demo_gw ...... compile done
  3. 设置动态库路径

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tuya_zigbee_gw_ext_sdk/sdk/lib

连接硬件

  1. 网关扩展 SDK 接入方案 的架构说明中可以看到,Ubuntu 系统需要通过 USB转串口工具 与涂鸦 Zigbee 模组相连,如下为TYZS4模组连接示意图,其他型号请参考对应模组规格文档。

    扩展 SDK 方案

    TYZS4 模组丝印 USB转串口工具引脚
    3.3V 3.3V
    GND GND
    UART_RTS CTS
    UART_CTS RTS
    UART_RX TX
    UART_TX RX
  2. 电脑一般默认连接到 Windows 主机上,可以在虚拟机管理软件 VMware 右下角图标上选择让其连接到 Ubuntu 虚拟机上。

  3. 查看对应串口设备标识符,如下这里为/dev/ttyUSB0,为普通用户可以访问,将用户添加到dialout用户组下。

    $ ls /dev/ttyUSB* -l $ sudo usermod -aG dialout user_name $ cat /etc/group |grep 'dialout'

    扩展 SDK 方案

编译运行 Demo 代码

  1. 修改 UUID/AUTHKEY/PRODUCT_KEY 三个宏定义。

    扩展 SDK 方案

  2. 获取设备网卡名称 & 串口设备标识符,修改如下代码

    扩展 SDK 方案

    扩展 SDK 方案

  3. 编译运行 Demo 代码。

    tuya_zigbee_gw_ext_sdk$ sh build_app.sh demo_gw ...... compile done tuya_zigbee_gw_ext_sdk$ ./output/demo_gw/user_iot [01-01 18:12:15 TUYA Info][kv_storge.c:43] Init Kvs With File:./ [01-01 18:12:15 TUYA Err][online_log_serv.c:280] log stats ufread fail. [01-01 18:12:15 TUYA Debug][gw_internal_api.c:273] BASE SDK INFO: < TUYA IoT SDK V:4.1.5 BS:30.05_PT:2.2_LAN:3.3_CAD:1.0.2_CD:1.0.0 > < BUILD AT:2020_03_06_10_25_02 BY luowl FOR zigbee_gw_ext_sdk_prj AT linux-ubuntu-6.2.0_64Bit > IoT DEFS < WIFI_GW:0 DEBUG:0 KV_FILE:1 SHUTDOWN_MODE:1 LITTLE_END:1 TLS_MODE:4 ENABLE_LOCAL_LINKAGE:1 ENABLE_CLOUD_OPERATION:1 ENABLE_SUBDEVICE:1 ENABLE_ENGINEER_TO_NORMAL:0 OPERATING_SYSTEM:100 ENABLE_SYS_RPC:0 TY_SECURITY_CHIP:0 RELIABLE_TRANSFER:1 ENABLE_LAN_ENCRYPTION:1 ENABLE_SIGMESH:0 > <TUYA GW SDK V:2.0.0 > GW SDK DEFS < WIFI_CONTROL_SUPPORT:0 > , GW SDK VERSION: 1.0.0 ......

配网添加设备

  1. 确保手机连接的 Wi-Fi 保持和 Ubuntu 虚拟机处于同一个局域网下,注册并登陆涂鸦智能APP后

  2. 在手机上下载涂鸦智能 App。

  3. 打开涂鸦智能 App,在右上角单击 + 添加设备,切换到 自动发现 界面开始搜索网关设备。

    扩展 SDK 方案
  4. 点击 下一步 开始网关设备配网添加。

功能调试

调试常用工具链接:

  • 日志查询:根据设备 ID 可查询相关设备后台日志数据。

  • 技术工单:提供在线化的支持服务。