想快速的运用Tuya IPC SDK开发出属于自己的智能硬件产品吗? 这个向导以能够通过APP拉流为指导,了解Tuya OS SDK的基本原理,并且利用Tuya IPC SDK快速进行开发。

了解Tuya ipc sdk架构以及基础能力。

如何通过APP来控制设备。

名词

释义

配网

建立设备端、手机 App、云端之间的通信链路

PID/Productkey

即产品 ID(Product ID),用来标示某一类产品,同一种类型的 IPC 设备共享同一个产品 ID。PID 关联了产品具有的功能点

UUID

即通用唯一识别码(Universally Unique Identifier),由一台机器上生成的数字,保证所有机器都具有唯一性

AUTHKEY

设备的授权值,在 涂鸦 IoT 平台 上已注册能够使用云服务的服务码

P2P ID

点对点服务ID,3.0.0版本以上SDK不需要填写P2P ID,云端自动进行分配

Token

二维码配网过程中,由云服务器生成的标识码,10min有效期

DP

Date Point 设备与服务器数据交互的功能点

Chromecast

谷歌电视棒或谷歌Home Hub 实时视频传输服务

Echo Show

亚马逊音响实时视频传输服务

OTA

设备在线升级功能

TKL

驱动层代码 向下封装原厂提供的驱动和系统,不包含业务逻辑,只是面向芯片内部驱动

TAL

抽象层代码 向下封装TKL接口,向上提供统一接口

├── adapter                             TKL适配层
│   ├── adc
│   ├── bluetooth
│   ├── cellular_catx
│   ├── display
│   ├── flash
│   ├── gpio
│   ├── hci
│   ├── i2c
│   ├── init
│   ├── media
│   ├── nb
│   ├── network
│   ├── pm
│   ├── pwm
│   ├── rtc
│   ├── spi
│   ├── storage
│   ├── system
│   ├── timer
│   ├── uart
│   ├── utilities
│   ├── watchdog
│   ├── wifi
│   ├── wired
│   └── zigbee
├── apps       
│   └── tuyaos_demo_ipc              tuyaos demo工程代码
├── build                 
│   └── tuya_iot.config              IPC SDK功能配置,外部修改无效
├── build_app.sh                     编译脚本
├── CHANGELOG.md
├── docs               
├── include                           头文件
    ├── base                          基础头文件
    └── components                    功能组件中的头文件
		├── base_img_proc             图像类处理 
		├── base_media                流媒体类的头文件
		├── base_security             安全加密类接口
		├── lib_cJSON                 JSON接口
		├── mid_rtp                   rtp封包类接口 
		├── svc_api_ipc               ipc对外提供接口,使用过程重点关注
		├── svc_cloud_storage         ipc云存储相关接口
		├── svc_ipc_core              ipc基础组件
		├── svc_local_storage	      ipc本地存储相关接口
		├── svc_ptz                   ipc摇头机功能相关接口
		├── svc_ring_buffer           ipc ringbuffer
		├── svc_rpc                   rpc用于接口测试,业务不需要对接
		├── svc_rtsp_server           rtsp推流服务
		├── svc_streaming_gateway     推流网关接口
		├── svc_streaming_p2p         p2p拉流接口
		├── svc_video_msg             视频留言接口               
		├── svc_wired                 wired抽象接口
		├── tal_compatible            适配层抽象接口
		├── tal_driver                驱动抽象接口
		├── tal_network               网络抽象接口
		├── tal_system                系统抽象接口
		├── tal_system_service        系统服务抽象
		├── tal_wifi                  wifi抽象
		└── tal_wired                 wire抽象
├── libs							  ipc sdk库文件
│   ├── libtuyaos.a
│   └── libtuyaos.a.stripped
├── LICENSE
├── README.md
└── tools

linux操作系统

要做完整个工作,我们需要完成以下几个步骤:

  1. 运行原理
  2. 修改代码
  3. 编译代码
  4. 运行代码
  5. 观看效果

