tuya-open-sdk-for-device使用体验之Windows 下 MSYS2 编译 T2-U 开发板

tuya-open-sdk-for-device 是一款跨芯片平台、操作系统的 IoT 开发框架。它基于通用南向接口设计,支持 Bluetooth、Wi-Fi、Ethernet 等通信协议,提供了物联网开发的核心功能,包括配网,激活,控制,升级等;它具备强大的安全合规能力,包括设备认证、数据加密、通信加密等,满足全球各个国家和地区的数据合规需求。

基于 tuya-open-sdk-for-device 开发的 IoT 产品,如果使用 tuya_cloud_service 组件的功能,就可以使用涂鸦APP、云服务提供的强大生态能力,并与 Power By Tuya 设备互联互通。

官方仓库地址为: https://github.com/tuya/tuya-open-sdk-for-device

tuya-open-sdk-for-device 当前支持在 Linux、Windows-WSL、Windows-MSYS2 等操作系统平台编译、一键烧录,macOS平台正在开发适配中尽情期待!

支持硬件

open-sdk-for-device 当前支持 Linux 运行和 T2-U 开发板,本次演示在 MSYS2 下编译 T2-U开发板。
在这里插入图片描述

T2-U 开发板详细资料可参考文档 https://developer.tuya.com/cn/docs/iot-device-dev/T2-U-development-board?id=Kckeahvfhu7v0。

获取方式
  • 方式一:前往 涂鸦 IoT 开发平台样品商店 获取

  • 方式二:前往 网页版淘宝网商品详情 获取

MSYS2 环境搭建

MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从MinGW-生成)基础上产生的,追求更好的互操作性的 Windows 软件。MSYS2 官网 https://www.msys2.org 有详细介绍。

MSYS2 最大的特色是集成了 pacman 可以很方便的在线安装软件包。

MSYS2 下载

参照 https://www.msys2.org/wiki/MSYS2-installation 说明下载安装。在 https://repo.msys2.org/distrib/x86_64 下载 64bit 安装包,当前最新版本为 20240103 版,可以直接点击 https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20240113.exe 下载。

安装

下载完成后直接双击开始安装,默认按照路径为 C:\msys64,后续需要运行 MSYS2 可在该目录下运行。
在这里插入图片描述

安装完成后即可运行。

在这里插入图片描述

软件包安装

使用 MSYS2 最大的优势是可以使用 pacman 包管理工具一键安装软件包,使用以下命令一键安装开发所需的软件:

$ pacman -S python3 python3-pip cmake make git tar unzip 

根据安装提示输入 Y 后开始安装。

在这里插入图片描述

等待安装完成。

tuya-open-sdk-for-device 使用

下载

使用 git 命令下载

$ git clone --recurse https://github.com/tuya/tuya-open-sdk-for-device

修改代码

下载完成后按照 README.md 中说明,完成以下工作:

  1. 创建产品并获取产品的 PID:

参考文档 https://developer.tuya.com/cn/docs/iot-device-dev/application-creation?id=Kbxw7ket3aujc 在 https://iot.tuya.com 下创建产品,并获取到创建产品的 PID 。

  1. 获取正确的 uuid 和 authkey:

参考文档 https://developer.tuya.com/cn/docs/iot-device-dev/application-creation?id=Kbxw7ket3aujc#title-4-%E7%AC%AC%E4%BA%94%E6%AD%A5%EF%BC%9A%E9%A2%86%E5%8F%96%E6%8E%88%E6%9D%83%E7%A0%81 获取授权码清单,该清单中包含连接涂鸦云服务的 uuid 和 authkey。

  1. 修改示例:

examples/switch_demo/src/tuya_config.h 文件中 TUYA_PRODUCT_KEYTUYA_DEVICE_UUIDTUYA_DEVICE_AUTHKEY 宏分别对应 pid 和 uuid 、authkey,请根据步骤 1 和 2 分别获取到的 PID 及 uuid 、authkey 正确修改,修改后删除 #error 提示语句。

配置工程

依次执行以下命令配置当前编译工程

  1. 选择 board
$ ./configure
Boards1. linux-ubuntu-6.2.0_64Bit2. t2

选择 2. t2

  1. 选择配置
Pre-config1. linux.config2. t2.config

选择 2. t2.config

  1. 选择编译示例
Examples1. hello_world2. switch_demo

选择 2. switch_demohello_world 为最小工程示例,开发者自行创建工程可以使用在最小工程上修改。

选择完成后,工程会根据当前操作系统环境自行下载对应的 toolchain 并自动解压至对应的目录。

