1. 简介

在《用MicroPython开发ESP32-用Thonny烧写固件》和《用MicroPython开发ESP32-用Thonny写程序》两篇文章中我们初学习了怎样用Thonny在ESP32上烧写MicroPython固件,然后用Thonny为ESP32开发MicroPython程序。

从上面的文章中我们知道,可以用Thonny将Python程序写到ESP32开发板中,Python程序文件其实就是文本文件,只不过扩展名不是.txt而是.py,用任何文本编辑器都可以打开。但是在有些情况下我们还需要将其他格式的文件传到ESP32板子上,比如我们要显示图像时就需要先将图像文件传到ESP32板子上,这时用Thonny是不行的。我们可以借助其他一些辅助工具来实现文件传输。下面我们介绍在Win10上使用工具ampy向ESP32传输文件。

ampy的github仓库:

https://github.com/scientifichackers/ampy

如果github访问太慢可以看gitee仓库:

https://gitee.com/mirrors_scientifichackers/ampy

  • ampy简介

Ampy是一个简单的命令行工具,可以通过串口在MicroPython板子上操作文件和运行代码。使用ampy您可以将文件从计算机发送到板子的文件系统,或将文件从板子下载到计算机,也可以将Python脚本发送到要执行的板子上。

请注意,ampy的设计旨在简单,不支持高级交互,如通过Shell或终端向板子发送输入。查看其他MicroPython工具,如rshell或mpfshell,了解与板子的更高级交互。

Ampy可以在Windows、Linux和Mac OSX系统下运行。

2. Win10安装ampy

ampy需要与Python 2.7.x或3.x一起使用,并且可以从Python的包索引轻松安装它。

2.1 安装Python

  • 从微软应用商店安装Python

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_github

  • 安装完成后再命令行窗口进行测试

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_ESP32_02

 

在开始菜单里也能看到Python的启动图标。

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_Python_03

 

2.2 安装ampy

  • 查看Python 包管理工具pip

pip --version

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_环境变量_04

 

  • 用pip安装ampy

pip install adafruit-ampy

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_ESP32_05

 

连接超时,解决方法:

此时可以修改镜像源,使用清华大学开源软件镜像站进行安装。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple adafruit-ampy

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_ESP32_06

 

下载的文件安装在目录

C:\Users\admin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_python_07

 

测试一下:

C:\Users\admin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts\ampy --help

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_环境变量_08

 

太不方便了,需要将此目录添加到环境变量的PATH路径中。

  • 添加环境变量

修改系统环境变量Path

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_环境变量_09

 

选择系统环境变量Path,点击“编辑”,在Path变量值的最后打一个分号;然后将下面的路径复制到后面:

C:\Users\admin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts\

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_Python_10

 

确定。

重新开一个命令行窗口,输入:

ampy –help

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_环境变量_11

 

这样就简单了。

看看帮助,了解一下ampy的功能,下面我们只用到了将文件传送到ESP32板子上的功能.

3. 传送图像文件到ESP32开发板

3.1 查串口号

在《用MicroPython开发ESP32- 用Thonny写程序》

一文中我们已经知道了Win10连接ESP32开发板的串口号:

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_python_12

 

3.2 向esp32传文件

  • 关闭其他占用COM3的应用

如果Thonny开着,先断开它:运行 > 断开。

  • 文件路径

我们要传的是一个图像文件test128x160.bmp,全路径:

E:\ct\ESP32+micropython\examples\MicroPython-ST7735-master\test128x160.bmp

  • 传文件

ampy --port COM3 put E:\ct\ESP32+micropython\examples\MicroPython-ST7735-master\test128x160.bmp

稍等一会儿,在Thonny中点击STOP按钮回复连接,查看文件:

ESP 32 WIFI 传出去的数据包顺序错误 esp32传输文件_github_13

 

  • 删除文件命令

ampy --port COM3 rm xxx.xxxy