TuyaOS开发学习笔记(1)——NB-IoT开发搭建环境、编译烧写(MT2625)
一、搭建环境
1.1 官方资料
TuyaOS
1.2 安装VMware

官网下载:https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0
百度网盘:https://pan.baidu.com/s/1oN7H81GV0g6cD9zsydg6vg 提取码:mrn9
阿里云盘:https://www.aliyundrive.com/s/bLRLG49hSJq
1.3 安装Ubuntu

官网下载:https://ubuntu.com/download/desktop
阿里云镜像:http://mirrors.aliyun.com/ubuntu-releases/
百度网盘:https://pan.baidu.com/s/1LzE–l-5k7PLQWhIp-ktBw 提取码:347p
1.3.1 设置网络
在 VMware Workstation 中,点击虚拟机>>设置

然后在网络适配器中,改成NET 模式,点击确定

确保网络连接正常,可以在终端ping一下百度

1.4 安装Visual Studio Code

官网下载:https://code.visualstudio.com
百度网盘:https://pan.baidu.com/s/1R62HT0PVmVzMwOXtCmIQwA 提取码:g9fb
1.4.1 SSH免密钥设置
Linux 开启 SSH 服务器
- 检查SSH是否已安装。
dpkg -l | grep ssh
如果输出中包含"openssh-server"或"ssh"等关键词,表示SSH已安装。如果没有安装,您可以使用以下命令安装SSH:
sudo apt-get install openssh-server
- 启动SSH服务
一旦SSH安装完成,您可以使用以下命令启动SSH服务:
sudo service ssh start
Windows 10/11 默认安装了 SSH 客户端
Windows 主机,可以使用 PowerShell 进行如下设置。
- 假定虚拟机的用户名为:vscode
- 虚拟机的 IP 地址为:192.168.56.105
- 生成 SSH Key。
ssh-keygen -t rsa -b 4096
- 填写虚拟机的用户名及密码(IP 地址和用户名,根据自己的情况做更改)。
$USER_AT_HOST="vscode@192.168.56.105"
3.指明要上传的公钥所在位置。
$PUBKEYPATH="$HOME\.ssh\id_rsa.pub"
- 传到并设置,需要输入服务器用户密码。
$pubKey=(Get-Content "$PUBKEYPATH" | Out-String); ssh "$USER_AT_HOST" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '${pubKey}' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

1.4.2 安装Remote SSH插件
-
在插件市场选择并安装 Remote SSH 插件。



-
设置并连接 SSH,示例中的 IP 地址为 192.168.56.105。


1.5 安装Tuya Wind IDE
-
启动 Visual Studio Code 后,参考下图流程在插件市场搜索并安装 Tuya Wind IDE。

-
按下图箭头顺序所示,打开 Tuya Wind IDE 登录页面,登录的账号和密码为 涂鸦 IoT 开发平台 的账号和密码。
1.6 下载开发框架
登录后,选择 主页 > 新建开发框架。

下载对应的 TuyaOS 开发框架。并且在对应的开发环境下使用。单击 完成,可下载开发包。

二、编译
2.1 创建应用
展开左侧 software/TuyaOS/apps 目录,并在右键单击 apps 目录后选择 Create Project。


2.2 编译应用
-
展开左侧
software/TuyaOS/apps/xxx目录,并在右键单击xxx目录后选择 Build Project。如果路径选择不正确,会在右下角报错提示。

-
选择 Build Project 后,在跳出的文本框内输入编译固件的版本号(格式为 x.x.x)后,按回车键确认。其中需注意,蓝牙 Mesh 和 Beacon 相关应用版本格式为 x.x,其它应用版本格式为 x.x.x。


-
等待 IDE 终端开始自动下载工具链,下载完成后自动编译生成固件产物并告知固件产物路径。

提示错误要加mt2625gl_前缀,因为对于NM1-GL这个平台来说,必须带mt2625gl_这个前缀,否则编译会失败。但 Build Project 脚本没有帮我们添加,这时我们要手动执行编译脚本build_app.sh。
右键 build_app.sh,选择在集成终端打开