编译

open-sdk-for-device 采用 CMake 编译体系。根据提示,输入以下命令:

$ mkdir build; cd build; cmake .. 
$ make example -j8

MSYS2 与 mingw、cygwin 一样,编译运行速度较 Linux 操作系统慢,所以在运行编译的时候加入了并行编译指令 -j8 提速。

一键烧录

编译完成后,系统将根据你当前的目录和编译工程名,提示烧录命令:

###################################################################################################################
Project switch_demo build complete. To flash, run this command:
/home/cys/tuya-open-sdk-for-device/board/t2/tools/tyutool/cli.exe write -d T2 -p [Port] -b [Baudrate] -f /home/cys/tuya-open-sdk-for-device/build/bin/switch_demo_1.0.0/switch_demo_QIO_1.0.0.bin
Port: COM3 or COM4 ...
Baudrate: 921600 or 1500000 or 2000000 ...Flash tool user manual at /home/cys/tuya-open-sdk-for-device/board/t2/tools/tyutool/README.md
###################################################################################################################

注:
路径会根据当前项目所在目录自行修改

复制该命令,并修改:

  • [Port]:当前烧录串口号(T2-U开发板自带 2个串口,1号串口和用户通讯串口;2号串口为日志打印串口)
  • [Baudrate]:可根据当前 USB-TTL 转换器支持的波特率合理选择烧录波特率

示例:

$ /home/cys/tuya-open-sdk-for-device/board/t2/tools/tyutool/cli.exe write -d T2 -p COM22 -b 921600 -f /home/cys/tuya-open-sdk-for-device/build/bin/switch_demo_1.0.0/switch_demo_QIO_1.0.0.bin
[INFO]: tyut_logger init done.
[INFO]: Run Tuya Uart Tool.
[INFO]: Use default start address: [0x00]
[INFO]: Waiting Reset ...
[INFO]: link check success
[INFO]: sync baudrate 921600 success
Erasing: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 8 bytes/s   0:00:00 / 0:00:00''
[INFO]: Erase flash success
Writing: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 21 bytes/s   0:00:19 / 0:00:00''
[INFO]: Write flash success
CRCChecking: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0 bytes/s   0:00:04 / 0:00:00''
[INFO]: CRC check success
[INFO]: Reboot done
[INFO]: Flash write success.

运行

烧录完成后按 RST 按钮或重新上电即可运行新程序,未配网设备会自动进入配网状态。将日志串口连接至电脑后,看日志可发现蓝牙已经进行广播状态。

[02-02 08:27:38 ty I][tuya_iot.c:853] Activated data remove successed
[02-02 08:27:38 ty D][switch_demo.c:77] Tuya Event ID:11(TUYA_EVENT_RESET_COMPLETE)
[02-02 08:27:38 ty W][tuya_iot.c:494] CLIENT RESTART!
[02-02 08:27:38 ty D][tuya_iot.c:650] STATE_START
[02-02 08:27:38 ty I][tuya_iot.c:663] Activation data read fail, go activation mode...
[02-02 08:27:38 ty D][switch_demo.c:77] Tuya Event ID:1(TUYA_EVENT_BIND_START)
[02-02 08:27:38 ty I][switch_demo.c:80] Device Bind Start!
[02-02 08:27:38 ty I][switch_demo.c:81] Device Free heap 60168
[02-02 08:27:38 ty D][netcfg.c:210] netcfg module start type:0x2
[02-02 08:27:38 ty D][ble_netcfg.c:77] bt netcfg start
[02-02 08:27:38 ty D][netcfg.c:32] start 0x2 ret:0
[02-02 08:27:38 ty D][netconn_wifi.c:70] auto connect stop 4
[02-02 08:27:39 ty D][netconn_wifi.c:157] auto conn timeout cnt 0, stat 4
[02-02 08:27:40 ty D][tuya_health.c:59] feed watchdog
[02-02 08:27:40 ty D][ble_mgr.c:377] ble monitor check iot is disconnected, start adv!
[02-02 08:27:40 ty I][ble_gap.c:2248] GAP init: stop adv
[02-02 08:27:40 ty E][ble_mgr.c:338] ret:-28683
[02-02 08:27:40 ty N][ble_gap.c:2509] Start Adv
[02-02 08:27:40 ty N][ble_mgr.c:343] ble adv updated 0
[02-02 08:27:43 ty D][tuya_lan.c:245] i:0,time:1706862463,time:1706862433,fault:0
[02-02 08:27:43 ty D][lan_sock.c:342] unreg post queue 4
[02-02 08:27:44 ty D][lan_sock.c:143] unreg lan sock 4 and close it

