本系列课程将介绍如何使用 涂鸦蓝牙模组及其 SDK 进行产品开发,帮助开发者更快掌握 涂鸦蓝牙模组涂鸦蓝牙 SDK涂鸦 IoT 平台涂鸦三明治开发套件涂鸦云模组烧录授权平台 等开发工具的使用方法,以实现将产品接入涂鸦云,完成产品智能化。您可以通过本节课快速了解涂鸦蓝牙模组及其 SDK 的部署情况、开发流程、术语名词以及获得技术支持的渠道。

一. 蓝牙模组

蓝牙云模组是涂鸦提供的支持蓝牙 LE 协议、多种尺寸规格、多种工作温度、多种焊接方式的一系列超高性价比自研模组。模组广泛应用于各种蓝牙 LE 产品,您可根据自身的产品需求选择,详细信息请参考 云模组。

1.1 模组分类

分类 模组名称 说明
BP 系列 BPLCB、BP3L、BPU Phyplus 平台蓝牙标准协议模组
BT 系列 BT2L-A、BT3L、BT5S、BT7L、BT8P、BTU … Telink 平台蓝牙标准协议模组
BN 系列 TYBN1 Nordic 平台蓝牙标准协议模组
BR 系列 BR3L Realtek 平台蓝牙标准协议模组
TYBT 系列 TYBT1、TYBT2、TYBT3、TYBT4、TYBT8 … Telink 平台蓝牙涂鸦私有协议模组
BK 系列 YLB1 Beken 平台蓝牙标准协议模组

命名规则

云模组通用命名规则为:(TY) + 通讯类型 + 芯片平台 + 系列 + 性能。(部分模组只会用到部分字段)

例:BTU 对应 B(BLE) + T(Telink) + U(U系列/U形结构);TYBN1 对应 TY(涂鸦) + B(BLE) + N(Nordic) + 1(1系列)。

1.2 硬件设计

您可以参考 BLE 模组 目录下的模组规格书来进行硬件设计。除电气参数等信息外,您需要合理分配引脚来实现产品各项功能,模组规格书中已经给出了各引脚的类型和复用功能,您也可以通过芯片官网资料了解更多信息,但需要注意模组引脚与 IC 引脚的对应关系。

二. 蓝牙 SDK

涂鸦蓝牙 SDK(BLE SDK)是基于 TuyaOS 系统裁剪得到的,适用于蓝牙协议产品开发的 SDK。SDK 将设备配网、上下行数据通信、产测授权、固件 OTA 升级等接口进行封装,并提供相关函数。您无需关心各蓝牙芯片平台的这些功能的具体实现方式,只需要按照 SDK 提供的标准 API 进行适配,即可实现接入涂鸦 IoT 平台,完成设备智能化。

2.1 SDK 分类

分类 适用芯片 说明
蓝牙 SDK 第三方芯片 抽象硬件层,跨芯片平台,根据芯片平台的编译链工具和编译选项生成 lib 库,您需要将 lib 库集成到自己芯片 SDK 内,先进行硬件适配,才能开发应用代码。
蓝牙芯片 SDK 涂鸦标准芯片 针对特定芯片平台进行适配的 SDK。您可以搭配对应芯片平台的云模组使用,直接开发应用代码。

为进一步降低开发难度,涂鸦针对部分主流蓝牙芯片平台进行了适配,并提供适配后专用于此芯片平台的联网模组,因此 涂鸦蓝牙芯片 SDK 也可称为 涂鸦蓝牙模组 SDK。您只需选用特定类型的 SDK,再搭配涂鸦标准芯片的模组,可直接进行应用代码开发,更快完成设备智能化。目前涂鸦蓝牙芯片 SDK 支持的平台有:

厂商 芯片平台
Nordic nRF52832
Cypress PSoC63
博通集成 BK3431Q
博通集成 BK3632
富芮坤 FR8018H
奉加微 PHY6222
泰凌微 TLSR8253

更多关于 标准芯片第三方芯片 的 SDK 支持情况,请参考 硬件支持。

2.2 SDK 架构