执行编译脚本 build_app.sh,第一个参数“apps/xxx/”表示app所在的路径,“mt2625gl_xxx”表示app名称,第三个参数“1.0.0”表示版本号。
./build_app.sh apps/tuyaos_demo_nb_sample mt2625gl_tuyaos_demo_nb_sample 1.0.0

编译成功:

如果提示错误找不到python命令
查看 解决方法:python: not found问题
编译生成固件产物在 software/TuyaOS/vendor/mtk2625_sdk281/mt2625_os/project/mt2625_evb/apps/tuya_alpha/output/mt2625gl_tuyaos_demo_nb_sample/1.0.0

- mt2625gl_flash_download.cfg:下载配置文件
- mt2625gl_tuyaos_demo_nb_sample_qio_1.0.0.bin:QIO 是生产固件, 其中有 bootloader
- mt2625gl_tuyaos_demo_nb_sample_ug_1.0.0.bin:UG 是全量升级固件
可右键下载全部文件到到Windows中

2.3 清除编译内容
./build_app.sh apps/tuyaos_demo_nb_sample mt2625gl_tuyaos_demo_nb_sample 1.0.0 clean
三、烧录
在 pc/tools 目录中提供了相应芯片的烧写工具。右键下载到Windows中。

解压并打开 FlashTool。

- 选择COM口,接UART0的串口
- 打开下载配置文件
mt2625gl_flash_download.cfg,必须跟固件在同一目录下 - 点击Start
- 短按POWER按键开机或RESET按键,开始烧录

烧录完成:

- 串口调试,接UART2的串口