配网

T2-U 开发板使用的是 T2-U Wi-Fi && 蓝牙双模模组,支持蓝牙配网。连接手机 Wi-Fi 至路由器,并打开手机蓝牙功能,并打开 智能生活 APP 现当前设备,也可以通过点击 智能生活 APP 右上角 + 按钮手工发现设备。

在这里插入图片描述

控制

设备添加完成后会在设备列表中,点击该设备即可进入控制界面。

在这里插入图片描述

配网及控制相关文档可点击 https://developer.tuya.com/cn/docs/iot-device-dev/TuyaOS-Quick_Start-demostration?id=Kc557s09ol9o1 。

接下来就让我们发挥创意,开发自己想要的智能设备吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024美赛A题完整思路代码分析:建立竞争机理方程+遗传算法优化

A题是自由度比较大的场景限定下的模型构建,相对比较容易,核心是找到现有的成熟的数学模型,然后找到合适的数据进行证明得到结论,估计大部分是目标优化问题。(不限制专业) B题属于较为经典的物理建模&#…

【竞技宝】LOL:Able小炮连续起跳收割战场 OMG2-0轻取TT

北京时间2024年2月2日,英雄联盟LPL2024春季赛在昨天迎来第二周第四个比赛日,本日首场比赛由TT对阵OMG。本场比赛,TT在前中期和OMG有来有回,然而中后期的大龙团战始终不是OMG的对手,最终OMG2-0轻取TT。以下是本场比赛的…

linux vim 异常退出 异常处理 交换文件

交换文件 *.swp 格式 同时是隐藏的 如在vim一个文件, 在没有正常退出, 如直接断开连接 在次编辑这个文件 会出现下图的错误 解决方案: 直接删除这个交换文件即可 rm -fr .zen.txt.swp

唐墓惊现石椁,文物预防性保护系统未雨绸缪

一、文物保护的急需解决和科技的支持 陕西省考古学会近日宣布,考古团队在西安揭开了唐睿宗李旦孙媳妇薛柔顺墓的神秘面纱,其中出土的一具完整石椁,雕刻精湛、线条流畅,实属罕见珍宝。唐代石椁本就稀少,此次发现更是为…

RK3588开发板Ubuntu与开发板使用U盘互传

1 将 U 盘(U 盘的格式必须为 FAT32 格式,大小在 32G 以下)插到开发板的 usb 接口,串口打印信息如下所示,U 盘的设备节点是/dev/sdb4。U 盘的设备节点不是固定的,根据实际情况来查看设备节点。 2 输入以下命令挂载 U 盘&#xff0c…

Leetcode—2670. 找出不同元素数目差数组【简单】

2024每日刷题&#xff08;一零七&#xff09; Leetcode—2670. 找出不同元素数目差数组 哈希表实现代码 class Solution { public:vector<int> distinctDifferenceArray(vector<int>& nums) {unordered_set<int> s;int n nums.size();vector<int&g…

Qwen-VL 技术报告总结

感谢如此优秀的开源工作,仓库链接 Qwen-VL 权重分为 Qwen-VL && Qwen-VL-Chat,区别文档稍后介绍 训练过程 在第一阶段中主要使用224X224分辨率训练,训练数据主要来源是公开数据集,经过清洗,数据总量大约是1.4B,中文数据和英文j训练目标是视觉语言和文本语言对齐。…

docker集成 nacos/nacos-server (包括踩的坑)

tips 这边需要的数据库我已经安装好了&#xff0c;所以数据库的安装这边已经省略了 拉取镜像&#xff08;这边使用nacos1.4.1作为例子&#xff09; docker pull nacos/nacos-server:1.4.1创建映射的文件夹 (conf存放配置文件&#xff0c;logs存放日志文件) mkdir -p /data/n…

MySQL索引的原理和SQL优化策略

1. 索引 在InnoDB存储引擎中&#xff0c;索引分为聚簇索引和辅助索引两种类型。 聚簇索引是指基于表的主键构建的索引&#xff0c;它决定了表中数据的物理存储顺序。也就是说&#xff0c;聚簇索引中的键值按照主键的顺序来排序&#xff0c;并且每个叶子节点存储的是整个表行的…

HAL库配置PWM模式

