硬件开发

开发方式

开发方式:接入云端的接入方式,即设备接入云端时固件的开发方式。涂鸦IoT平台不仅提供的 零代码免开发 的新概念,也提供 MCU SDKTuyaOS等接入方式。

开发方式 主要特点
零代码免开发 涂鸦提供可配置的固件,无需进行固件开发,即可接入云端。
MCU SDK 只需在 MCU 侧通过少量代码进行协议适配,专注开发设备自身功能,无需关心复杂云端协议。
TuyaOS 使用生态已适配的芯片或模组,基于 TuyaOS 自己开发固件。

前提条件

在涂鸦IoT平台上创建一个智能产品,具体的开发方式我写在后面智能产品创建部分了。

通用开发流程

创建好智能产品后,在 硬件开发 界面,确认 已选云端接入方式 的类型。
image.pngimage.png

根据是否需要自己开发固件,主要分为 零代码免开发自定义固件开发

零代码实现流程

以下步骤介绍如何基于免开发方案进行硬件开发配置。目前tuya只提供了电工类目(插座、开关)与照明产品(灯)的免开发方案。(总的来说,零代码实现的一个智能产品的产品功能相对较少,要是想要实现额外的功能,必须要使用自定义方案,也就是使用MCU SDK 或Tuya OS)
1. 前往 涂鸦 IoT 开发平台创建产品 页面。
2. 选择 零代码实现 接入方式。并根据您的需求选择通讯协议、功能属性等选项。
image.png
3. 在 选择云端接入硬件 区域,根据产品需求任意选择一款硬件。 此处展示的硬件,均可以满足开发需求。
image.png
4. 在硬件下方的 生成固件 处,可以配置固件功能,单击 在线生成固件,会自动为已选择硬件生成固件。(配置固件 时,平台将显示硬件 I/O 口的对应图。请认真查看固件配置信息,并根据实际需求修改并做好保存。所有模组将按照固件配置信息进行烧录,模组寄出后不能更改。若您在模组寄送后更改,会造成产品的不一致,且旧款产品无法在线升级。不同产品的 I/O 配置信息不同,请按照不同版本填充信息。)
image.png
image.png
5. 在已选硬件下方的 开发调试 处,依次查看参考电路原理图、下载云测 App 和完成设备 测试。 (这里他流程有问题,要使用云测APP和完成设备测试必须要购买他的硬件)

自定义方案流程

基于 MCU SDK、TuyaOS 开发固件接入云端,都属于自定义方案,即自定义固件开发。
1. 选择 接入方式,MCU SDK、TuyaOS 任意一种,各种开发方式的不同参考开发方式
2. 在 选择云端接入硬件 区域,根据您的产品需求任意选择一款硬件。 此处展示的硬件,均可以满足您的开发需求,优先推荐选择排序靠前的硬件
3.(可选)选择硬件后,您可以单击 硬件详情 查看硬件信息。如果您觉得不适合,可以更换 硬件。
4. 选择硬件后,会自动为您生成固件或者 SDK。
5. 在已选硬件下方的下载资料处,下载需要的调试文件、SDK、开发工具等。
6.(可选)在已选硬件右侧操作列中,选择立即采购在线下单,用于硬件调试。此模组已经记录您上述对于产品配置的具体信息,下单后即可用于产品调试。

智能产品创建

操作步骤

第一步:选择产品类别

image.png
基本上所有的硬件产品都可以创建为一个智能产品。

第二步:选择开发方式

涂鸦提供了 零代码实现自定义方案 两种开发方式。

  • 零代码实现:该方案下,只需创建产品并选购相关通信模组,即可完成智能产品开发。零代码实现 方案仅适用于部分品类产品,例如插座产品、照明产品等,大部分功能较复杂的产品目前看来都无法使用 零代码实现

  • 自定义方案:该方案下,您需要自行实现产品应用逻辑,使用 MCU SDK 或者 TuyaOS 实现设备和云端的连接和管理,属于更灵活的开发方式。

    第三步:完善产品基本信息

    这一步就没什么可说了,基本上就是填产品名称,产品型号之类的,唯一需要注意的就是需要选择一种合适的通信方式:
    image.png

    第四步: 功能定义与选择

    涂鸦IoT的产品

    产品是一系列具有同样配置和属性的智能设备的集合。在 涂鸦 IoT 平台 创建了一个产品后,平台赋予该产品一个 PID(Product ID),用来表示产品的注册标识。

    产品功能

    描述了该产品能够干什么,以及云端如何 “指挥” 设备。物联网设备存在于物理空间中,产品功能 则是设备在云端的数字化表示,用来规范化表达设备发送给云端的遥测数据。

    应用场景

    以一个灯带为例,用户通过控制端设置了灯带的某个瞬间状态,云端或者边缘网关需要将用户的设置一一对应地去执行。此时,就需要明确产品的功能,通过改变功能的值来控制设备。
    image.png
    一般地,解决方案构建者或者智能硬件生产者需要为设备设计好 产品功能,然后以固件地形式将功能实现到设备应用程序中。而物联网移动应用(我的简单理解是手机APP)和云应用则使用对应的开发语言编写 设备检测和控制代码,让终端用户能够使用设备所有的 产品功能

    功能分类

    涂鸦 产品功能 分为如下几类:

类型 介绍
标准功能 标准功能是某一产品支持的常用功能,又称为标准 dpcode。由于各个产品属性的差异,每个产品的标准功能也会有所不同。
自定义功能 如果设计的设备功能不在标准功能中时,可以自定义功能。
高级功能 例如云定时、网页跳转等不适用常见的功能表达格式的功能,称为高级功能。(简单来说就是这些功能不能用简单的值来表达功能的状态:tuya的一个思想就是用数字化的方法来表示功能

表达格式

涂鸦 IoT 平台定义了以下字段,用来数字化表达产品功能:

属性 说明 示例(以灯带彩光模式为例)
DP ID 全称为 Data Point ID,缩写为 DPID。DP 是产品功能在设备应用程序中的简称,则 DP ID 是产品功能的简单编码,一般为整数型,例如 1、2、101。设备与云端的功能数据通过 DP ID 进行传输。 24
功能名称 产品功能的名称,可以用中文、英文、日语、法语等语言表示,仅用做平台展示。 彩光模式
标识符 功能的字符串表示,又称为产品 dpcode,用于有多语言能力的应用程序中,例如移动应用。支持字母、数字和下划线,以字母开头。 color_mode
数据传输类型 定义了数据交互的方向。分为以下几种:
- 可下发可上报:指令数据可以发送给设备,设备数据可以传输给云端。
- 只上报:数据只支持从设备传输给云端。
- 只下发:数据只支持从云端发送给设备。
可下发可上报
数据类型 定义了产品功能的取值的数据类型。分为以下几种:
- 布尔型(bool):非真即假的二值型变量。例如开关功能的开或者关。
- 数值型(value):可线性调节类型的数据。例如温度调节,温度范围 20-40℃。
- 枚举型(enum):自定义的有限集合值。例如低档、中档、高档的取暖器。
- 故障型(fault):用于上报和统计故障的功能点,支持多故障,数据只上报。例如温度传感器故障、电机故障和高温故障等。
- 字符串型(string):以字符串形式传输的产品功能。
- 透传型(raw):以二进制形式透传的产品功能。
字符型(String)
功能属性 进一步明确 数值型 产品功能的数值取值范围、数值间距和单位。 -
备注

示例

这是官方给出的一个示例,开发一个电压力锅:

构思产品功能
功能分类 产品功能 数据类型 传输方式 功能描述
控制功能 烹饪时间 数值型 上报/下发 设置设备的工作时长,0-6000,单位为分钟
设置开关 布尔型 上报/下发 设备开关按钮
启动/取消 布尔型 上报/下发 设备启动/取消按钮
烹饪模式 枚举型 上报/下发 设置设备烹饪的模式,例如:
- beans(豆类)
- cake(蛋糕)
- meat(肉类)
- rice(米饭)
- steam(慢炖)
- boil(蒸煮)
- soup(汤)
预约功能 数值型 上报/下发 设置时间,1-1440,单位为分钟
保温时间 数值型 上报/下发 设置时间,30-1440,单位为分钟
设备状态 设备状态 枚举型 仅上报 例如提供四个状态:
- 待机中
- 烹饪中
- 关闭中
- 已关闭
故障告警 故障型 仅上报 展示设备故障告警信息

创建产品功能

tuya调研 - 图10
可以看到,自定义功能其实本质上和标准功能是一种设计逻辑,设计自定义功能时需要将这个功能数字化。

后续的开发

当解决方案构建者或者智能硬件生产者已经完成产品功能的设计和添加,或者产品已经完成所有的配置,对应的应用程序开发者就可以开始根据涂鸦提供的开发者产品使用产品功能。

应用程序类型 涂鸦提供的公版产品 涂鸦提供的开发方式
设备固件 零代码开发 TuyaOS 开发、MCU SDK
移动端应用 公版 App IoT App SDK
云应用 暂无 云开发
边缘应用 暂无 边缘计算