• 由 Leung 写于 2023 年 9 月 2 日
• 参考:Tuya Wind IDE
相关文章:
TuyaOS开发学习笔记(1)——NB-IoT开发搭建环境、编译烧写(MT2625)
一、搭建环境 1.1 官方资料 TuyaOS 1.2 安装VMware 官网下载:https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0 百度网盘:https://pan.baidu.com/s/1oN7H81GV0g6cD9zsydg6vg 提取…...
Css 将div设置透明度,并向上移50px,盖住上面的元素一部分
可以使用CSS中的opacity和position属性来实现。 首先,将div的opacity属性设置为小于1的值,比如0.5,这样就可以设置透明度了。其次,将div的position设置为relative,然后再将它向上移动50px,即可盖住上面的元…...
HTTPS安全通信和SSL Pinning
随着互联网的迅速发展,网络通信安全问题日益凸显。在这一背景下,HTTPS作为一种加密通信协议得到了广泛应用,以保障用户的数据隐私和信息安全。本文将介绍HTTPS的基本原理、发展历程,以及与之相关的中间人攻击和防护方法。 1. HTT…...
PHP自己的框架PDO数据表前缀、alias、model、table、join方法实现(完善篇九--结束)
一、实现功能,数据表前缀、alias、model、table、join方法实现 二、表前缀实现 1、config.php增加表前缀 DB_PEX>fa_,//数据库前缀 2、增加表前缀方法function.php function model($table){$modelnew ModelBase($table,config("DB_PEX"));return $m…...
华为OD:敏感字段加密
题目描述: 给定一个由多个命令字组成的命令字符串: 1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号; 2、命令字之间以一个或多个下划线_进行分割; 3、可以通过两个双引号”"来标识包含下划线…...
IDEA新建SpringBoot项目时启动编译报错:Error:java: 无效的源发行版: 17
文章目录 原因检查解决步骤修改jdk修改SpringBoot版本 原因 出现这种错误的原因可能是: 本机默认使用(编译)的jdk与该项目所使用的jdk版本不同。 jdk版本不适用于这个Idea,很典型的一个例子就是使用的Idea是2020的,而…...
【云原生进阶之PaaS中间件】第一章Redis-2.3.3集群模式
1 集群模式 Redis集群是一个提供在多个Redis节点之间共享数据的程序集。它并不像Redis主从复制模式那样只提供一个master节点提供写服务,而是会提供多个master节点提供写服务,每个master节点中存储的数据都不一样,这些数据通过数据分片的方式被自动分割到不同的master节点上…...
游戏发行商能够提供什么服务?
游戏发行商可以为游戏开发者提供广泛的服务,以帮助他们将游戏成功地引入市场并取得更好的业绩。以下是游戏发行商可能提供的一些服务: 市场营销和宣传:发行商通常具有丰富的市场营销经验,可以制定并执行有效的宣传和营销策略。他们…...
Linux 多进程解决客户端与服务器端通信
写一个服务器端用多进程处理并发,使两个以上的客户端可以同时连接服务器端得到响应。每当接受一个新的连接就fork产生一个子进程,让子进程去处理这个连接,父进程只用来接受连接。 与多线程相比的不同点:多线程如果其中一个线程操…...
Scala的模式匹配
Scala的模式匹配 Scala 中的模式匹配类似于Java 中的 switch 语法:下面是java中switch代码: int i 10 switch (i) {case 10 :System.out.println("10");break; case 20 :System.out.println("20");break; default :System.out.pr…...
HttPClient简介及示例:学习如何与Web服务器进行通信
文章目录 前言一、引入依赖二、使用步骤1.创建被调用者2.创建调用者三、结果被调用者服务:调用者服务: 总结 前言 欢迎来到本篇博客,这是一个关于HttPClient的入门案例的指南。🎉 在今天的网络世界中,与服务器进行数据…...
STS4 New 安装Spring Bean Configuration File
背景介绍 在创建spring项目后,如果想想创建spring bean Configuration的时候,发下菜单没有这个选项,需要通过下载Spring Roo插件可满足该操作。 参考案例 参考地址: STS4 New 菜单没有Spring Bean Configuration File选项_SQZHA…...
Java经典面试题(异或运算)
不爱生姜不吃醋⭐️⭐️⭐️ 🌻如果本文有什么错误的话欢迎在评论区中指正哦💗 🌻看完之后觉得不错的话麻烦动动小手点个赞赞吧👍 🌻与其明天开始,不如现在行动!💪 🌻大家…...
No primary or single unique constructor found for interface java.util.List
1.问题描述 前端 请求的参数 是 query形式, 参数在url中 报错信息: java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List2.解决办法 controller中的 请求方法 参数 加上 RequestParam...
C#关于WebService中File.Exists()处理远程路径的异常记录
目录 前言方案一打开网站对应的程序池的高级设置按下图步骤设置凭据重启网站若方案一未能解决,请继续尝试方案二👇 方案二从控制面板进入到 凭据管理器为windows凭据添加凭据点击**Windows凭据**,并点击**添加Windows凭据**键入远程路径的地址…...
JavaWeb_LeadNews_Day10-Xxljob, Redis实现定时热文章
JavaWeb_LeadNews_Day10-Xxljob, Redis实现定时热文章 xxl-job概述windows部署调度中心docker部署调度中心 xxl-job入门案例xxl-job分片广播热点文章定时计算思路分析具体实现热文章计算定时计算 查询文章接口改造来源Gitee xxl-job概述 windows部署调度中心 运行 xxl-job\do…...
【WebRTC---源码篇】(二:二)视频源VideoSourceBase
作用 这个类继承自VideoSourceInterface<webrtc::VideoFrame>模板类,并且可以处理webrtc::VideoFrame class VideoSourceBase : public VideoSourceInterface<webrtc::VideoFrame> 重要成员变量 struct SinkPair {SinkPair(VideoSinkInterface<webrtc::Vid…...
Linux_8_磁盘存储和文件系统
1 磁盘结构 1.1 设备文件 一切皆文件: open(),read(),write(),close() 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号 major number,标识设备类型 次设备号 minor number,标识同一类型下的不同设备 设备类型:…...
VS + QT 封装带UI界面的DLL
一、创建编译DLL的项目 1.新建Qt Class Liabrary 2.新建项目,选择Qt Widgets Class 3.新建C类,可以在此类里面写算法函数用于调用。 4.下面是添加完Qt窗体类和C类之后的项目截图 5.修改头文件并编译 将uidemo_global.h中的ifdef内容复制到dialog.h上…...
逆向工程-架构真题(二十)
结构化程序设计采用自顶向下、逐步求精及模块化程序设计方法,通过()三种基本控制结构可以构造出任何单入口单出口程序。 顺序、选择和嵌套顺序、分支和循环分支、并发和循环跳转、选择和并发 答案:B 解析: 结构化设…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

