Skip to content

Latest commit

 

History

History
executable file
·
164 lines (106 loc) · 7.36 KB

File metadata and controls

executable file
·
164 lines (106 loc) · 7.36 KB

Tuya IoTOS Embeded Demo BLE TS02N Key Drive

English | 中文


简介

本 demo 基于涂鸦智能云平台、涂鸦智能APP、IoTOS Embeded Ble SDK,使用涂鸦BLE系列模组和TS02N触摸芯片快速实现一个触摸按键驱动。该demo提供了接口,使用者可以自行设定按键输入引脚和按键触发函数,最后使用按键注册函数注册即可使用;按键按下后按键提示灯会亮起,按键松开后提示灯关闭,触发按键回调函数会将按下的按键信息更新到手机app上。


快速上手

开发环境搭建


编译烧录

  • 代码修改

    1. tuya_ble_app_demo.h 填入在涂鸦 IoT 工作台创建的智能产品 PID。

       #define APP_PRODUCT_ID     "xxxxxxxx"
      

      将其中 xxxxxxxx 替换为PID。

    2. tuya_ble_app_demo.c 填入申请的授权码(uuid 和 auth key)。

       static const char auth_key_test[] = "yyyyyyyy";
       static const char device_id_test[] = "zzzzzzzz";
      

      其中 yyyyyyyy 替换为 auth key, zzzzzzzz 替换为 uuid.

  • 编译运行Demo代码

    修改好后编译代码,并下载固件至硬件运行(根据所选的芯片型号有可能还需要下载 stack 和 bootloader),观察 log 日志 ,并用第三方蓝牙调试 App(例如 IOS 下的 lightBlue)扫描确认设备有没有正常广播。


文件介绍

├── src         /* 源文件目录 */
|    ├── sdk
|    |    └── tuya_uart_common_handler.c        /* UART通用对接实现代码 */
|    ├── driver
|    |    ├── tuya_app_driver_ts02n_key.c       /* 按键驱动相关 */
|    |    └── tuya_app_driver_led.c             /* 指示灯驱动相关 */
|    ├── tuya_ble_app_demo.c                    /* 应用层入口文件 */
|    └── tuya_app_ts02n_key.c                   /* TS02N按键应用代码 */
|
└── include     /* 头文件目录 */
     ├── sdk
     |    ├── custom_app_uart_common_handler.h  /* UART通用对接实现代码 */
     |    ├── custom_app_product_test.h         /* 自定义产测项目相关实现 */
     |    └── custom_tuya_ble_config.h          /* 应用配置文件 */
     ├── driver
     |    ├── tuya_app_driver_ts02n_key.h       /* 按键驱动相关 */
     |    └── tuya_app_driver_led.h             /* 指示灯驱动相关 */
     ├── tuya_ble_app_demo.h                    /* 应用层入口文件 */
     └── tuya_app_ts02n_key.h                   /* TS02N按键应用代码 */

应用入口

入口文件:/tuya_ble_app/tuya_ble_app_demo.c

  • void tuya_ble_app_init(void) 对Tuya IoTOS Embeded Ble SDK 进行一些必要的初始化,该函数只执行一次。
  • void app_exe() 该函数用来执行用户应用代码,该函数循环执行

DP点相关

函数名 tuya_ble_dp_data_report
函数原型 tuya_ble_status_t tuya_ble_dp_data_report(uint8_t *p_data,uint32_t len);
功能概述 上报dp点数据。
参数 p_data [in] : dp点数据。len[in] : 数据长度,最大不能超过TUYA_BLE_REPORT_MAX_DP_DATA_LEN
返回值 TUYA_BLE_SUCCESS :发送成功;
TUYA_BLE_ERR_INVALID_PARAM:参数无效;
TUYA_BLE_ERR_INVALID_STATE:当前状态不支持发送,例如蓝牙断开;
TUYA_BLE_ERR_NO_MEM:内存申请失败;
TUYA_BLE_ERR_INVALID_LENGTH:数据长度错误;
TUYA_BLE_ERR_NO_EVENT:其他错误。
备注 Application通过调用该函数上报 DP 点数据到手机app。

参数说明:

涂鸦云平台是以 dp 点的方式管理数据,任何设备产生的数据都需要抽象为 dp 点的形式,一个完整的dp点数据由四部分组成(具体参考 IoT 工作台上的相关介绍):

  • Dp_id: 1个字节,在开发平台注册的 dp_id 序号。

  • Dp_type:1 个字节,dp点类型。

#define DT_RAW 0 raw类型;

#define DT_BOOL 1 布尔类型;

#define DT_VALUE 2 数值类型;(其范围在iot平台注册时指定)

#define DT_STRING 3 字符串类型;

#define DT_ENUM 4 枚举类型;

#define DT_BITMAP 5 位映射类型;

  • Dp_len:1 个字节或者两个字节,目前蓝牙仅支持一个字节,即单个 dp 点数据最长 255 个字节。

  • Dp_data:数据,dp_len 个字节。

该 dp 点上报函数的参数 p_data 指向的数据必须以下表格式组装上报:

Dp点1的数据 ~ Dp点n的数据
1 2 3 4 ~ n n+1 n+2 n+3
Dp_id Dp_type Dp_len Dp_data ~ Dp_id Dp_type Dp_len Dp_data

调用该函数时,参数 len 的最大长度为 TUYA_BLE_REPORT_MAX_DP_DATA_LEN(当前为255+3)。


I/O 列表

key1_pin key2_pin led1_pin led2_pin
P8 P7 P26 P24

相关文档


技术支持

您可以通过以下方法获得涂鸦的支持: