• Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language
    C++
  • License
    Other
  • Created over 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simple FTP server for Arduino, ArduinoSAMD WiFiNINA, esp8266, esp32, stm32 and Raspberry Pi Pico W

SimpleFTPServer

Instruction on FTP server on esp8266 and esp32 Simple FTP Server library now with support for Wio Terminal and SD

Simple FTP Server for

  • Raspberry Pi Pico W (Flash: LittleFS) (To test SD and SdFat)
  • esp8266 (Flash: SPIFFs, LittleFS. SD: SD, SdFat 2)
  • esp32 (SPIFFS, LITTLEFS, FFAT, SD: SD, SdFat)
  • stm32 (SdFat, SPI flash)
  • Arduino (SD with 8.3 file format, SD: SD, SdFat 2)
  • Wio Terminal (SdFat 2, Seed SD, and native FAT)

Changelog

  • 2023-10-07 2.1.7 Fix ESP32 rename on SD (thanks @scuba-hacker) #44
  • 2023-02-02 2.1.6 Fix esp8266 Ethernet (w5x00) issue and explain solution for ESP32 Ethernet (w5x00), add new Networks management
  • 2023-01-13 2.1.5 Fix SPIFM external SPI Flash date management (add SPIFM esp32 example)
  • 2022-09-21 2.1.4 Add support for Raspberry Pi Pico W and rp2040 boards, Fix SD card config
  • 2022-09-20 2.1.3 Soft AP IP management, more disconnect event and SD_MCC
  • 2022-05-21 2.1.2 Fix SD path (#19)
  • 2022-05-21 2.1.1 Minor fix
  • 2022-03-30 2.1.0 Add UTF8 support and enabled It by default (Thanks to @plaber)
  • 2022-03-30 2.0.0 Complete support for STM32 with SD and SPI Flash minor bux fix and HELP command support
  • 2022-03-17 1.3.0 Fix enc28j60 and w5500 support and restructuring for local settings
  • 2022-02-25 1.2.1 Fix anonymous user begin and fix SPIFFS wrong display
  • 2022-02-22 1.2.0 Add anonymous user and implement correct RFC (#9 now work correctly with File Explorer)
  • 2022-02-01 1.1.1 Add workaround to start FTP server before connection, add end and setLocalIP method.

When I develop a new solution I'd like to divide the application in layer, and so I'd like focus my attention in only one aspect at time.

In detail I separate the REST layer (written inside the microcontroller) and the Front-End (written in Angular, React/Redux or vanilla JS), so I'd like to upload new web interface directly to the microcontroller via FTP.

For static information (Web pages for examples), that not change frequently, esp8266 or esp32 have internal SPIFFS (SPI Flash File System) and you can upload data via Arduino IDE as explained in the article "WeMos D1 mini (esp8266), integrated SPIFFS Filesystem" for esp8266 or "ESP32: integrated SPIFFS FileSystem" for esp32 or with LittleFS "WeMos D1 mini (esp8266), integrated LittleFS Filesystem" but for fast operation and future support It's usefully use FTP.

/*
 * FtpServer esp8266 and esp32 with SPIFFS
 *
 * AUTHOR:  Renzo Mischianti
 *
 * https://www.mischianti.org/2020/02/08/ftp-server-on-esp8266-and-esp32
 *
 */

#ifdef ESP8266
#include <ESP8266WiFi.h>
#elif defined ESP32
#include <WiFi.h>
#include "SPIFFS.h"
#endif

#include <SimpleFTPServer.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASS";


FtpServer ftpSrv;   //set #define FTP_DEBUG in ESP8266FtpServer.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 SPIFFS is started before ftp;  /////////
  
  /////FTP Setup, ensure SPIFFS is started before ftp;  /////////
#ifdef ESP32       //esp32 we send true to format spiffs if cannot mount
  if (SPIFFS.begin(true)) {
#elif defined ESP8266
  if (SPIFFS.begin()) {
#endif
      Serial.println("SPIFFS opened!");
      ftpSrv.begin("esp8266","esp8266");    //username, password for ftp.  set ports in ESP8266FtpServer.h  (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();
 
}

https://downloads.arduino.cc/libraries/logs/github.com/xreef/SimpleFTPServer/

More Repositories

1

LoRa_E32_Series_Library

Arduino LoRa EBYTE E32 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards). sx1278/sx1276
C++
349
star
2

PCF8574_library

PCF8574 library. i2c digital expander for Arduino, Raspberry Pi Pico and rp2040 boards, esp32, SMT32 and ESP8266. Can read write digital values with only 2 wire. Very simple to use and encoder support.
C++
209
star
3

EByte_LoRa_E22_Series_Library

Arduino LoRa EBYTE E22 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards).. sx1262/sx1268
C++
101
star
4

EByte_LoRa_E220_Series_Library

Arduino LoRa EBYTE E220 LLCC68 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards)..
C++
83
star
5

