当前位置: 首页 > news >正文

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 服务器

  1. 检查SSH是否已安装。
dpkg -l | grep ssh

如果输出中包含"openssh-server"或"ssh"等关键词,表示SSH已安装。如果没有安装,您可以使用以下命令安装SSH:

sudo apt-get install openssh-server
  1. 启动SSH服务
    一旦SSH安装完成,您可以使用以下命令启动SSH服务:
sudo service ssh start

Windows 10/11 默认安装了 SSH 客户端

Windows 主机,可以使用 PowerShell 进行如下设置。

  • 假定虚拟机的用户名为:vscode
  • 虚拟机的 IP 地址为:192.168.56.105
  1. 生成 SSH Key。
ssh-keygen -t rsa -b 4096
  1. 填写虚拟机的用户名及密码(IP 地址和用户名,根据自己的情况做更改)。
$USER_AT_HOST="vscode@192.168.56.105"

3.指明要上传的公钥所在位置。

$PUBKEYPATH="$HOME\.ssh\id_rsa.pub"
  1. 传到并设置,需要输入服务器用户密码。
$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插件

  1. 在插件市场选择并安装 Remote SSH 插件。


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

1.5 安装Tuya Wind IDE

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

  2. 按下图箭头顺序所示,打开 Tuya Wind IDE 登录页面,登录的账号和密码为 涂鸦 IoT 开发平台 的账号和密码。

1.6 下载开发框架

登录后,选择 主页 > 新建开发框架

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

二、编译

2.1 创建应用

展开左侧 software/TuyaOS/apps 目录,并在右键单击 apps 目录后选择 Create Project

2.2 编译应用

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

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

  3. 等待 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

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

烧录完成:

  1. 串口调试,接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() 设备文件:关联至一个设备驱动程序&#xff0c;进而能够跟与之对应硬件设备进行通信 设备号码: ​ 主设备号 major number,标识设备类型​ 次设备号 minor number,标识同一类型下的不同设备 设备类型:…...

VS + QT 封装带UI界面的DLL

一、创建编译DLL的项目 1.新建Qt Class Liabrary 2.新建项目&#xff0c;选择Qt Widgets Class 3.新建C类&#xff0c;可以在此类里面写算法函数用于调用。 4.下面是添加完Qt窗体类和C类之后的项目截图 5.修改头文件并编译 将uidemo_global.h中的ifdef内容复制到dialog.h上…...

逆向工程-架构真题(二十)

结构化程序设计采用自顶向下、逐步求精及模块化程序设计方法&#xff0c;通过&#xff08;&#xff09;三种基本控制结构可以构造出任何单入口单出口程序。 顺序、选择和嵌套顺序、分支和循环分支、并发和循环跳转、选择和并发 答案&#xff1a;B 解析&#xff1a; 结构化设…...

Zookeeper 入门

第 1 章 Zookeeper 入门 1.1概述 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心的数据&#xff0c;然后接受观察者的注册&#xff0c;一旦这些数据的状态发生变化&#xff0c;Zookeeper就将…...

记录--前端使用a链接下载内容增加loading效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 问题描述&#xff1a;最近工作中出现一个需求&#xff0c;纯前端下载 Excel 数据&#xff0c;并且有的下载内容很多&#xff0c;这时需要给下载增加一个 loading 效果。 代码如下&#xff1a; // util…...

如何获取用户的ip地址

用户的 IP 地址可能会被隐藏或者修改&#xff0c;例如使用代理服务器、VPN 等工具&#xff0c;这样就无法准确获取用户的真实 IP 地址。 除了以上特殊情况&#xff0c;一般情况下 用户访问可能会经过一下链路 &#xff1a; 前端—>nginx—>网关—>服务 。 一般情况下后…...

单片机-控制按键点亮LED灯

1、按键电路图 定义四个按键引脚 1、按键按下 为 输入为低电平 2、按键不按下 IO有上拉电阻&#xff0c;为高电平 // 定义 按键的 管教 sbit KEY1 P3^1; sbit KEY2 P3^0; sbit KEY3 P3^2; sbit KEY4 P3^3; 2、LED灯电路图 LED 输出高电平为亮 // 定义LED灯 管教 sbit LED1…...

