【嵌入式】适用于ESP32/ESP8266远程自动烧录工具
文章目录
- 介绍
- 开始使用
- 下载项目
- 开启服务端
- 开始远程烧录
- 后记
介绍
esp_remote_flash_tool 是一款基于 esptool.py 的远程自动烧录工具,支持 ESP32 和 ESP8266。
使用场景
- 基于 ESP-IDF 、ESP8266 NONO SDK、ESP8266 RTOS SDK 进行开发的项目
- 项目代码存储在 Linux 编译机上,Windows 通过 SSH 连接到 Linux 进行开发,且开发板连接在 Windows 开发机上
为什么选择这样的开发模式?
-
Windows 下编译的效率太低,完整编译一个程序大概需要 5-6 分钟,而同样的项目 Linux 仅需要 1 分钟,所以在 Linux 下进行编译开发可以大大提高效率。
-
但是,直接在 Linux 下开发可能遇到一些问题,比如:
- Linux 开发机是服务器,主机在服务器机房中,无法通过串口连接开发板进行烧录和调试
- Linux下缺少好用的串口调试工具,而且如果遇到串口输出中文的情况,还可能出现乱码的问题
- Linux缺少一些常用的软件,例如公司要求使用的办公软件
-
权衡之后,最佳开发方式将项目代码存储在 Linux 编译机上,Windows 通过 SSH 连接到 Linux 进行开发,且开发板连接在 Windows 开发机上,负责烧录和调试。
问题与解决
因为开发板连接在 Windows 开发机上,每次修改完代码想要验证程序时,都需要经过一系列步骤:
- 编译程序
- 将编译后的程序复制到开发机
- 利用烧录软件将程序烧录到开发板
- 打开串口调试软件进行调试
esp_remote_flash_tool 将这些步骤进行简化,只需要执行一行命令,就可以完成上述操作,提高了开发时验证代码的效率。
开始使用
项目地址
Github:https://github.com/CloudSir/esp_remote_flash_tool/
Gitee:https://gitee.com/Cloud-Sir/esp_remote_flash_tool
下载项目
# 使用Github
git clone https://github.com/CloudSir/esp_remote_flash_tool# 使用Gitee
git clone https://gitee.com/Cloud-Sir/esp_remote_flash_tool
开启服务端
-
复制服务端程序:将 esp_remote_flash_tool 文件夹下的
server复制到 Windows 开发机上 -
下载依赖:进入 Windows 开发机的
server目录,执行
pip install -r requirements.txt
- 运行服务端程序:在 Windows 开发机的
server目录下执行
python main.py
复制 running on 后面的服务器地址。
开始远程烧录
-
复制远程烧录客户端程序:将 esp_remote_flash_tool 文件夹下的
client复制到 Linux 编译机上(与你的ESP项目文件夹同级文件夹下) -
下载依赖:进入 Linux 编译机的
client目录,执行
pip install -r requirements.txt
-
根据自己的项目的配置修改
client目录下的config.yaml-
server_url: 刚才复制的服务器的文件地址
-
com_port:Windows 开发机下连接 ESP8266/ESP32 的串口号,如果 Winsows下只连接了一个串口,可以设置为
auto,此时会自动选择该串口 -
basic_options:esptool.py 的基本选项,与 esptool.py 的选项相同,具体请参考 esptool.py 的文档
-
flash_options:esptool.py 的 flash 选项,与 esptool.py 的选项相同,具体请参考 esptool.py 的文档
-
firmware_list:要烧录的固件列表,是一个键值对类型,键为固件烧录地址,值为固件文件的绝对路径地址,例如:
firmware_list:0x0000: 'firmware/bootloader.bin'0x1000: 'firmware/app.bin'
-
-
你的项目编译成功后,可以在 Linux 编译机下调用
esp_remote_flash_tool进行远程烧录(确保 Windows 开发机的服务器端程序已运行,且 Windows 开发机和 Linux 编译机在同一局域网下)
# 确保 client 文件夹和项目文件夹在同一目录下,且当前目录是你的项目根目录# 仅烧录
python ../client/main.py# 编译并烧录(使用 make 构建时)
make && python../client/main.py# 编译并烧录(使用 ninja 构建时)
ninja && python../client/main.py# 编译并烧录(使用 idf.py 时)
idf.py build && python../client/main.py
后记
esp_remote_flash_tool 还处于开发阶段,可能还有很多不足之处,起初只是为了方便自己开发 ESP8266 时烧录程序,如果你对这个项目感兴趣,欢迎提 pull request 或 issue,大家一起完善这个工具。
相关文章:
【嵌入式】适用于ESP32/ESP8266远程自动烧录工具
文章目录 介绍开始使用下载项目开启服务端开始远程烧录 后记 介绍 esp_remote_flash_tool 是一款基于 esptool.py 的远程自动烧录工具,支持 ESP32 和 ESP8266。 使用场景 基于 ESP-IDF 、ESP8266 NONO SDK、ESP8266 RTOS SDK 进行开发的项目项目代码存储在 Linux…...
服务器遭受攻击如何处理(记录排查)
本文的重点是介绍如何鉴别安全事件以及保护现场的方法,以确保服务器负责人能够在第一时间对安全攻击做出反应,并在最短时间内抵御攻击或减少攻击所带来的影响。 在服务器遭遇疑似安全事件时,通常可以从账号、进程、网络和日志四个主要方面进…...
分享81个工作总结PPT,总有一款适合您
分享81个工作总结PPT,总有一款适合您 PPT下载链接:https://pan.baidu.com/s/13hyrlZo2GhRoQjI-6z31-w?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知识付…...
什么是DITA?从百度的回答说起
▲ 搜索“大龙谈智能内容”关注GongZongHao▲ 什么是DITA? 把这个问题输入百度,获得以下回答: DITA 是“Darwin Information Typing Architecture”(达尔文信息类型化体系结构)的缩写,它是IBM 公司为OASIS 所支持…...
线扫相机DALSA软件开发套件有哪些
Win10和Win7系统完整SDK目录截图: Sapera Configuration 缓存与内存管理,以及通信端口配置工具,部分功能等效于Detection(查找相机)内的Settings。 Sapera Log Viewer 打开Log Viewer后会显示之前发生过的所有与Sapera LT软件有关的运行信息…...
Scala集合操作
1 集合简介 Scala 中拥有多种集合类型,主要分为可变的和不可变的集合两大类: 可变集合: 可以被修改。即可以更改,添加,删除集合中的元素; 不可变集合类:不能被修改。对集合执行更改,…...
SQL备忘--特殊状态“未知“以及“空值NULL“的判断
一、新逻辑状态:未知 对于大多数其他语言的逻辑判断,一般只有两种结果:真(TURE)或假(FALSE)但在SQL中,还会有第三种判断结果:未知(UNKNOWN),表示无法判断出真或者假。 未知状态会影响传统逻辑运算&#x…...
《Pytorch新手入门》第一节-认识Tensor
《Pytorch新手入门》第一节-认识Tensor 一、认识Tensor1.1 Tensor定义1.2 Tensor运算操作1.3 Tensor与numpy转换 参考《深度学习框架PyTorch:入门与实践_陈云(著)》 一、认识Tensor 1.1 Tensor定义 Tensor 是 PyTorch 中重要的数据结构,可认为是一个高…...
【JAVA学习笔记】55 - 集合-Map接口、HashMap类、HashTable类、Properties类、TreeMap类(难点)
项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/map_ Map接口 一、Map接口的特点(难点) 难点在于对Node和Entry和EntrySet的关系 注意:这里讲的是JDK8的Map接口特点 Map java 1) Map与Collect…...
Pytorch图像模型转ONNX后出现色偏问题
本篇记录一次从Pytorch图像处理模型转换成ONNX模型之后,在推理过程中出现了明显色偏问题的解决过程。 问题描述:原始pytorch模型推理正常,通过torch.onnx.export()函数转换成onnx之后,推理时出现了比较明显的颜色偏差。 原始模型…...
插值表达式 {{}}
前言 持续学习总结输出中,今天分享的是插值表达式 {{}} Vue插值表达式是一种Vue的模板语法,我们可以在模板中动态地用插值表达式渲染出Vue提供的数据绑定到视图中。插值表达式使用双大括号{{ }}将表达式包裹起来。 1.作用: 利用表达式进行…...
白雪公主
前言 #define 皇后 王后 在很久很久以前,有一个国王,由于王后难产致死,导致生下的孩子没母,由于缺爱,变的非常的刻薄 由于公主过于刻薄,以至于见到她的人都面色煞白感到空中飘雪 37C 的嘴怎能说出如此刻薄的话语。为了…...
宏观角度认识递归之合并两个有序链表
21. 合并两个有序链表 - 力扣(LeetCode) 依旧是利用宏观角度来看待问题,其中最主要的就是要找到重复的子问题; 题目中要求把两个有序链表进行合并,同时不能够创建新的节点,并返回链表的起始点:因…...
Leetcode-509 斐波那契数列
使用循环 class Solution {public int fib(int n) {if(n 0){return 0;}if(n 1){return 1;}int res 0;int pre1 1;int pre2 0;for(int i 2; i < n; i){res pre1 pre2;pre2 pre1;pre1 res;}return res;} }使用HashMap class Solution {private Map<Integer,Int…...
解密 docker 容器内 DNS 解析原理
背景 这几天在使用 docker 中,碰到了在容器中 DNS 解析的一些问题。故花些时间弄清了原理,写此文章分享。 1. docker run 命令启动的容器 以启动一个 busybox 容器为例: rootubuntu20:~# docker run -itd --name u1 busybox 63b59ca8aeac…...
故障诊断模型 | Maltab实现SVM支持向量机的故障诊断
效果一览 文章概述 故障诊断模型 | Maltab实现SVM支持向量机的故障诊断 模型描述 Chinese: Options:可用的选项即表示的涵义如下 -s svm类型:SVM设置类型(默认0) 0 – C-SVC 1 --v-SVC 2 – 一类SVM 3 – e -SVR 4 – v-SVR -t 核函数类型:核函…...
开源的网站数据分析统计平台——Matomo
Matomo 文章目录 Matomo前言一、环境准备1. 整体安装流程2.安装PHP 7.3.303.nginx配置4.安装matomo4.1 访问安装页面 http://192.168.10.45:8088/index.php4.2 连接数据库4.3 设置管理员账号4.4 生成js跟踪代码4.5 安装完成4.6 警告修改4.7 刷新页面,就可以看到登陆…...
linux入门到地狱
linux—001入门 IT圈必备(前端工作者用的比较少) 老旧电脑跑linux不容易卡 我代码没保存windows闪退,僵停(vs2019卡掉线),重启更新,占用cpu内存服务报错pip各种bug 出来生态环境友好其他的全是bug(bug时间成本超过了windows快捷友好生态) 那就说明wind…...
架构”4+1“视图
1995年Kruchten提出了著名的“41”视图,用来描述软件系统的架构。在“41”视图中,(物理视图 )用来描述系统软硬件之间的映射关系,这个视图往往(系统工程人员)最为关注;(逻…...
『精』Vue 组件如何模块化抽离Props
『精』Vue 组件如何模块化抽离Props 文章目录 『精』Vue 组件如何模块化抽离Props一、为什么要抽离Props二、选项式API方式抽离三、组合式API方式抽离3.1 TypeScript类型方式3.2 文件分离方式3.3 对文件分离方式优化 参考资料💘推荐博文🍗 一、为什么要抽…...
Chrome密码一键提取:3分钟找回所有浏览器保存的密码
Chrome密码一键提取:3分钟找回所有浏览器保存的密码 【免费下载链接】chromepass Get all passwords stored by Chrome on WINDOWS. 项目地址: https://gitcode.com/gh_mirrors/chr/chromepass 你是否曾经因为忘记某个重要网站的登录密码而感到焦虑ÿ…...
高效突破语言壁垒:KISS Translator的全场景翻译解决方案
高效突破语言壁垒:KISS Translator的全场景翻译解决方案 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.c…...
实测分享:Claude+万象熔炉组合,抽象概念也能变成具体画面
实测分享:Claude万象熔炉组合,抽象概念也能变成具体画面 你有没有过这样的体验?脑子里突然冒出一个绝妙的画面,可能是昨晚梦里的一个片段,也可能是读到某段文字时脑海中浮现的场景。你想把它画下来,但拿起…...
音乐标签编辑器:让本地音乐元数据管理效率提升90%的开源工具
音乐标签编辑器:让本地音乐元数据管理效率提升90%的开源工具 【免费下载链接】music-tag-web 音乐标签编辑器,可编辑本地音乐文件的元数据(Editable local music file metadata.) 项目地址: https://gitcode.com/gh_mirrors/mu/…...
从原理到实战:位运算巧解最小码距(附完整代码)
1. 什么是码距?从生活场景理解概念 第一次听到"码距"这个词时,我脑海里浮现的是超市货架上相似商品间的距离。后来才发现,在计算机世界里,它描述的是两个编码之间的差异程度。举个生活中的例子:假设我们用5…...
GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解
GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解 1. 模型介绍 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专门针对图像内容识别、场景描述和目标问答等任务进行了优化。这个模型特别擅长处理中文视觉理解任务&…...
bilibili-api完全指南:评论数据爬取的4个突破式解决方案
bilibili-api完全指南:评论数据爬取的4个突破式解决方案 【免费下载链接】bilibili-api 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。原仓库地址:https://github.com/MoyuScript/bilibili-api 项目地址: https://gitcode.com/gh_mi…...
XposedRimetHelper:突破地理限制的系统级定位解决方案
XposedRimetHelper:突破地理限制的系统级定位解决方案 【免费下载链接】XposedRimetHelper Xposed 钉钉辅助模块,暂时实现模拟位置。 项目地址: https://gitcode.com/gh_mirrors/xp/XposedRimetHelper 一、移动办公的地理枷锁:企业考勤…...
Visio高效绘制神经网络卷积层:从基础到三维呈现
1. Visio绘制神经网络卷积层的入门指南 第一次用Visio画神经网络结构时,我盯着满屏的工具栏发懵——这玩意儿比Photoshop的图层还复杂。但摸索半天后发现,只要掌握几个核心功能,画卷积层其实比用PPT简单十倍。先说说最基础的形状选择…...
效率倍增:基于快马平台集成最新openclaw构建自动化采集工具
最近在做一个数据采集项目时,发现手动写爬虫实在太费时间了。每次都要重复处理请求头、代理设置、数据清洗这些基础工作,效率特别低。后来发现了openclaw这个工具包的新版本,正好结合InsCode(快马)平台快速搭建了一个自动化采集工具ÿ…...
