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