层级 说明
Application 基于 涂鸦蓝牙 SDK(Tuya BLE SDK)构建的应用程序。
Message or CallBack SDK 通过 Message 或者设备 App 注册的 CallBack 函数向设备 App 发送数据(状态、数据等)。
Main Process Function 为 SDK 的主引擎,设备应用程序(Application)需要一直调用。如果芯片平台(Platform)基于 OS,SDK 会基于 Port 层提供的 OS 相关 API 自动创建一个任务用于执行 Main Process Function。如果是非 OS 平台,需要设备应用程序循环调用。
Tuya BLE SDK API SDK 提供相关 API 用于设备实现蓝牙相关的管理、通信等。如果使用 OS,API 的调用将采用基于消息的异步机制,API 的执行结果将会以 Message 或者 CallBack 的方式通知给设备的 Application。如果是非 OS,API 的返回值即为执行结果。
SDK Config SDK 可裁剪可配置,通过 config 文件中的宏定义操作,例如配置 SDK 适用于多协议设备的通用配网模式,蓝牙单点设备、基于 ECDH 秘钥协商加密模式、是否使用 OS 等。
Tuya BLE SDK SDK 封装了涂鸦蓝牙通信协议,提供构建涂鸦蓝牙应用所需的服务接口。
Port 蓝牙 SDK 所需要的接口抽象,需要用户根据具体的芯片平台移植实现。
Platform 所使用的芯片平台,芯片和协议栈由芯片公司维护。

三. 开发流程

涂鸦蓝牙模组 SDK 开发的基本流程如下:

  1. 产品创建:在 涂鸦 IoT 平台 上创建产品,需注册涂鸦 IoT 开发者账号;
  2. 环境搭建:获取 SDK、软件安装包等,搭建开发必备的软/硬件环境;
  3. 烧录授权:在涂鸦蓝牙模组 SDK 基础上进行必要的配置后,将生成的初版固件烧录至模组并对其进行授权,使设备能接入涂鸦云;
  4. 应用开发:在涂鸦 SDK 提供的相关 API 基础上,完成应用代码的开发;
  5. 功能调试:通过查看设备现象、本地设备日志、云端日志等手段完成功能调试,请参考 调试说明;
  6. 生产测试:批量生产的产品需在生产阶段对设备的联网和控制能力进行测试,简称 产测,请参考 生产测试 和 蓝牙 SDK 产测;
  7. 固件升级:产品发布后,可以将需要升级的固件上传至涂鸦 IoT 平台,完成设备 OTA 升级。

具体操作方法将在后续课程中进行介绍。

四. 名词解释

下表为涂鸦蓝牙模组 SDK 开发中常用的术语名词,建议您在学习本课程前先掌握它们的含义。

名词 解释
PID 产品 ID (Product ID),是开发者在涂鸦 IoT 平台所创建产品的唯一编号。PID 关联了产品具体的功能、App 控制面板、出货信息等所有跟这个产品相关的信息。如果把产品比喻为人,那么 PID 则是产品的身份证。
UUID 通用唯一标识符 (Universally Unique Identifier),是设备唯一的识别码,也是设备接入涂鸦云的授权凭证,长度是 16 位。
Device ID 设备 ID,有时也称设备虚拟 ID,是设备配网激活时,根据 UUID 在云端随机生成的设备凭证。
Authkey 物联网平台为设备颁发的设备密钥,和 UUID 一一匹配,长度是 32 位。
Mac 地址 MAC 地址一般采用 6 字节(48 比特),48 比特都有其规定的意义,前 24 位是由生产网卡的厂商向 IEEE 申请的厂商地址,后 24 位由厂商自行分配,这样的分配使得世界上任意一个拥有 48 位 MAC 地址的网卡都有唯一的标识。所以要求客供 MAC 的客户要有自己购买的 MAC 地址块。
DP 数据点 (Data point),有时也称 DP 点,指的是智能产品具备的功能点。
固件 Key 固件上传涂鸦 IoT 平台后生成的唯一编码代号,蓝牙固件默认为 8 字节。
授权码 有时也称为激活码、Token,设备授权后才能接入涂鸦云。授权码清单形式的授权码包括 UUID、Authkey 和 Mac 地址,生产凭证形式的授权码与 固件 key、固件名称、固件版本强绑定。
原厂 即芯片厂家,常出现于描述芯片平台的官方资料时。
蓝牙绑定 指蓝牙设备通过 涂鸦蓝牙通讯协议 与 APP 经过一系列密钥交换、鉴权建立起的一种设备与 APP 账号的绑定关系,以及表示设备在云端的绑定状态。
蓝牙解绑 指蓝牙设备解除与 APP 账号的绑定关系,进入未绑定未连接状态,设备存储的相关密钥、绑定状态等信息也会被清除。
蓝牙连接 仅表示蓝牙设备链路层的状态为连接状态。
蓝牙广播 仅表示蓝牙设备链路层的状态为广播状态。

