Arduino ESP32当作FTP服务器 访问SD卡文件

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP32当作FTP服务器 访问SD卡文件相关的知识,希望对你有一定的参考价值。

ESP32当作FTP服务器 访问SD卡文件


  • 通过 MobaXterm软件FTP访问ESP32,查看SD卡,并下载和上传文件演示。

该项目原创来源于一位日本的开发者,今天来学习一下,但是也有国内开发者,在此基础上做了一版改进,我将会在下文当中,介绍如何搭建和使用。

访问方式:

  • 程序烧录完成后,串口打印信息
  • 访问方式一:双击我的电脑,打开,在地址栏输入:ftp://esp32:esp32@192.168.0.110,按回车键,进入。具体的IP地址根据开发板串口打印信息来定的,不是我这个示例中的IP地址。
  • 按回车键进入后的页面,可以看到挂载在ESP32 上的SD卡里面的额内容。
  • 访问方式二:MobaXterm软件,


SD卡接线说明


  • 使用的是上面的VSPI这组。(如果接在了HSPI上,会导致开发板无限循环的重启)
ESP32 -----tf卡
VIN-----VCC
GND----GND
D5----CS
D19-----MISO
D23----MOSI
D18----SCK


下载和上传速度

下载和下载速度基本就是250KB/s

程序源码

#include <WiFi.h>
#include <WiFiClient.h>
#include "ESP32FtpServer.h"

const char* ssid = "blablabla..."; //WiFi SSID
const char* password = "blablabla..."; //WiFi Password

FtpServer ftpSrv;   //set #define FTP_DEBUG in ESP32FtpServer.h to see ftp verbose on serial

void setup(void)
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) 
    delay(500);
    Serial.print(".");
  
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  /FTP Setup, ensure SD is started before ftp;  /
  
  if (SD.begin()) 
      Serial.println("SD opened!");
      ftpSrv.begin("esp32","esp32");    //username, password for ftp.  set ports in ESP32FtpServer.h  (default 21, 50009 for PASV)
      


void loop(void)
  ftpSrv.handleFTP();        //make sure in loop you call handleFTP()!!   

  • ESP32FtpServer.cppESP32FtpServer.h代码过长,不在这里贴出,一起和程序源码,以网盘链接分享出来。

资源链接

链接:https://pan.baidu.com/s/1wDq3EM-2tdH2jdbvj8fK7A 
提取码:7kkj

以上是关于Arduino ESP32当作FTP服务器 访问SD卡文件的主要内容,如果未能解决你的问题,请参考以下文章

玩转 ESP32 + Arduino (十三) 通过MQTTs协议上传数据至OneNet云平台

Arduino ESP32 获取网络数据(HTTP GET方式)

Arduino ESP32 获取网络数据(HTTP PUT方式)

Arduino ESP32 SD卡读写实例

Arduino-ESP32开发环境搭建

Arduino-ESP32开发环境搭建