让我们愉快的开始吧。

在开始开发前,需要了解 SDK 的初始化流程。流程示意图如

首先需要进行SDK服务注册,注册操作通过SDK配网模块建立,服务通道建立成功,用户可以将设备的音视频信息按照格式要求送入SDK开辟的缓存中,至此用户无需关心后续的操作。可通过APP端进行操控设备。基于原始的的音视频数据,SDK结合手机端APP可以实现设备的存储功能、点对点传输服务以及其他的第三方接入功能(例如:EchoShow和ChromeCast接入功能)。

./build_app.sh apps/tuyaos_demo_ipc tuyaos_demo_ipc 1.0.0

编译后产物在apps/tuyaos_demo_ipc/output/tuyaos_demo_ipc_1.0.0/下

为启动sdk的基本业务,需要填写sdk所需要的基本参数,基本参数见tuya_device_cfg.json文件,如果不填写启动会存在问题。

{
	"pid":"PID",		//PID 信息
	"uuid": "UUID",		//UUID 信息
	"authkey": "AUTHKEY", //Authkey信息
	"storage": "./",	  //本地存储路径
	"media_path": "./",   //模拟的流媒体数据
	"sd_path": "/tmp/",   //sd卡路径
	"upgrade_file": "/tmp/upgrade.file", //模拟升级文件
	"app_version": "1.2.3"	//固件版本
}
  1. 使用手机下载安装涂鸦智能 App,打开 App,点击添加设备。4139670f5aedc2d3b31b212cf25e75a3
  2. 选择安防监控品类–智能摄像机(Wi-Fi)。f9de278c24157f1a4158f9622958d6fe
  3. 勾选"确认指示灯在快闪或听到提示音" 然后点击下一步。7347debdea436afc286a0f8d154a1f33
  4. 输入Wi-Fi名称和密码。:::info 此处连接的 Wi-Fi 要为2.4GHz。 :::7a7233ad27d51df35bebe9e7a429934b
  5. 生成和识别二维码。将二维码进行截屏,打开微信,使用"扫一扫"功能的扫码选项进行二维码图片的识别。:::info 此处不要点击"听到提示音按钮" ,在第11步时进行点击。 :::f8bf4dffa71da1eb0d82fc11c421e31e
  6. 将获取到的数据中的token提取出来。获取到的数据:{"p":"test","s":"test","t":"AYYBJt2OGvY2w1"}:::info "t"后的参数即为Token,有效期:10分钟,10分钟后token失效,需要按照上述流程重新获取。 :::
cd apps/tuyaos_demo_ipc
./output/tuyaos_demo_ipc_1.0.0/tuyaos_demo_ipc -m 2 -t "xxx" -p "xxx" -u "xxx" -a "xxx" -r "xxx"

参数说明

参数类型

参数意义

m

配网模式的选择[1,2] 1为AP配网 2为debug配网

t

授权码token参数

p

运行pid

u

运行的设备uuid

a

运行的设备authkey信息

r

运行过程中使用的resource资源路径

点击添加成功的设备即可成功的获取到视频流,如果没有视频显示,则表示之前的demo_resource文件没有设置正确,请检查-r参数是否设置正确。

2196909521aaca5c0e3c7c6a18c33082.jpg

在终端中输入下列指令可以模拟体验IPC功能:

指令

指令说明

start

模拟移动侦测事件触发

stop

模拟停止移动侦测事件

status

获取设备激活状态

bell

模拟门铃事件上报

例如虚拟设备执行过程中,执行:

#start

可以在消息中心产看得到一条移动侦测的上报。

图片18.jpg

通过上述步骤可以快速体验 IPC SDK功能。

在使用过程中,如果遇到问题,可以访问涂鸦开发者平台,按照自己遇到的问题分类,寻找合适的解决方法。

SDK对接前置问题及处理

常见编译问题及处理

配网问题

dp问题

音视频问题

本地存储问题

云存储问题

OTA问题