EMailSender

Arduino, esp32, Esp8266 EMailSender with Arduino IDE, simple library to send email via smtp with attachments.
C++
74
star
6

MKS_WIFI_upgrade_with_BeePrint_web_interface

Firmware for MKS WiFi module from Makerbase with BeePrint Web Interface, tested with Flying Bear Ghost 4/5/6 Reborn Flsun
G-code
69
star
7

PCF8575_library

i2c 16bits digital expander with i2c digital expander for Arduino, Raspberry Pi Pico and rp2040 boards, esp32, SMT32 and ESP8266. Can read write digital values with only 2 wire. Very simple and encoder support. Uncommet NOT_SEQUENTIAL_PINOUT define to have pins like datasheet and not sequential one.
C++
49
star
8

ABB_Aurora_Solar_Inverter_Library

Arduino, esp32 and esp8266 library for ABB (ex PowerOne) Aurora Inverter, implement a full methods to retrieve data from the Inverter via RS-485
C
28
star
9

PCF8591_library

Library to use pcf8591 i2c analog IC with Arduino, Raspberry Pi Pico and rp2040 boards, esp32, SMT32 and ESP8266. Can read analog value and write analog value with only 2 wire.
C++
27
star
10

DHT12_sensor_library

DHT12 complete library (Original DHT clone library with same command and some addiction). I2c and OneWire support, connection schema of Arduino UNO, esp32 and esp8266 with examples.
C++
24
star
11

BatteryCapacityTesterArduinoNANO

Battery tester with arduino, with thermistor to check temperature of power resistance and battery. On version 0.2 now It's possible to select a battery type.
C++
22
star
12

FileToArray

A simple tool used in esp32-cam also, that convert a file in an array to use programmatically, for Arduino esp8266 and esp32
C
17
star
13

EByte_LoRa_E220_micropython_library

MicroPython LoRa EBYTE E220 LLCC68 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards).
Python
17
star
14

ArduinoOTA_reusable_custom_web_page

Arduino OTA: simple and beautiful reusable custom web page with progress and theme
HTML
16
star
15

Aurora_Web_Invert_Monitor

Here a full Web application hosted in a esp8266 to retrieve and manage production data of the solar inverter ABB (ex Power One now Fimer) Aurora.
C++
14
star
16

WebServer-Esp8266-ESP32-Tutorial

Some examples from my little tutorial to learn how to manage a complete web server via esp8266 esp32 or other arduino like device.
CSS
11
star
17

EByte-LoRa-Manager-React-Redux-Web-Front-End

The front end for EByte Lora E32 E22 devices. (React, TypeScript, Redux, Redux Logic, WebSocket)
TypeScript
10
star
18

ATtinyProgrammerBoardArduinoAsISP

ATtiny programmer board for use ArduinoUNO as ISP
HTML
9
star
19

EByte_LoRa_E22_python_raspberrypi_library

RaspberryPi LoRa EBYTE E22 device library complete and tested. sx1262/sx1268
Python
8
star
20

Thermistor_library

Thermistor very simple but complete and configurable library for thermistor.
C++
8
star
21

EByte_LoRa_E22_micropython_library

