基于涂鸦IoT开发平台实现SOC幻彩灯带方案
前文我们介绍了如果使用涂鸦iot 平台涂鸦已经开发好的模组固件实现了智能厕所门的方案
viewtopic.php?t=51
今天我们来介绍下,基于涂鸦模组和sdk 自己开发固件 实现一个soc 幻彩灯带方案
引言
随着物联网应用技术的发展,人们的生活融入着越来越多网络化、数字化的行为方式。物联网应用技术的一个重要分支便是智能家居,这一分支对于改善人们的生活水平至关重要。近些年来,消费者对家居的舒适性、便捷性有了一定的要求。针对现阶段己有的智能家居系统成本高、功耗大、集成度低等缺陷,分析并选取合适的平台、传感器和无线组网方式,设计了一款成本低、功耗低、集成度高的智能家居系统,该系统具有较好的应用和参考价值。
本系统采用涂鸦智能涂鸦模组二次开发版本,综合涂鸦Wi-Fi&BLE通信组网技术,以及传感器的应用技术,实现家居环境的智能联网,下图为涂鸦智能的Wi-Fi&BLE SoC NANO主控板(BK7231N)。
涂鸦模组二次开发产品
本章节介绍涂鸦模组二次开发方案项目流程,涂鸦IoT平台为客户提供一站式物联网解决方案,涵盖设备智能化、云服务、App 软件开发、运营维护等各方面,助力各行业客户实现研发端、生产端、销售端、运营端全产业互联网化。
当您确定好产品需求后,需要将产品具体化到IoT平台上,便于您管理产品并拥有产品运营能力。
产品开发流程
涂鸦模组二次开发方案开发周期短、成本低,您在IoT工作台上配置完成后,模块即会携带完整的控制程序,免去外置MCU及繁琐的程序开发,助您快速实现产品智能化,创建项目,标准类目选择“照明”,选择“幻彩灯带”。
选择开发方案,根据下图指示选择“自定义方案”,这里我们是对涂鸦模组进行二次开发,所以选择“自定义方案”。
按照自己将要开发的产品和模组填写产品名称,选择对应的通信协议,配置完成后点击“创建产品”。
这里准备使用CBU模组开发一个可以幻彩灯带的产品。CBU模组是一款Wi-Fi&Bluetooth LE双模模组,选择的通信协议是“WiFi-蓝牙”。
根据产品想要实现的功能,选择对应的功能点,选择完成后点击“确认”。
如果有些你需要的功能点在标准功能点里面没有,可以在标准功能点选择完成后,自定义你需要的功能点。(标准功能点可以在公版面板上很好的显示和操作。如果选择了自定义功能点,可能无法在面板上显示和操作)。
在设备交互中选择自己喜欢的APP界面,也可以自己进行定义。
点击“硬件开发”,选择“TuyaOS”,选择“CBU Wi-Fi&Bluetooth 模组”(如果你使用的是其他模组,选择对应的模组即可)。
箭头①指向的“新增自定义固件”是指上传你已经开发好的产品固件(如何开发将会在后面的内容进行讲解)。
点击箭头②指向的“ty_iot_light_app_sdk_bk7231n”下载该模组的SDK。
应用场景
涂鸦三明治 Wi-Fi&BLE SoC NANO主控板(BK7231N)采用上海博通开发的高性价比的 Wi-Fi &BLE 双模芯片 BK7231N。开发板包含 Wi-Fi 芯片BK7231N、按键、LED 指示灯、 I/O 接口、电源和USB转串口芯片等。
I/O 口及各接口功能定义如下所示:
1:MICROUSB(CN1) :即是 5V DC 输入口,也扩展了 2 个串口功能。
2:拨码开关(S1): 拨码切到 ON 方向导通,通断 USB 转串口芯片的双串口和芯片串口之间的链路。
3: 指示灯(D3):3.3V 电源指示灯。
4:按键(S2):通过 P9 检测,初始化高电平,按下为低电平。
5:指示灯(D2):通过 P16 控制,低电平点亮。
6:按键(RST):复位按键,按下后芯片复位。
原理图及PCB
涂鸦三明治 Wi-Fi&BLE SoC NANO 主控板(BK7231N)的原理图如下所示:
涂鸦三明治 Wi-Fi&BLE SoC NANO 主控板(BK7231N) 的 PCB 如下图,顶层:
底层:
Wi-Fi&BLE SoC NANO主控板(BK7231N)接口说明
涂鸦三明治 Wi-Fi&BLE NANO 主控板(BK7231N)内置 USB 转串口芯片,单路 USB 口可扩展出 2 个串口。可通过拨码开关(S1)切换模组的两路串口是否连接到 USB 转串口芯片上。拨码开关引脚说明如下表所示。
拨码开关序号 1 2 3 4
芯片引脚 UART1_RX UART1_TX UART2_RX UART2_TX
USB芯片 USB-TX0 USB-RX0 USB-TX1 USB-RX1
拨码切到 ON 方向导通,通断 USB 转串口芯片的双串口和芯片串口之间的链路。
芯片 UART 引脚用于与MCU通信或普通 I/O 口使用时,需将相应的拨码位置拨到断开的位置,即数字字母方向。
电脑 COM 口与 USB 芯片串口和芯片 BK7231N 对应关系。
通常情况下A是用来下载程序用的,B是用来打印日志的
电脑 COM 口 SERIAL-A SERIAL-B
USB芯片 USB-UART0 USB-UART1
BK7231N UART1 UART2
烧录授权接线方式
将拨码开关(S2)的 1、2 路都拨至 ON 方向,BK7231N 的串口 UART1 与上位机链路导通。
注意:若出现“获取RF标志位失败”的情况,可在授权阶段,将串口2的RXD引脚(P01引脚)和GND短接。
环境搭建
环境搭建请参考涂鸦智能配置说明:
https://developer.tuya.com/cn/docs/iot/ ... qptzv5yo8a
从涂鸦 IoT 开发平台下载 SDK 进行验证
在涂鸦IoT 开发平台上成功创建自定义开发的产品后,在硬件开发中选择 TuyaOS,即可下载该模组的 SDK
将下载好的 SDK 复制到 Windows 和 Ubuntu 的共享文件夹中,在 Ubuntu 虚拟机中输入下列命令进行编译:
cd /home/share/samba/
tar -xzvf .tar.gz #注意:该命令会将当前目录下所有后缀名为.tar.gz的文件进行解压,建议将.tar.gz改为你实际要解压的文件的完整名字
cd ty_iot_light_app_sdk_bk7231n_0.1.1
sh build_app.sh ./apps/xh0623_demo_pixel_light_ty xh0623_demo_pixel_light_ty 1.0.0
执行成功如下所示:
模组二次开发流程
启动流程介绍
在开始开发前,需要了解 SDK 的初始化流程。这里需要重点关注四个函数pre_app_init()、pre_device_init()、app_init()和device_init()。启动流程如下图所示。
修改代码
产品PID定义
可以根据下面的提示填写产品的 PID 信息,也可以不对代码进行任何更改,跳过该步骤直接进入下一步编译生成固件。
将apps下的include/light_system目录下的light_system.h中的PRODUCT_KEY修改为您创建得到的 PID,FIRMWARE_KEY是固件key,可以填NULL。
灯珠数量定义
在/home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1/app/xh0623_demo_pixel_light_ty/include/src/light_system/light_init.c中可以进行修改。
编译和生成产物介绍
在 Ubuntu 终端中将路径切换到有 build_app.sh 的路径下,输入下列命令进行编译。
例:我这里处于home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1路径下,开始执行下列命令。
sh build_app.sh ./apps/xh0623_demo_pixel_light_ty xh0623_demo_pixel_light_ty 1.0.0
命令 含义
sh build_app.sh 命令执行 build_app.sh 脚本。
./apps/tuya_demo_light_pwm 编译的工程所在的路径。
tuya_demo_light_pwm 固件名称,固件标识名,必须要和工程文件夹名称一致。
1.0.0 软件版本号。
执行后如下所示。
生成产物
编译完成后,将生成的固件按照不同版本放在所编译的工程目录 output 文件夹内。
例:如果我们编译的是 apps 文件夹中的 xh0623_demo_pixel_light_ty工程,编译版本为1.0.0,那么生成的固件将会放在 apps/xh0623_demo_pixel_light_ty/output/1.0.0 中。
编译后的产物如上图所示,这里主要关注的xh0623_demo_pixel_light_ty_QIO_1.0.0.bin、xh0623_demo_pixel_light_ty_UA_1.0.0.bin和xh0623_demo_pixel_light_ty_UG_1.0.0.bin这三个文件。
文件名 功能
xh_bk7231n_light1_io_xx_QIO_1.0.0.bin 生产区固件:boot+用户区固件+检测固件。
xh_bk7231n_light1_io_xx_UA_1.0.0.bin 用户区固件
xh_bk7231n_light1_io_xx_UG_1.0.0.bin 升级固件
上传固件
自定义开发固件如果不上传到云平台,直接将 UA 文件烧录到已授权的模组中,会导致配网一直无法成功。
进入涂鸦 IoT 平台,在开发的产品中找到“硬件开发”,按照下图指示点击“新增自定义固件”,填写相关固件信息。
“固件标识名”必须和您编译时的 apps 下的工程文件夹的名称一致。
如果固件标识名填写为 wifi_one_light,上传的固件应为 SDK 包中 apps 目录下的 wifi_one_light 文件夹中编译所生成的固件。
“Flash 大小”为 16Mbit 也就是 2M 大小。不同模组的 flash 大小可以在涂鸦文档中心 中查看相关模组的 flash 大小。
1byte(字节) = 8bit(位)。 16Mbit / 8 = 2M。
相关信息填写完成后(没有被②的框框圈到使用默认设置即可),点击“上传固件”,进入“上传固件“步骤。
“固件版本”需要和编译时输入的版本号对应一致。“生产固件”上传包含 QIO 的 bin 文件,“用户区”上传包含 UA的bin 文件,“升级固件”上传包含 UG 的 bin 文件。运行模式选择 QIO。点击保存。
注意:该顺序不一定固定,在后续固件管理中就不是按照“生产固件”,“用户区固件”和“升级固件”的顺序来排序,所以一定要看清楚是什么类型的固件在进行上传。
点击“进行固件上架”。
选择“不限范围”,点击“确认上架”。
注意:这里选择不限范围是为了方便个人开发。如果是公司将要量产的产品,请严格限定固件的使用范围。
烧录授权
通过涂鸦 IoT 开发平台涂鸦模组二次开发方案成功生成固件,或使用自定义开发方案生成固件并上传到涂鸦 IoT 开发平台后,下一步需要对模组进行烧录授权。
本文将详细讲解 3 种不同的烧录授权方式:
自定义开发烧录授权:适用于发布阶段,使用自定义开发方式创建的产品。
三明治开发板方式烧录授权:仅适用于涂鸦三明治开发板的烧录授权。
使用原厂工具烧录:适用于开发阶段。方案的特点是授权一次,重复烧录。
烧录准备工作
烧录授权所需工具如下:
PMS 账号
CBU Nano开发板或涂鸦WiFi模组+usb转UART串口工具
云模组烧录授权工具
原厂烧录工具
PMS 账号
PMS账号申请网址:https://pms.tuya.com/login
PMS是涂鸦智慧生产管理系统,一个轻量化的生产管理系统,助力中小微生产企业实现降本、提质、增效和减存,完成数字化转型。
登录涂鸦PMS系统。登录成功后,依次点击知识库管理->软件下载->生产解决方案开始下载「生产解决方案」。
安装过程中,程序安装的位置可以根据自身需求进行设置,建议不要有中文路径,避免出现一些意想不到的问题。
安装完成后,启动「生产解决方案」,登录的账号和密码与涂鸦PMS系统(涂鸦智造)的账号和密码一样。
由于是开发CBU Wi-Fi & Bluetooth 模组,故选择生产测试->云模组即可。
选择文件->设置,进行烧录设置,授权波特率最好设置在9600。
授权设置
点击产品->三明治开发板->绑定开发板进行绑定。
一般情况下,开发板背部都有一张标签,上面附带了ID和密码。
点击申请新的授权码,即可选择需要添加的产品。
使用云模组烧录授权平台烧录
设置完毕之后将授权码输入到生产凭证中,选择烧录模式。
点击运行,在对开发板进行复位就可以进行下载。
原厂工具烧录UA文件
使用该方法只能烧录应用区固件,无法给模组进行授权操作。可以使用该方法给已经授权过的模组进行烧录,避免每次更新代码生成固件后都要上传到涂鸦loT平台使用「云模组烧录授权平台」工具进行烧录授权。
下降链接如下:https://images.tuyacn.com/smart/shiliu_ ... V1.6.3.rar
使用此方法只能烧录应用区固件,无法给模组进行授权操作。可以使用该方法给已经授权过的模组进行烧录,避免每次更新代码生成固件后都要上传到涂鸦 IoT 开发平台使用云模组工具进行烧录授权。
按照下图步骤,在箭头 ① 所指向的烧录对象中,根据实际烧录的模组选择对应的芯片型号,可在文档中心查看相关模组规格书,确认模组使用的芯片型号。
单击箭头 ② 指向的浏览按钮,选择成功编译生成的包含了 UA 字样的 bin 文件(该文件就是应用区固件,这里选择的固件就是wifi_one_light)。
在箭头 ③ 和箭头 ④ 指向的起始地址中填入0x00011000,操作长度中填入0x00119000。
在箭头 ⑤ 指向的位置选择正确的烧录串口,将箭头 ⑥ 指向的通讯波特率调整为最高,可以加快烧录速度。
单击箭头 ⑦ 指向的烧录,给模组通断电或复位模组使模组重启,开始烧录。烧录完成后,更改后的代码就成功烧录到模组中。你可以不再使用云模组工具对该模组再次进行授权操作。
烧录设置如下所示。
烧录完成如下所示。
涂鸦APP
可以在涂鸦手机APP中对模组进行添加。
一般情况下可以自动识别出来。
若没有识别,点击照明,灯带进行添加。
若APP无法搜索到模组,需要对模组进行重置,查看原理图可以知道P9管脚对应用户按键。
查看/home/share/samba/ty_iot_light_app_sdk_bk7231n_0.1.1/app/xh0623_demo_pixel_light_ty/include/src/light_button/light_button_init.c下有个按键配置代码,可以看到对按键点击4次可以进入复位模式。
幻彩灯带功能介绍
涂抹功能
用户可以根据自己的喜好给灯带进行设置,配置为自己喜欢的颜色组合,例如配置为蓝绿红。
实际配置如下所示。
还有丰富的色卡组合。
场景设置
用户可以根据自己的喜好定义场景。
例如设置为海上焰火,效果如下所示。
音乐律动
音乐律动分为本地模式和APP模式,在本地模式下有摇滚、爵士、古典、滚动、能量、频频。
以爵士为例,设置之后可以选择灵敏度来改变灯带频率。
实际演示如下所示。
其他功能
用户可以给幻彩灯带进行设置,指定打开时间。
同时也可以定义灯带的长度。