更新时间:2024-11-20 02:14:51下载pdf
本章节将会通过对 Demo 进行修改,带您快速体验如何通过涂鸦模组固件实现对产品的开发。
Demo 功能介绍:长按 CBU Nano 板上的 S2(TY_GPIOA_9) 按键,重置设备,使设备进入配网模式。短按S2键控制板载 LED 灯D2(TY_GPIOA_16) 。
硬件:
CBU Nano 主控板(也可使用涂鸦 Wi-Fi 模组和其它型号的三明治 Wi-Fi 主控板)。
一根 Micro USB 线。
如果使用的是模组或没有串口芯片的三明治开发板,至少需要准备1个 USB 转 TTL 串口工具。建议准备2个 USB 转 TTL 串口工具,一个打印 log,一个用来烧录使用。
实验中用到的引脚介绍如下,点击查看 CBU Nano板的详细介绍。
丝印名称 | 芯片引脚 | 备注 |
---|---|---|
S2 | GPIO_9 | 按键引脚,按下为低电平。涂鸦封装的引脚名称为TY_GPIOA_9 。 |
D2 | GPIO_16 | LED引脚,低电平点亮。涂鸦封装的引脚名称为TY_GPIOA_16 。 |
软件:
代码编辑器
由于编译是在 Ubuntu 下进行的,代码编辑软件可以使用 VScode 或其它代码编辑软件。Windows 下也推荐 VScode ,只是使用时代码跳转会不方便。
模组 SDK
模组 SDK 获取详细请参考01.环境搭建中的5.编译验证。
涂鸦开发者平台:
在对产品进行开发前,需要在涂鸦开发者平台创建产品,获取产品 ID(PID)。产品创建流程可以参考02.涂鸦开发者平台中的产品创建进行创建。
申请 PMS 账号,下载「生产解决方案」。
注册 PMS 账号
注册流程:进入涂鸦 PMS 系统,选择个人开发者,按照系统注册指引填写相关信息。注册成功后会收到涂鸦智能发送的注册成功邮件。
下载安装「生产解决方案」
审核通过后,输入账密,即可成功登录涂鸦 PMS 系统。登录成功后,依次点击知识库管理->软件下载->生产解决方案
开始下载「生产解决方案」。
下载完成后,安装「生产解决方案」。
双击「生产解决方案」安装包,出现下面的警告,点击更多信息。
点击仍要运行。
安装过程中,程序安装的位置可以根据自身需求进行设置,不建议使用中文路径。
安装完成后,启动「生产解决方案」,登录账密同涂鸦 PMS 系统(涂鸦智造)账密。
点击云模组打开[云模组烧录授权工具]。
如果安装完成后如出现下图情况:红色框内全为白色,就需要对软件进行设置使它恢复正常。红色框内为黄色则说明安装成功,可跳到1.3进行阅读。
点击文件 >设置
。
将箭头①指向的“多路选择”的1*1
选项改为1*2
,点击“确认”。
“多路选择”改变后如下图所示。
将多路选择的1*2
,改回到1*1
,「云模组烧录授权工具」的设置就完成了。
在 Ubuntu 中通过cd
命令进入到 SDK 中的 apps 目录,可执行下列命令从 GitHub 中拉取写好的示例代码。
例:执行该命令时,正处于
/home/share/samba/ty_iot_sdk_bk7231n_2.3.1/apps
路径下。请先进入到 SDK 的 apps ,再执行下列命令,或者 git 拉去后,将文件夹复制到 apps 文件夹中。
git clone https://github.com/Tuya-Community/bk7231n_light1_io_xx.git
在 SDK 的 apps 目录下新建一个bk7231n_light1_io_xx
的文件夹,该文件夹名称既是工程名,也是上传固件时使用的固件标识名。建议创建时就将文件夹名称应改成不同的名字,上传到云平台时因为重名导致固件上传失败。
固件命名可以按照:芯片平台+产品类型+产品特性+厂商标识名/个人姓名缩写进行命名。如:固件名称可以命名为
bk7231n_light1_io_xx
,bk7231n
表示使用的是bk7231n芯片进行开发的,light1
表示一路灯,io
表示通过IO口拉高拉低来控制灯的亮灭,xx
为名字缩写。
可以根据下面的提示填写产品的 PID 信息,也可以不对代码进行任何更改,跳过该步骤直接进入下一步编译生成固件。
将/apps/bk7231n_light1_io_xx/include
目录下的tuya_device.h
中的PRODECT_ID
修改为您创建得到的 PID。
#ifndef __TUYA_DEVICE_H__
#define __TUYA_DEVICE_H__
/* Includes ------------------------------------------------------------------*/
#include "tuya_cloud_types.h"
#include "tuya_cloud_com_defs.h"
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef _TUYA_DEVICE_GLOBAL
#define _TUYA_DEVICE_EXT
#else
#define _TUYA_DEVICE_EXT extern
#endif /* _TUYA_DEVICE_GLOBAL */
// device information define
#define DEV_SW_VERSION USER_SW_VER
#define PRODECT_ID "fnrwpglflmbhjvvh" /* 将这里双引号内的PID更改为您创建产品得到PID */
/* Exported functions ------------------------------------------------------- */
_TUYA_DEVICE_EXT \
OPERATE_RET device_init(VOID_T);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __TUYA_DEVICE_H__ */
配网按键引脚在 /apps/bk7231n_light1_io_xx/src
中的tuya_device.c
中,可通过修改第38行的 WIFI_KEY_PIN
进行修改配网按键的引脚。
控制的LED引脚,可以通过修改 /apps/bk7231n_light1_io_xx/include
中的 light_system.h
文件中的 LIGHT_PIN
,选择要控制的 LED 引脚。
在 Ubuntu 终端中将路径切换到有 build_app.sh
的路径下,输入下列命令进行编译。
例:我这里处于
/home/share/samba/ty_iot_sdk_bk7231n_2.3.1/
路径下,开始执行下列命令。
sh build_app.sh ./apps/bk7231n_light1_io_xx bk7231n_light1_io_xx 1.0.0
命令 | 含义 |
---|---|
sh build_app.sh | 使用 shell 命令执行 build_app.sh 脚本。 |
./apps/tuya_demo_light_pwm | 编译的工程所在的路径。 |
tuya_demo_light_pwm | 固件名称,固件标识名,必须要和工程文件夹名称一致。 |
1.0.0 | 软件版本号。 |
编译完成后,将生成的固件按照不同版本放在所编译的工程目录 output
文件夹内。
例:如果我们编译的是
apps
文件夹中的bk7231n_light1_io_xx
工程,编译版本为1.0.0
,那么生成的固件将会放在apps/bk7231n_light1_io_xx/output/1.0.0
中。
编译后的产物如上图所示,这里主要关注的bk7231n_light1_io_xx_QIO_1.0.0.bin
、bk7231n_light1_io_xx_UA_1.0.0.bin
和bk7231n_light1_io_xx_UG_1.0.0.bin
这三个文件。
文件名 | 功能 |
---|---|
bk7231n_light1_io_xx_QIO_1.0.0.bin |
生产区固件:boot+用户区固件+检测固件。 |
bk7231n_light1_io_xx_UA_1.0.0.bin |
用户区固件 |
bk7231n_light1_io_xx_UG_1.0.0.bin |
升级固件 |
自定义开发固件如果不上传到云平台,直接将 UA 文件烧录到已授权的模组中,会导致配网一直无法成功。
进入涂鸦开发者平台,在开发的产品中找到“硬件开发”,按照下图指示点击“新增自定义固件”,填写相关固件信息。
“固件标识名”必须和您编译时的 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
。点击保存。
注意:该顺序不一定固定,在后续固件管理中就不是按照“生产固件”,“用户区固件”和“升级固件”的顺序来排序,所以一定要看清楚是什么类型的固件在进行上传。
点击“进行固件上架”。
选择“不限范围”,点击“确认上架”。
注意:这里选择不限范围是为了方便个人开发。如果是公司将要量产的产品,请严格限定固件的使用范围。
PMS 账号、云模组烧录授权工具的获取,烧录授权中常见问题都可以通过阅读 04.烧录授权 章节获取到答案。
将我们编译生成的固件上传到涂鸦开发者平台,成功上架后,可以免费领取激活码,通过「云模组烧录工具」进行烧录授权。
点击“免费领取激活码”。
交付方式选择“生产凭证”,点击“提交订单”。
“生产凭证”:产测授权工具“烧录授权”功能读取的凭证编码,可自动抓取指定数量的授权码,随固件一起逐个写入设备。需上传生产固件至涂鸦开发者平台。
“授权码清单”:写有每一个授权码 UUID 及相关信息的表单,需自行逐个写入设备。
“生产凭证-仅授权”:产测授权工具“独立授权”功能读取的凭证编码,无需固件,即可对设备进行逐个授权。
点击“去订单列表页看看”。
根据 PID 信息找到要烧录授权的设备,点击箭头②的“下载生产凭证”。
解压下载好的“生产凭证”,打开 Token_information.txt
文件,复制“生产凭证”。在「云模组烧录授权工具」中输入生产凭证,选择工位“烧录授权”。
这里可能会出现获取 token 失败,没有操作权限
的错误,解决办法如下:
出现该错误需要在 PMS 系统中,按照下图指示,依次点击“生产管理 >工单管理 >生产凭证确认”,然后输入刚刚没有操作权限的“生产凭证”点击“确认”。再回到「云模组烧录授权工具」中输入该生产凭证点击确认即可开始烧录授权操作。
生产凭证输入完成后,会如下图显示。在“基础信息”一栏中显示固件的相关信息。
注意:为了使 CBU Nano 板可以通过 Micro USB 进行烧录和打印日志,需要将板子上的四个拨码开关全部打开(拨码位置拨到 ON 一端,非数字一端)。
在「云模组烧录授权工具」中根据按照箭头的指引,输入生产凭证,选择工位为“烧录授权”,点击确认。
按照下表通过 USB 转 UART 工具把三明治开发板与电脑连接起来。
USB 转 UART 引脚 | 三明治 SoC开 发板引脚 |
---|---|
VCC |
VCC |
GND |
GND |
TX |
RX |
RX |
TX |
选择烧录的串口,点击运行,然后马上给模组断电再上电或按下复位按键使模组重启。
重启模组时不要直接把串口工具从电脑上拔掉,会导致烧录失败的。应拔掉再插上模组与串口工具连接的 VCC 和 GND 的杜邦线。
CBU 的三明治 SoC 开发板自带了 CH 304 串口芯片。点击运行后,按下 CBU 的三明治 SoC 开发板上 USB 口的复位按键即可重启芯片,开始烧录授权。
如果在烧录授权过程中出现进入产测失败错误,原因可能是该开发板在进行烧录授权时已累计连接到网络超过了15分钟。设备此时关闭了产测功能,导致无法进入产测出现了授权失败的情况。解决办法参考 04.烧录授权章节中的 3.1 进入产测失败 的内容进行解决。
将固件成功烧录到模组后,下载涂鸦智能 App 对设备进行配网,配网成功后就可以通过涂鸦智能 App 对设备进行控制。涂鸦智能 App 可以在手机的应用商城中搜索下载安装,也可以通过扫描下面的二维码进行下载安装。
关于配网:
如果在进行烧录授权时使用的是「云模组烧录授权工具」,那么在烧录授权完成后,重启设备默认会进入配网模式。
如果设备之前已经配网成功,烧录授权时使用原厂工具只烧录了用户区的固件且没有更改 PID,设备在上电后仍会再次去连接上次成功连接的网络。想要对设备重新进行配网,需要重置设备,使设备进入配网模式。
使用的模组不同,配网的流程也有所不同。我们这里使用的是 CBU
模组,采用7.1 Wi-Fi&Bluetooth LE 双模模组产品配网进行配网。
设备配网时,应选择 2.4G 频段的 Wi-Fi 进行连接配网。
Wi-Fi&Bluetooth LE 双模模组目前有WB系列、WBR 系列、JWBE 系列、CB 系列、CR 系列和 HPWSMS1 模组。
配网时,确保设备处于配网模式,打开 涂鸦智能App。进入 App 后,点击右上角的加号,开始添加设备。
Wi-Fi&Bluetooth LE 双模模组是通过蓝牙将要连接的 Wi-Fi 的相关信息发送给设备的。点击箭头指向的“自动发现”,就可以看到 App 搜索到可以连接的设备,然后点击“下一步”。
选中需要配网的设备,点击配网设备所在框中的右上角的加号进入下一步。
确认设备将要连接的 Wi-Fi 名称和密码是否正确(如果密码栏为空,请输入 Wi-Fi 密码)。
配网成功后如果显示下图,就可以退出到主界面,使用涂鸦智能 App 对设备进行控制了。
Wi-Fi 模组没有蓝牙,通过 EZ 或AP 的方式进行配网。
进入涂鸦智能 App 主界面后,点击右上角的加号,开始添加设备。
按照产品品类在“手动添加”的栏目下找到有“(Wi-Fi)”的图标(下图箭头②指向的位置)。
确认连接的 Wi-Fi 是 2.4GHz 的,确认设备连接的 Wi-Fi 名称和密码是否正确,点击下一步。
按照 App 指示进行操作,重置设备,使设备进入到配网模式。
开始配网的界面如下图显示,等待一段时间,使设备配网成功。
设备配网成功,并成功连接到涂鸦云平台的界面如下。接下来就可以通过涂鸦智能 App 控制设备了。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