mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
97 lines
2.4 KiB
C++
97 lines
2.4 KiB
C++
/*
|
|
* FtpServer esp8266 and esp32 with SD
|
|
*
|
|
* AUTHOR: Renzo Mischianti
|
|
*
|
|
* https://www.mischianti.org/2020/02/08/ftp-server-on-esp8266-and-esp32
|
|
*
|
|
*/
|
|
|
|
#include <WiFi.h>
|
|
#include "SD.h"
|
|
|
|
#include <SimpleFTPServer.h>
|
|
|
|
const char* ssid = "<YOUR-SSID>";
|
|
const char* password = "<YOUR-PASSWD>";
|
|
|
|
|
|
FtpServer ftpSrv; //set #define FTP_DEBUG in ESP8266FtpServer.h to see ftp verbose on serial
|
|
|
|
void _callback(FtpOperation ftpOperation, unsigned int freeSpace, unsigned int totalSpace){
|
|
Serial.print(">>>>>>>>>>>>>>> _callback " );
|
|
Serial.print(ftpOperation);
|
|
/* FTP_CONNECT,
|
|
* FTP_DISCONNECT,
|
|
* FTP_FREE_SPACE_CHANGE
|
|
*/
|
|
Serial.print(" ");
|
|
Serial.print(freeSpace);
|
|
Serial.print(" ");
|
|
Serial.println(totalSpace);
|
|
|
|
// freeSpace : totalSpace = x : 360
|
|
|
|
if (ftpOperation == FTP_CONNECT) Serial.println(F("CONNECTED"));
|
|
if (ftpOperation == FTP_DISCONNECT) Serial.println(F("DISCONNECTED"));
|
|
};
|
|
void _transferCallback(FtpTransferOperation ftpOperation, const char* name, unsigned int transferredSize){
|
|
Serial.print(">>>>>>>>>>>>>>> _transferCallback " );
|
|
Serial.print(ftpOperation);
|
|
/* FTP_UPLOAD_START = 0,
|
|
* FTP_UPLOAD = 1,
|
|
*
|
|
* FTP_DOWNLOAD_START = 2,
|
|
* FTP_DOWNLOAD = 3,
|
|
*
|
|
* FTP_TRANSFER_STOP = 4,
|
|
* FTP_DOWNLOAD_STOP = 4,
|
|
* FTP_UPLOAD_STOP = 4,
|
|
*
|
|
* FTP_TRANSFER_ERROR = 5,
|
|
* FTP_DOWNLOAD_ERROR = 5,
|
|
* FTP_UPLOAD_ERROR = 5
|
|
*/
|
|
Serial.print(" ");
|
|
Serial.print(name);
|
|
Serial.print(" ");
|
|
Serial.println(transferredSize);
|
|
};
|
|
|
|
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 SPIFFS is started before ftp; /////////
|
|
|
|
/////FTP Setup, ensure SPIFFS is started before ftp; /////////
|
|
SPI.begin(14, 12, 15, 13); //SCK, MISO, MOSI,SS
|
|
|
|
if (SD.begin(13, SPI)) {
|
|
Serial.println("SD opened!");
|
|
|
|
ftpSrv.setCallback(_callback);
|
|
ftpSrv.setTransferCallback(_transferCallback);
|
|
|
|
ftpSrv.begin("esp8266","esp8266"); //username, password for ftp. (default 21, 50009 for PASV)
|
|
}
|
|
}
|
|
void loop(void){
|
|
ftpSrv.handleFTP(); //make sure in loop you call handleFTP()!!
|
|
// server.handleClient(); //example if running a webserver you still need to call .handleClient();
|
|
|
|
}
|