一、什么是PWM 脉冲宽度调制(PWM)&#xff0c;是英文“Pulse Width Modulation”的缩写&#xff0c;简称脉宽调制。通过控制高低电平在一个周期内的占比从而输出一定的电压。 向上计数原理介绍 ​PWM的一个周期 定时器从0开始向上计数 当0-t1段,定时器计数器TIMx_CNT值小于…

直播团队职责

一、内容策划 直播团队的内容策划人员是整个直播活动的核心&#xff0c;他们需要负责策划直播的主题、内容、形式以及时间安排等。同时&#xff0c;他们还需要负责邀请嘉宾、安排活动等&#xff0c;确保直播内容丰富、有趣、有价值。 二、主播管理 主播是直播活动的关键人物…

unity WebGL发布游戏生成WebGL

1.unty Hub中安装WEBGL支持 2.项目平台的切换 color space需要根据项目选择 ColorSpace&#xff0c;是指玩家设置的颜色空间。 伽马颜色空间是历史悠久的标准格式&#xff0c;但线性颜色空间渲染可提供更精确的结果。 具体区别&#xff1a;ColorSpace 3.由于没有自己服务器…

壹[1],Xamarin开发环境配置

1&#xff0c;环境 VS2022 注&#xff1a; 1&#xff0c;本来计划使用AndroidStudio&#xff0c;但是也是一堆莫名的配置让人搞得很神伤&#xff0c;还是回归C#。 2&#xff0c;MAUI操作类似&#xff0c;但是很多错误解来解去&#xff0c;且调试起来很卡。 3&#xff0c;最…

如果你也觉得自己不够聪明,也缺乏才华。。。

​在追求成功的道路上&#xff0c;我们常常自我怀疑&#xff0c;感觉自己不够聪明&#xff0c;缺乏必要的才华。然而&#xff0c;正是这种自我感知&#xff0c;如果处理得当&#xff0c;可以成为我们最大的优势。这篇文章旨在为那些怀疑自己的能力&#xff0c;但依然渴望在工作…

图片热区功能

一、需求描述及效果图 1.需求描述&#xff1a; 根据后端返回的坐标及人员信息&#xff0c;在图片上的相应位置添加图片热区功能&#xff0c;点击可展示出对应的人员信息。 图片可进行缩放 2.示例&#xff1a; &#xff08;定位是随便写的&#xff0c;仅做示例&#xff09; …

Mac用Crossover玩《幻兽帕鲁》手柄不能用怎么办? Mac电脑玩《幻兽帕鲁》怎么连接手柄? 幻兽帕鲁玩家超1900万

2024年首款爆火Steam平台的游戏《幻兽帕鲁》&#xff0c;在使用Crossover后可以用Mac系统玩了&#xff0c;很多玩家喜欢通过手柄玩游戏&#xff0c;它拥有很好的握持体验&#xff0c;长时间玩也不会很累&#xff0c;所以很多《幻兽帕鲁》玩家都喜欢用手柄来操作&#xff0c;很多…

史上最全知识图谱建模实践(下):多元关系架构

在“知识图谱之本体结构与语义解耦——基于OpenSPG的建模实践&#xff08;上&#xff09;”一文中&#xff0c;我们从实体关系设计和概念语义建模2种场景&#xff0c;讲解了基于SPG的知识建模的方法和案例。 本文中&#xff0c;我们将继续讲解多元关系架构场景中的知识建模实践…

基于C/C++的MFC的IDC_MFCEDITBROWSE2控件不显示ico问题记录

打开资源文件 *.rc文件 &#xff0c;在最上方添加 #if !defined(_AFXDLL) #include "afxribbon.rc" // MFC ribbon and control bar resources #endif 如下图所示&#xff1a;

【INTEL(ALTERA)】为什么 F-tile Serial Lite IV FPGA IP 设计示例会失败

说明 由于Intel Agilex 7 FPGA I 系列收发器-SoC 开发套件的时钟控制器 GUI 存在问题&#xff0c;当您需要配置芯片 Si5332 的 OUT1 时钟频率时&#xff0c;您可能会发现 F-tile Serial Lite IV 英特尔 FPGA IP设计示例失败。这是因为此 Si5332 GUI 存在问题;无法准确配置 OUT…

8. Threejs案例-SVG渲染器和WEBGL渲染器对比

8. Threejs案例-SVG渲染器和WEBGL渲染器对比 实现效果 知识点 SVG渲染器 (SVGRenderer) SVGRenderer 被用于使用 SVG 来渲染几何数据&#xff0c;所产生的矢量图形在以下几个方面十分有用&#xff1a; 动画标志 logo 或者图标 icon可交互的 2D 或 3D 图表或图形交互式地图复…