更多有关涂鸦 IoT 平台使用的术语名词请参考 名词解释。

五. 技术支持

5.1 开发工具

涂鸦累积成千上万次产品智能化经验,分析了常见的 IoT 产品功能,基于 Arduino 规范打造了稳定成熟的 三明治开发套件,以帮助开发者快速入门 IoT 产品开发、缩短产品研发周期。通过涂鸦三明治开发套件,您可以非常方便地以类似“三明治”层层叠加的方式组合成一个完整的 IoT 产品原型。

涂鸦三明治开发套件根据不同的功能可以划分为 主控板通信板功能板电源板,您可以通过 三明治开发套件 了解更多信息。目前已支持的 BLE SoC 主控板有 涂鸦三明治 BLE SoC 主控板 (BT3L)涂鸦三明治 BLE SoC 主控板 (BTU)

本课程将以涂鸦三明治开发套件的 BLE SoC 主控板 (BTU)温湿度传感功能板普通电池电源板 为例,介绍如何使用涂鸦蓝牙模组及其 SDK 进行产品开发。

5.2 开源 Demo

涂鸦 Demo 中心 提供了很多基于 涂鸦蓝牙模组及其 SDK 开发的智能硬件产品开源 Demo,您也可以在 三明治开发社区 找到相关教程。您可以根据下表列出的 Demo 信息查找您想要了解的资料。

Demo 模组 芯片平台 SDK 获取
智能颈部按摩仪 [教程] [仓库] BTU TLSR825x Github 仓库
智能烧水壶 [教程] [仓库] BTU TLSR825x Github 仓库
智能窗帘机器人 [教程] [仓库] BTU TLSR825x Github 仓库
智能调味勺子 [教程] [仓库] BT3L TLSR825x Github 仓库
智能呼啦圈 [教程] [仓库] BTU TLSR825x Github 仓库
智能药盒 [教程] [仓库] TYBN1 nRF52832 在涂鸦 IoT 平台获取
智能魔法棒 [教程] [仓库] TYBN1 nRF52832 在涂鸦 IoT 平台获取
智能除味器 [教程] [仓库] TYBN1 nRF52832 在涂鸦 IoT 平台获取

注:涂鸦蓝牙模组 SDK 已进行版本升级,上表 Github 仓库链接到的 tuya_ble_sdk_Demo_Project_tlsr8253 为旧版 SDK,技术文档请参考 BLE SDK 说明 和 BLE SDK Demo 说明。建议在 涂鸦 IoT 平台 创建产品并选择 云端接入硬件 (选择一款 BLE 模组) 后,下载对应芯片平台的 最新版 SDK 用于您的产品开发。

另外,涂鸦开发者社区 为开发者提供了丰富的传感驱动和通用功能组件,帮助开发者更快实现产品功能。

5.3 相关链接

您可以通过以下链接获得更多的技术支持:

  • 涂鸦开发者平台
  • 文档中心
    • TuyaOS - 蓝牙设备接入
    • 云模组 - BLE 模组
    • 烧录授权 - BLE 模组
  • 帮助中心
  • 技术与支持

上一篇:
下一篇: 第 2 课:产品创建

