Вообщем сколько библиотек не перепробовал, не могу подключить, чтобы через FTP клиент можно было наблюдать SD карту. В интернете есть китайский ролик, как на компьютере именно сд карта открывается. На флеш память без проблем записываю и стираю с нее. Блин, как правильно сделать? На какую библиотеку заменить SPIFFS (не важно, хоть Little FS), чтобы открывалась сд карта? Или что добавить в код?
выложу код (не обращайте внимание на OLDE, для меньшего отвлечения, я пока строки удалил)
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266FtpServer.h>
#include <GyverOLED.h>
#include <SD.h>
const char* ssid = "SSS";
const char* password = "123";
const uint8_t csPin = SS; // pin SD shield
FtpServer ftpSrv; //set #define FTP_DEBUG in ESP8266FtpServer.h to see ftp verbose on serial
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled; // 1306 подключать к пинам D1 (GPIO5,SCL) и D2 (GPIO4,SDA)
void setup() {
Serial.begin(9600);
SPIFFS.begin();
WiFi.begin(ssid, password);
Serial.println("");
if(!SD.begin(csPin)) {
Serial.println("Error initializing SD card");
return;
}
SD.begin(csPin);
Serial.println("SD Card is avalible...");
delay(2000);
// 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());
if (SPIFFS.begin()) {
Serial.println("SPIFFS opened!");
ftpSrv.begin("ftp","ftp"); //username, password for ftp. set ports in ESP8266FtpServer.h (default 21, 50009 for PASV)
}
}
void loop() {
ftpSrv.handleFTP(); //make sure in loop you call handleFTP()!!
}
Этот пример кода нормально соединяет с FTP клиентом, нормально передает любые файлы во флеш, но как сделать так, чтобы каталог сд карты открылся - ума не приложу. СД карта рабочая, файлы в есп-ишке читает и списком выдает по этому коду:
File dirSD = SD.open("/"); // Открытие корневой директории
// Проверка, удалось ли открыть директорию
if (dirSD) {
// Перебор всех файлов в директории
while (true) {
File entry = dirSD.openNextFile();
// Если файл не найден, выходим из цикла
if (!entry) {
break;
}
// Если это файл, выводим его имя
if (!entry.isDirectory()) {
Serial.println(entry.name());
}
// Закрываем файл
entry.close();
}
// Закрываем директорию
dirSD.close();
Может пошлете в нужном направлении?