MicroPython LoRa EBYTE E22 device library complete and tested with Arduino SAMD, esp8266, esp32, Raspberry, rp2040 and STM32. sx1262/sx1268
Python
8
star
22

beeprint_3d_printer_web_interface

The BeePrint web interface was created as Web View of MKS WiFi custom firmware. Developed in React Redux (ReduxLogic)
JavaScript
8
star
23

FlyingBear-Ghost-5-enclosure-cover-3D-printed

Here my STL 3D printing file to make the Flyingbear Ghost 5 enclousure
7
star
24

esp32-cam_camera_webserver_enhanced

Firmware for esp32-cam to make the most of it with BeePrint for MKS WiFi
C
7
star
25

WebSocket-Esp8266-ESP32-Tutorial

Here the code of the tutorial with esp32 and esp8266 about Web-socket management
C++
6
star
26

3D-printed-socket-and-adapter-for-microcontroller

3D printed socket to put on breadboard or create a PCB for microcontroller like esp8266 or esp32
6
star
27

EByte_LoRa_E32_micropython_library

This library implements the EBYTE LoRa E32 Series for MicroPython.
Python
6
star
28

EByte_RF_E70_Series_Library

Arduino RF EBYTE E70 CC1310 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards)..
C++
5
star
29

EByte-LoRa-Manager-esp8266-Gateway

A simple LoRa gateway that put all received message in a web socket server, with a complete web-based configuration interface.
C++
5
star
30

EByte_LoRa_E220_python_raspberrypi_library

Python
5
star
31

PCF8574_micropython_library

MicroPython library for pcf8574 an i2c digital expander for Arduino, esp32, SMT32 and ESP8266. Can read write digital values with only 2 wire.
Python
5
star
32

LoRa-refill-and-water-level-tank-Master

Here the server part of LoRa water level control: with this part you can control the pump and with OLED display you can chose the action, the client part check the level of the tank.
C
5
star
33

JS-Vanilla-and-React-temperature-humidity

JavaScript
4
star
34

EByte_LoRa_E32_python_raspberrypi_library

Raspberry Pi LoRa EBYTE E32 device library complete and tested. sx1278/sx1276
Python
4
star
35

3DPrintingFiles

4
star
36

ArduinoCNCSchieldControl

A simple program to control CNC Shield to calculate step per millimeter and move/test axis movement
Makefile
4
star
37

alexa-skill-manage-relay-nodejs

Code for tutorial "AWS Alexa Smart Home Skill"
C++
3
star
38

3D-Printed-modular-arm-and-components

3D Printed modular arm and components: various components to be put together to compose various structures and objects
3
star
39

LoRa-refill-and-water-level-tank-Client

Here the client part of LoRa water level control: with this part you check the level of the tank and send the status to the client.
C++
3
star
40

EByte_LoRa_E32_circuitpython_library

This library implements the EBYTE LoRa E32 Series for CircuitPython.
Python
2
star
41

dynamodb-tutorial-examples-iot

Here my set of examples on DynamoDB with Amazon AWS JavaScript SDK v2 and v3
JavaScript
2
star
42

EByte_LoRa_E220_circuitpython_library

CircuitPython LoRa EBYTE E220 LLCC68 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards).
Python
2
star
43

PCF8591_micropython_library

MicroPython Library to use pcf8591 i2c analog IC with Arduino, Raspberry Pi Pico and rp2040 boards, esp32, SMT32 and ESP8266. Can read analog value and write analog value with only 2 wire.
Python
2
star
44

Generic-3D-printed-components

A collection of 3D printed components used in a lot of projects.
1
star
45

xreef

Hi, I'm Renzo Mischianti, come and visit me on my blog www.mischianti.org
1
star
46

EByte-LoRa-Manager-esp32-Gateway

A simple LoRa gateway that put all received message in a web socket server, with a complete web-based configuration interface.
C++
1
star
47

WormRedo

Simple pure java worm games.
Java
1
star
48

CNC-Cyclone-PCB-factotory-upgrade

1
star