涂鸦蓝牙SDK开发系列教程——1.快速入门相关推荐

  1. 涂鸦Zigbee SDK开发系列教程——3.快速入门

    在涂鸦 IoT 平台上创建产品完成且搭建好开发环境后就可以进行应用开发了.本章节将会通过对提供的 demo 进行简单修改,带你快速体验如何通过编写涂鸦模组固件实现对产品的智能化开发. demo 功能介 ...

  2. 涂鸦蓝牙SDK开发系列教程——6.固件升级

    涂鸦 IoT 平台提供 固件 OTA 升级 功能,以满足客户在产品发布后,仍可对已出货设备进行固件版本升级的需求,本节课将介绍不同开发方式下固件 OTA 升级的方法.涂鸦方案的 OTA 流程与交互协议 ...

  3. 涂鸦蓝牙SDK开发系列教程——5.应用开发

    在前几节课中已经介绍了如何在 涂鸦 IoT 平台 上创建智能产品以及如何搭建涂鸦蓝牙模组的开发环境,在此基础上,本节课将继续以 BTU 模组为例,介绍如何使用 涂鸦蓝牙模组及其 SDK 开发一款温湿度 ...

  4. 涂鸦蓝牙SDK开发系列教程——2.产品创建

    要使用涂鸦蓝牙模组开发一款智能产品,首先要在 涂鸦 IoT 平台 上创建对应的产品.如果还没有涂鸦开发者账号,可以点此 链接 进行注册,企业用户可参考 企业认证流程 完成企业认证. 接下来以 使用 B ...

  5. 涂鸦蓝牙SDK开发系列教程——3.环境搭建

    本节课主要介绍在应用开发前如何搭建开发环境,包括 SDK 获取.IDE 安装.烧录工具.调试工具等,同样以 BTU 模组为例,演示开发必备环境的准备过程. 一. SDK 获取 获取涂鸦蓝牙芯片 SDK ...

  6. 涂鸦 Wi-Fi SDK开发系列教程——3. 快速上手

    本系列课程面向有嵌入式开发经验的同学,用来介绍如何在涂鸦的Wi-Fi系列模组和Wi-Fi&Bluetooth LE系列模组上进行二次开发. 上篇回顾:Wi-Fi模组二次开发--SoC开发环境搭 ...

  7. 涂鸦蓝牙SDK开发系列教程——8.Board API 说明

    Board 层 API 是涂鸦抽象各芯片硬件外设,封装的一层标准接口.您可以调用这些 API 来使用相应外设,快速实现产品功能,也可以根据需要直接调用原厂外设接口. Board 层功能模块列表如下: ...

  8. 涂鸦 Wi-Fi SDK开发系列教程——5.对模组二次开发

    上期精彩回顾:Wi-Fi模组二次开发课程--4.烧录授权 本章节旨在通过一个简单Demo,使开发者能够了解涂鸦SDK的启动流程,带领开发者基于涂鸦提供的SDK对模组进行二次开发. Demo功能介绍:硬 ...

  9. 涂鸦Zigbee SDK开发系列教程——2.环境搭建

    本章节主要介绍如何搭建涂鸦 Zigbee ZSU 模组 SDK 开发环境. IAR安装 前往 IAR 官网下载 IAR Embedded Workbench IDE(IAR for Arm),下载安装 ...

最新文章

  1. 你是否对它有一种责任感
  2. [导入][转]好企业是什么样?
  3. python常用命令大全-Python常用命令之集合
  4. Silverlight4.0(9) 之 分页控件轻量级的Session
  5. 第二篇:Mysql---约束条件、修改表的结构、键值
  6. java 冒泡_java实现冒泡排序
  7. 映世便携音箱我对你一见钟情啦~
  8. 伪装目标检测(Camouflage Object Detection)常用数据集
  9. H.264简单码流分析
  10. pythonvi自动缩进_Vim如何配置Python的缩进?
  11. weak和assign的区别
  12. Java学习不走弯路教程(16 用Ajava异步请求)
  13. layui扩展第三方模块_Layui集成第三方插件nicescroll
  14. java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息...
  15. 用Java开发手机Andriod系统Apk软件
  16. Android 调用免费短信验证码sdk开发
  17. Linux的一些常用操作命令
  18. 考研英语大纲单词E~O与常用短语
  19. 【SDOI2009】【BZOJ1227】虔诚的墓主人
  20. Linux学习134 Unit 5

热门文章

  1. 【Python】assert函数(含源代码)
  2. 线下精准营销会是新零售“大爆炸”的引爆点吗?...
  3. unity深入研究--开发之C#使用Socket与HTTP连接服务器传输数据包
  4. 27岁,月入7位数:找到自己“天赋”的技术人,到底有多赚?
  5. UCloud 2016年最后一秒+1示意图
  6. facebook提高外包时薪,碾压BAT员工!
  7. 从 LGBTQ 小网站到粉红经济全球第一股,这家公司花了 20 年
  8. python列表高级操作_python强势来袭-0019-列表循环高级操作
  9. IPv6即将来临,IPv6的信息安全?
  10. pytorch安装和opencv安装