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>
@carousally, 👍2
Обсуждение1 ответ
Ответ запоздал, но так как вопрос все еще открыт...
Код не включает библиотеку spiffs. Строка ниже должна устранить проблему.Примечание это должно быть ниже инструкции include для FS
include <SPIFFS.h>
Таким образом, код должен выглядеть следующим образом
#include "FS.h"
#include "WiFi.h"
#include "SPIFFS.h"
на момент вопроса в ядре esp32 arduino не было библиотеки SPIFFS, @Juraj
- Интернет-сервер Arduino IDE + ESP32 — как перенаправить на root после нажатия кнопки
- Автоматическая веб-страница ESP32 AP
- Изменить цвет формы css с esp32, если оператор
- Несколько клиентских серверов через Wi-Fi
- WebSocketsServer.h: No such file or directory
- Программаторы для этой платы отсутствуют - Программирование ESP32 Cam с помощью Ardunio IDE
- Установка значения float до двух знаков после запятой
- ESP32-CAM первый: 0x8 TG1WDT_SYS_RESET загрузочный цикл
https://github.com/copercini/arduino-esp32-SPIFFS Эта библиотека должна вам помочь., @Hasina
У меня та же проблема после новой установки, и, похоже, ссылка мертва. Может ли кто-нибудь, пожалуйста, найти время, чтобы объяснить, как решить эту проблему., @dvukovic