ESP32 в Arduino-IDE с FS.h и SPIFFS

Я работаю на веб-сервере на ESP32 в Arduino IDE и хотел бы загрузить html-файл. Попытался использовать SPIFFS.open из библиотеки FS.h с github. Errormessage говорит, что SPIFFS не была объявлена в этой области. (Насколько я могу видеть, в неправильном месте нет скобки.)

Я не нашел ни одного примера для ESP32 и FS.h и отчаянно надеюсь на некоторую помощь. Заранее спасибо.

Вот мой код:

    #include "FS.h"
    #include "WiFi.h"

/Wifi Access data/ const char* ssid_ap = "AccessPoint"; const char* password_ap = "12345678";

const char * ssid_sta = ""; const char * password_sta = "";

/* set global variables */ byte WiFiMode = 0; // WIFI_STA = 1 = Workstation WIFI_AP = 2 = Accesspoint int request_counter; String sHTML; String sHTMLRequest;

/* Create instance of server on Port 80 */ WiFiServer server(80); WiFiClient client;

/* * ******SETUP******************************************************* */ void setup() {

/initialize GPIO/

/*start serial communication */ Serial.begin(115200); SPIFFS.format(); Serial.println("Spiffs formatted");

/* start WiFi as workstation (STA), if not possible start as Acess Point initialize server */ WiFi_Start_STA(); if (WiFiMode == 0) WiFi_Start_AP(); }

/* * **LOOP************************************************************* */ void loop() {

/* Check if a client has connected */ client = server.available(); if (!client) { return; }

/*Wait for the client to send data */ Serial.println("neuer Client verbunden"); /*Count Aufruf der Seite: */ request_counter ++; unsigned long clTimeout = millis()+250; while(!client.available() && (millis()clTimeout) { Serial.println("time-out bei Client-Verbindung!"); return; }

/****** open html files *******/ SPIFFS.begin(); File f = SPIFFS.open("/home.txt", "r"); if (!f) { Serial.println("file open failed"); } f.close();

}

/********************************************************************** * **************** FUNCTIONS ******************************************** *


*/

/* * Fct tries to start WiFi in workstation mode, * if not possible sets WiFiMode=AP * starts server */ void WiFi_Start_STA() { unsigned long timeout;

WiFi.mode(WIFI_STA); // Try to start WiFi as Workstation

WiFi.begin(ssid_sta, password_sta); timeout = millis() + 12000L; while (WiFi.status() != WL_CONNECTED && millis() < timeout) { delay(10); }

if (WiFi.status() == WL_CONNECTED) { server.begin(); WiFiMode = WIFI_STA;

Serial.print("Verbunden mit IP - Addresse: "); for (int i = 0; i < 3; i++) { Serial.print( WiFi.localIP()[i]); Serial.print("."); } Serial.println(WiFi.localIP()[3]);

} else { WiFi.mode(WIFI_OFF);

Serial.println("WLAN-Verbindungsaufbau fehlgeschlagen");
}

}

/* *starts WiFi in AP-mode *starts server */ void WiFi_Start_AP() { WiFi.mode(WIFI_AP); // Access Point mode WiFi.softAP(ssid_ap, password_ap); server.begin(); // start server IPAddress ApIP = WiFi.softAPIP(); //read IP of Access Point WiFiMode = WIFI_AP;

Serial.print("ESP-Netzwerk: "); Serial.print(ssid_ap); Serial.print(" aufgebaut. "); Serial.print( " IP-Addresse: "); Serial.println(ApIP); }

<code>

, 👍2

Обсуждение

https://github.com/copercini/arduino-esp32-SPIFFS Эта библиотека должна вам помочь., @Hasina

У меня та же проблема после новой установки, и, похоже, ссылка мертва. Может ли кто-нибудь, пожалуйста, найти время, чтобы объяснить, как решить эту проблему., @dvukovic


1 ответ


1

Ответ запоздал, но так как вопрос все еще открыт...

Код не включает библиотеку spiffs. Строка ниже должна устранить проблему.Примечание это должно быть ниже инструкции include для FS

include <SPIFFS.h> 

Таким образом, код должен выглядеть следующим образом

#include "FS.h"
#include "WiFi.h"
#include "SPIFFS.h"
,

на момент вопроса в ядре esp32 arduino не было библиотеки SPIFFS, @Juraj