微信小程序新版隐私协议弹窗实现最新版

1. 微信小程序又双叒叕更新了 2023.08.22更新&#xff1a; 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明&#xff1a; 在 2023年9月15号之前&#xff0c;在 app.json 中配置 __usePriva…...

GO语言圣经 第五章习题

练习5.1 修改findlinks代码中遍历n.FirstChild链表的部分&#xff0c;将循环调用visit&#xff0c;改成递归调用。 func visit(links []string, n *html.Node) []string {if n nil {return links}if n.Type html.ElementNode && n.Data "a" {for _, a : r…...

用kotlin 开发一个简单的多页面跳转

本文介绍一个简单的安卓应用的页面跳转例子&#xff0c;用的是kotlin。 运行时主页面是一个hello 和Jump 按钮&#xff0c;你按一下jump 按钮就转到 从页面&#xff0c;只是标识从页面。 开始建立一个简单工程&#xff0c;名为hello&#xff0c; 选择的是Empty views Activit…...

记录我的tensorrt 部署yolov8

系统 &#xff1a;ubuntu 18.04 代码 &#xff1a;GitHub - noahmr/yolov5-tensorrt: Real-time object detection with YOLOv5 and TensorRT conda 环境 &#xff1a; GitHub - noahmr/yolov5-tensorrt: Real-time object detection with YOLOv5 and TensorRT cuda : 11.8 …...

什么是用户界面? 优漫动游

什么是用户界面&#xff1f; 用户界面(UI&#xff0c;UserInterface)也称人机界面&#xff0c;是人机交互、操作逻辑和界面表现的整体设计。每一种设计都有其对应的职业角色&#xff0c;其中&#xff0c;人机交互的设计人员叫做用户研究工程师&#xff0c;操作逻辑设计人员叫…...

基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

系统&#xff1a;Macbook M1 镜像版本&#xff1a;mysql:5.7 如果是要查 slave连接不上 master的问题&#xff0c;可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 docker pull mysql:5.7本地数据卷挂载 因为mysql不挂载的话&#xff0c;重启丢失数据&#xff0c;所以在本地创…...

wordpress 装修公司主题/优化网站关键词

2019年全网天猫京东苏宁等平台“618大促”还有两三个月&#xff0c;小编倾情呈上新鲜出炉的2019年“618大促”#红包攻略#!说到红包&#xff0c;它在营销引流上可以为企业拉取新用户、巩固老用户关系以及提升用户的活跃度等等。不少企业公众号正在借助这个电商宝SCRM互动平台的红…...

高端网站建设批发/app推广渠道

在MainServlet中&#xff0c;当初始化resource actions之后&#xff0c;就开始初始化resource code ,这是由以下代码来完成的&#xff1a; if (_log.isDebugEnabled()) { _log.debug("Initialize resource codes"); } try { …...

网站做外链软件/seo网站搭建是什么

模板中使用 v-for&#xff1a; 你也可以提供第二个的参数为键名&#xff1a; 第三个参数为索引&#xff1a; v-for 迭代整数 v-for 也可以循环整数 其他&#xff1a; 1、v-for 还可以循环数组&#xff1a; 2、 3、不仅如此&#xff0c;在迭代属性输出的之前&…...

阿里 网站备案核验单/网站怎么做出来的

下载地址 https://www.consul.io/downloads windows上安装consul 下载完成后解压只有一个consul.exe文件&#xff0c;双击运行&#xff0c;查看版本号信息 开发模式启动 可以通过以下地址访问consul的首页 http://localhost:8500/ui/dc1/services...

如何用html做网站头像/权重查询工具

一直都不对 刚开始想可能是字符类型的错&#xff0c;结果删到最后&#xff0c;发现是{} create table xxx()转载于:https://www.cnblogs.com/bashala/p/4314695.html...

3d标签 wordpress/杭州网络

配置环境&#xff1a;.Net Framework 1.1,Imai8.02,w3Jmail4.3 实现过程&#xff1a; 不同于在Asp中使用Jmail&#xff0c;直接使用 Server.CreateObject("Jmail.Message")就可以了。在.Net环境中&#xff0c;需要进行设置。 1.安装jmail4.3 2.找到jmail.dll&#x…...