资讯详情

【嵌入式物联网实战项目】涂鸦幻彩灯带SDK商用项目

最近刷视频的时候偶然刷了一个很有意思的视频,是涂鸦智能发布的智能幻灯带控制方案。

https://www.bilibili.com/video/BV1vr4y1q7Sn?spm_id_from=333.999.0.0

作为一名Tuya Developer(自己拿Title,哈哈哈),经过一番了解,得知原来的涂鸦IoT产品生态里面,早已经推出幻彩灯带的零代码免开发方案,可以直接使用涂鸦提供的CBU模块,涂鸦IoT直接在平台上创建产品,快速实施方案。

我以前也做过APP采用控制灯带的方案ESP32-WIFI接收手机的模块APP发出的指令是5路灯带PWM通过一定的调光算法控制和调节冷暖色温RGB-HSV颜色调节。

与之前的方案不同,涂鸦的幻灯带方案与灯珠相似WS2812B这类带控制IC像素点灯珠,这种灯珠可以单独控制,不像以前的整路控制RGB灯带。

视频中有趣的是,用户可以通过涂抹来确定灯带特定段落的颜色,并设置灯带跟随音乐节奏,呈现出不同的氛围效果。

作为一名热爱学习的工程师,我认为涂鸦是直接使用的IoT平台提供的免开发方案,有很大的局限性,就是很多灯带的场景都是涂鸦设定好的,第三方用户或者方案商想进行一些个性化的定制,就会显得无从下手,很不灵活。

为了玩这个计划,我联系了涂鸦的官方工作人员,问这个计划是否独立SDK为开发者提供幻灯带自定义方案的开发,好家伙,没想到官方回复是,是的!

于是我立即向涂鸦官方工作人员申请了幻灯带SDK开发白名单,向官方申请两份CBU核心板(BK7231N-Nano)作为灯带的主控制器,BK7231N是一款WiFi-BLE可用于二次开发的双模通信芯片

据了解,涂鸦提供的幻彩灯带SDK,整个SDK基于涂鸦自身开发的操作系统软件框架TuyaOS调度TuyaOS提供了大量的参考文件,所以,整个SDK上手并不难。

BK7231N是深圳博芯科技提供的WiFi-BLE双模芯片,性价比高,能满足要求WiFi在通信的同时,我们也可以简单地控制一些硬件产品。我们将开发幻灯带SDK,直接使用BK7231控制,不需要插件MCU进行控制。

关于如何建造BK7231N而且在BK7231N上面运行TuyaOS,官方给出了非常详细的涂鸦Step by Step博客链接,文档,如下所示。https://blog.csdn.net/sandwich_iot/category_11289915.htmlhttps://blog.csdn.net/sandwich_iot/category_11289915.html

基本上可以按照文档的步骤来构建BK7231N在平台上快速创建产品,授权和烧录模块,然后基于产品SDK二次开发。

值得注意的是,涂鸦为了保证接入平台设备的合法性,保护数据的安全,所有接入IoT平台的硬件模块应进行授权操作。上述博客链接将详细说明具体的授权步骤和方法。(未经授权的设备无法访问涂鸦IoT后台的)

这个灯带SDK,是使用TuyaOS作为基础任务调度,在这个系统的基础上,添加了彩色灯带的控制能力,这个SDK许多与控制兼容IC像素灯珠,如WS2812,YX1903,SK6812,等等。并且SDK已经适配了这些灯珠的驱动程序,开发者只需要简单的函数调用,就可以驱动一条幻彩灯带,并且为其配置各种演示场景。

SDK它还提供了一个完整的工程实例,适用于涂鸦。APP面板,直接使用这个工程实例,可以实现非常丰富的灯带控制功能,甚至不需要修改任何代码,只需写产品PID以及灯带的长度和灯珠的数量信息,产品方案的实施。

接下来,让我们来看看涂鸦幻灯带SDK以及如何基于代码架构SDK,控制像素灯带。

如上图所示,整个幻灯带SDK软件主要分为六部分:

1 - 这是涂鸦提供的工程实例,开发者可以根据这个实例添加个性化功能,或者直接使用这个实例来实现产品。

2 - 本文件夹主要提供一些硬件设备的驱动代码,如按钮和灯带,根据实际设备定义了涂鸦,用户无需修改。

3 - 提供此文件夹TuyaOS与灯带相关的说明文件。

4 - 例程文件夹主要提供两部分demo例程,TuyaOS我们的应用程序开发可以基于灯带的应用程序和应用程序。

5 - BK与7231平台相关的代码与芯片密切相关,包括工具链和TuyaOS这部分代码不需要修改适配层。

6 - SDK文件夹主要是芯片和涂鸦IoT平台连接和通信所需的接口函数不提供源代码,只提供头文件和库,普通开发者可以学会使用。

