ESP32/ESP8266 MicroPython教程:将文件上传到文件系统-Arduino中文社区 - Powered by Discuz! Archiver

dfrobot 发表于 2019-5-27 14:10

ESP32/ESP8266 MicroPython教程:将文件上传到文件系统

本帖最后由 dfrobot 于 2019-5-24 22:19 编辑

简介
本ESP32 / ESP8266 MicroPython教程主要介绍如何使用ampy工具把电脑里的文件上传到MicroPython文件系统。本教程在ESP8266和ESP32上都进行了测试,这里显示的打印是针对ESP32的测试的。我们默认您已经提前安装好了ampy工具。有关如何在Python中使用pip(https://pypi.org/project/pip/)安装ampy的介绍,请参见这篇此前的教程:ESP32 / ESP8266 MicroPython教程:从文件系统运行脚本。相关过程已在Windows 8操作系统上进行了测试。


步骤
正如接下来我们介绍的那样,使用ampy上传文件的过程非常直接。首先,需要在您选定的文件夹下新建一个包含任意内容的简单文件。在本例中,我们将在文件中写入以下两句话:
This is the first line of content
This is the second line of content
使用.txt后缀保存该文件(并不一定非得使用.txt后缀,但是既然它是文本文件,本例还是使用了这个后缀)。文件名为test.txt。
然后,打开命令行,导航到文件夹。接下来,执行以下命令,并将COM5改为您的ESP8266 / ESP32设备所使用的com端口,即可上传文件。
ampy --port COM5 put test.txt



重要说明:在本文撰写期间,使用我自己的设置,首次执行ampy命令时(比如上传一个文件),命令行中会显示一条错误。之后再执行命令就不会再出现任何错误。如果将ESP8266 / ESP32关闭并重启,那么首次执行命令时还会出现同样的错误,同样在之后就一切正常了。
文件会被上传到MicroPython的文件系统中。请注意,成功执行该命令不会返回任何文本信息,如图1所示。




图1 - 成功上传test.txt文件到MicroPython文件系统。



接下来,我们将连接到MicroPython提示符,确认文件真的位于ESP32 / ESP8266 MicroPython文件系统中。我将使用Putty(https://www.putty.org/)实现交互操作。
连接之后,导入os模块(http://docs.micropython.org/en/latest/library/uos.html?highlight=os#module-uos),并调用该模块的listdir函数(http://docs.micropython.org/en/latest/pyboard/library/uos.html?highlight=os#uos.listdir),该函数会返回当前文件夹下的所有文件。
import os
os.listdir()


如图2所示,我们之前上传的文件也出现在输出列表中。



图2 - 当前文件夹下的文件列表。



最后,使用如下所示的命令读出文件内容。有关使用MicroPython读取文件的详细教程,请参见先前的这篇帖子:ESP32 / ESP8266 MicroPython教程:读取文件。
file = open("test.txt", "r")
file.read()
file.close()



执行上述命令的结果如图3所示。注意,我们一次性读出了所有字节,因此所有内容都打印在了同一行上,包括换行和回车符。上一篇有关读取文件的帖子还提供了读取文件的另一种方式。跟我们期望的一样,我们先前写入文件的内容都显示了出来。




图3 - 读取先前上传的文件。

注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。他写了很多有关ESP32、ESP8266的有用的教程和项目。
查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程汇总贴英文版教程 : ESP32 tutorial



页: [1]
查看完整版本: ESP32/ESP8266 MicroPython教程:将文件上传到文件系统