以上,就是基于TuyaOS的幻彩灯带SDK源代码框架,整个框架非常简单(个人认为,与某米提供的相比SDK,不要太简单。开发者只需要注意APP文件夹中的内容和其他操作都被调用API,无非是调用TuyaOS的API,或调用灯带SDK的API,幻完成幻灯带产品的开发,实现你想要的功能 。

为了让开发者更快速的开发出产品,这个SDK还提供了一系列的参考examples,有简单的像素灯珠点亮,也有复杂的音乐律动和场景展示,开发者可以在这些demo的基础上进行个性化定制和开发。

例如,我们基于leds_pixel_scene_sample这个例程,就可以开发出场景展示的灯带功能,以下是具体的开发步骤。

1、首先,在涂鸦IoT平台,采用自定义方案的方式(不要使用零代码开发方案)创建一个幻彩灯带的产品,如下图所示。

 2、产品创建完成后,涂鸦IoT平台就会为该产品生成PID,这个PID后面会填入到代码里面,还会生成一些默认的灯带DP点,这些DP点是后台跟设备端数据交互的基础。

 3、接下来就是APP的控制面板,为了方便开发者开发手机应用,涂鸦还提供了很丰富的APP面板给开发者选用,为了方便,我们直接采用经典的控制灯带控制面板就可以了,如下图所示。

 4、然后就是到了硬件开发阶段,我们选用的BK7231N芯片,是基于TuyaOS开发的,所以,云端接入方式选用TuyaOS,接入云端的硬件,选用CBU Wi-Fi & Bluetooth 模组,然后在下方下载正式版幻彩灯带SDK,(开发者提供IoT账号和产品PID给涂鸦工作人员开通白名单后,即可使用该SDK),如下图所示。

 5、以上三步完成后,一款基本的幻彩灯带功能就已经在云平台构建完成了,如果需要为产品添加一些特定的功能,比如固件升级,场景联动,多语言管理,等等。可以使用产品配置选项卡,我们先完成一款基本功能的灯带开发,后续再添加这些个性化的特定功能。

 6、我们可以基于leds_pixel_scene_sample这个例程,进行设备端的软件开发,把examples/tuya_category/leds_pixel_scene这个例程,复制到APP文件夹,并重新命名,然后在tuya_device.c文件填入之前申请的PID信息,如下图所示。

 7、源文件tuya_device.c主要是TuyaOS提供给用户进行初始化的系统文件接口,以及一些跟Tuya IoT平台进行通信的回调函数,对于初始化的接口函数,有一些初始化函数不一定会被使用,对于幻彩灯带设备的初始化,主要是 device_init()函数,如下图所示。

 8、对于leds_pixel_device_init()函数,这个函数主要用来初始化灯带的灯珠设备。因为SDK为了兼容不同的像素点灯珠,SDK支持了很多型号的灯珠,比如ws2812,WS2814,YX1903,SK6812等。在使用SDK之前,需要根据灯带实际的控制IC,进行设备驱动注册和启动,函数的具体内容,如下图所示。

 9、再来看看leds_pixel_scene_init函数,这个函数主要是用来给硬件灯带设备注册一些场景,根据不同的灯带段落,注册不同的场景,然后APP可以通过控制具体的段落,实现不同的场景控制。

10、如代码所示,目前SDK提供了很多的场景演示,比如:静态,渐变,跳变,呼吸,闪烁,流水,彩虹,流星,堆积,飘落,追光,飘动,闪现,反弹,穿梭,乱闪,开合。这些场景都提供了指定的控制函数,开发者只需要简单地调用函数,即可实现具体的场景演示。

 11、除了灯光场景演示,SDK还提供了很好玩的音乐律动功能,通过音乐律动功能,可以把生活中播放的音乐,转换为灯光频谱演示,这些好玩的功能,开发者只需要调用一个接口函数,即可实现。

 12、关于设备端如何与涂鸦IoT平台进行通信,SDK根据不同的数据功能点,提供了不同的数据接口,如设备端与IoT平台进行通信的是RAW数据类型,则开发者可以使用__soc_dev_raw_dp_cmd_cb函数接口,进行RAW数据解析,其他数据类型,如bool,int,string,enum等等,也提供了指定的数据接口__soc_dev_obj_dp_cmd_cb,如下图所示。

 13、基于数据类型的解析接口,这个接口是设备端解析涂鸦IoT平台数据的入口,主要是提取出不同的功能点(即DP点),然后根据不同的功能点设置灯带的状态,为了方便处理RAW型数据,我把DP点解析,放在了同一个函数leds_pixel_iot_raw_dp_handler进行处理,如下图所示。(其他类型的DP点数据,也放在同一个函数集中处理。)

 14、对于后期的OTA升级,灯带的SDK也提供了专门的接口供开发者调用,主要是SOC设备升级接口,OTA升级进度接口,OTA升级完成接口,基于这些接口,用户可以很方便地对设备完成OTA升级操作,如下图所示。

 15、至此,涂鸦幻彩灯带SDK已经介绍完毕,该幻彩灯带SDK的正式版本已经进行发布,开发者如果想使用该SDK进行产品开发,可以联系涂鸦官方工作人员,并向工作人员提交涂鸦IoT平台账号和产品PID,开通白名单,即可使用该SDK进行产品开发。

16、需要注意的是,这个SDK主要面向的是B端用户,需要企业有一定研发实力以及具体方案落地能力。如果有照明行业的公司,想加快接入物联网平台,更好地打造差异化产品,可以扫描二维码,联系涂鸦官方的工作人员,获取该SDK以及开发板

标签: 1903连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台