Habe von der fips Seite mit der Onboard Led angefangen. fipsok Esp32
Ich kann die Led per Webseiten Button ein- und ausschalten.
Danach wollte ich das Admin Webinterface ausprobieren. Habe alle Tabs angelegt und die .html runtergeladen. Im Browser komme ich auf die Seite zum spiffs.html Datei hochladen aber hier passiert dann nichts mehr. Die Ansicht füllt sich nicht und ich kann auch überhaupt nichts hochladen. Es bleibt darunter immer stehen "Lade die spiffs.html hoch.
LittleFS ist in der Boardkonfig nicht verfügbar, deswegen nutze ich Spiffs.
Wehsel ich auf die "led Webseite" kann ich die Onboard Led immer noch schalten.
Es ist auch egal mit welchem Core ich den Sketch kompiliere/hochlade.
Der Arduino ESP32 Core ist der 2.0.13.
Der Espressif Core ist der 2.0.15.
Ich habe
fipsESP32WebServer.ino
Admin.ino
Connect.ino
EspBoardLed.ino
Spiffs.ino
im "fipsESP32WebServer" Sketch Ordner.
Sketch
// ****************************************************************
// Sketch Esp32 Webserver Modular(Tab)
// created: Jens Fleischer, 2018-07-06
// last mod: Jens Fleischer, 2023-03-27
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp32
// Software: Esp32 Arduino Core 1.0.0 - 2.0.14
// Getestet auf: ESP32 NodeMCU-32s
/******************************************************************
Copyright (c) 2018 Jens Fleischer. All rights reserved.
This file is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
*******************************************************************/
// Der WebServer Tab ist der Haupt Tab mit "setup" und "loop".
// #include <SPIFFS.h> bzw. #include <LittleFS.h> und #include <WebServer.h>
// müssen im Haupttab aufgerufen werden.
// "server.onNotFound()" darf nicht im Setup des ESP32 Webserver stehen.
// Inklusive Arduino OTA-Updates (Erfordert freien Flash-Speicher)
/**************************************************************************************/
#include <WebServer.h>
#include <ArduinoOTA.h>
//#define USE_LittleFS // Einkommentieren um den LittleFS Tab zu verwenden
#ifdef USE_LittleFS
#define SPIFFS LittleFS
#include <LittleFS.h>
#else
#include <SPIFFS.h>
#endif
#define DEBUGGING // Einkommentieren für die Serielle Ausgabe
#ifdef DEBUGGING
#define DEBUG_B(...) Serial.begin(__VA_ARGS__)
#define DEBUG_P(...) Serial.println(__VA_ARGS__)
#define DEBUG_F(...) Serial.printf(__VA_ARGS__)
#else
#define DEBUG_B(...)
#define DEBUG_P(...)
#define DEBUG_F(...)
#endif
WebServer server(80);
void setup() {
DEBUG_B(115200);
DEBUG_F("\nSketchname: %s\nBuild: %s\t\tIDE: %d.%d.%d\n\n", __FILE__, __TIMESTAMP__, ARDUINO / 10000, ARDUINO % 10000 / 100, ARDUINO % 100 / 10 ? ARDUINO % 100 : ARDUINO % 10);
setupFS();
Connect();
admin();
// setupTime();
espboardLed();
// onboardLed();
// bme280();
// dht22(); // Die Tabs die du nutzen möchtest, musst du Einkommentieren
// bh1750();
// setupSchaltUhr();
ArduinoOTA.onStart([]() {
//save(); //Einkommentieren wenn Werte vor dem Update gesichert werden sollen
});
ArduinoOTA.begin();
server.begin();
DEBUG_P("HTTP Server gestartet\n\n");
}
void loop() {
ArduinoOTA.handle();
server.handleClient();
if (millis() < 0x2FFF || millis() > 0xFFFFF0FF) runtime(); // Auskommentieren falls du den Admin Tab nicht nutzen möchtest
// emailResponse();
// dualSchaltuhr(); // Die Tabs die du nutzen möchtest, musst du Einkommentieren
}
Mach' ein Update vom Arduino ESP boardpackage, LITTLEFS ist jetzt im core. Ich hab' grad' auch ein "kleines" esp32c3 problem mit SPIFFS und encrypted flash, da ist eine kleine Baustelle vergraben ...
es gibt kein Core Update. Gestern in der IDE geschaut und jetzt wieder.
Der Espressif Core 2.0.15 ist der Aktuelle. Mit dem funktioniert es jedoch auch nicht.
Zudem ich jedoch auch bei dem nichts mit LittleFS auswählen kann. Wie geht das?
Für die Partitionierung dürfte es egal sein, ob da SPIFFS oder LittleFS steht. Da geht es ja nur darum, wie viel Flash für ein FileSystem bereit gestellt wird.
Was Du dann mit #include einbindest und nutzt, entscheidest Du.
Bei Fips gibt es für ESP32 auch einen Dateimanager für LittleFS.
Mit Fips LittleFS Dateien habe ich das auch noch probiert, funktionierte auch nicht.
Ehrlich gesagt ist das für mich irreführend mit der Konfiguration. Beim Arduino Nano ESP32 gibt es für das Partitionsschema kein LittleFS zur Auswahl. Und ich denke das ist doch die wichtige Einstellung für alles. Oder nicht? Wenn die Boardkonfig diesbezüglich egal ist warum gibt es diese?
Die IDE Bsp. LittleFS funktionierten auch nicht. Ich kam dann zu dieser Seite ESP32: Upload Files to LittleFS using Arduino IDE | Random Nerd Tutorials
habe alles durchgeführt nur ist jetzt mein Board kein Arduino Nano ESP32 sondern ein ESP32S3 Dev Module. Damit funktioniert der Resettaster nicht mehr und damit auch das original Bootloadermenü nicht mehr. Dafür ist die Konfiguration des Boards in der IDE umfangreicher.
Der aktuelle Stand ist der, nach ab/anstecken kann ich html Dateien hochladen. Die Admin Seite bleibt mit Nullen leer und die Led Schalt Seite funktioniert nicht. Ich denke ich habe Mist gemacht. Ich weiß nur nicht zu 100% genau wie ich Mist gemacht habe oder ob das randomnerdtutorials Tool Mist gemacht hat. Ich möchte im Moment nichts weiter wie den originalen Zustand herstellen das es wieder ein Arduino Nano ESP32 ist.
@ agmue. Genau die Konfiguration gab es nicht, die habe ich aktuell nur weil das Board "umbenannt" wurde. Das wollte ich aber gar nicht.
Hast Du #5 gelesen? Ich verwende keine ESP32, da dort das Versionschaos einfach zu groß ist und manche Libs auf dem einen laufen, auf dem anderen nicht.
Also Sketch/Lib für ESP32 sagt eigentlich überhaupt nichts mehr darüber aus, ob es läuft oder nicht.
habe ich schon gelesen. Nur hilft mir das leider nicht weiter. Es kompiliert auch alles.
Aktuell habe ich laut Arduino Anleitung die Firmware und Bootloader neu aufgespielt. Funktioniert leider nur mit falscher Boardauswahl und ändert am aktuellen Zustand nichts.
Vielleicht nochmal genauer zu Tommys ESP32 Anmerkung. Genau wegen dem Boardkaos habe ich mir das originale Arduinoboard gekauft, damit ich eben keine Konfigurationsprobleme habe. Und jetzt ging irgendwas schief.
Edit: Habe jetzt im Nano ESP32 Unterforum angefragt, mal schauen ob es eine Rettung gibt.
ich habe nochmal mit der IDE 2.3.2 rumgefummelt. Hier wurde das Board mit dem Namen WiFiduinoESP32S3 o.s.ä. erkannt. Das Board nochmal mit Jumperkabel bewusst in Bootloader-Mode gebracht. In der IDE 2.x als Board WiFiduinoESP32S3 ausgewählt, als Programmer Esptool selektiert und mit "Programmer hochladen" gedrückt. Danach als Board Arduino Nano ESP32 ausgewählt und mit "Programmer hochladen" gedrückt. Das funktionierte diesmal. Seitdem habe ich meinen Arduino Nano ESP32 zurück. Was für ein Tag. So richtig erklären kann ich das nicht was heute abgelaufen ist.
eigentlich müßte man alles nochmal komplett durchgehen, vom Fehler provozieren bis zur Behebung und dabei alles notieren was man wie gerade gemacht hat.
das muss einem erstmal bewusst werden. Gut zu wissen, Danke.
Ich bin derzeit bei der IDE 2.3.2 geblieben und habe die IDE Bsp. LITTLEFS_test und LITTLEFS_time ausprobiert, beide funktionieren. Eine Zwischenfrage. Es scheint vollkommen egal zu sein welche Baudrate man im Seriellen Monitor einstellt. Ob 9600 oder 115200 wie im Sketch, es erscheinen immer alle Ausgaben korrekt. Gibt es dafür eine Erklärung?
Die eigentliche Frage lautet, kann ich jetzt die Aktion mit den fips Dateien mittels LittleFS wiederholen und es sollte funktionieren? Was ich bisher verstanden habe. Die Umschaltung zwischen SPIFFS und LITTLEFS erfolgt rein in Software. Die Methoden sind gleichnamig bzw. kompatibel, man muss nur LittleFS definieren und die LittleFS.h inkludieren? Danach sollte alles mit LittleFS funktionieren auch wenn man Beispiele für SPIFFS findet?
Die Flash Partition muss man sich vorstellen wie eine eingebaute SD-Karte? Man kann darin alles mögliche speichern. Entweder reine Daten oder Dateien wie in den IDE Beispielen oder von fips html Dateien für einen Webseite? Sorry, ich brauch dafür eine geistige Vorstellung.
Die Grundfunktionen sind aufrufkompatibel, so dass man (unsauber) mit einem
#define spiffs littleFS
umstellen könnte. Auf dem ESP8266 haben wir das auch zum Vergleichen gemacht, als LittleFS neu war. LittleFS kann aber noch einiges, was SPIFFS nicht kann.
@agmue hat doch auf ESP32 schon mit LittleFS gearbeitet, wenn mich meine Erinnerung nicht täuscht.
Soweit ich weiß unterscheiden sie sich im Format.
So sollte einmalig ein LITTLEFS::format() nötig sein
Bei Serial über einen nativen USB-CDC des µC ist die Baudrate irrelevant, da keine UART verwendet wird (mal abgesehen von 1200 Baud, welche manche Arduinos zum Reset veranlassen)
Deine Erinnerung stimmt. Weil damals Fips eine schöpferische Pause eingelegt hatte, habe ich selbst die von mir genutzten Tabs aus seinem Universum auf LittleFS umgestellt. In meiner Erinnerung war das keine große Tat. Seit über einem Jahr speichere ich meinen Stromverbrauch mittels LittleFS, einschließlich Sicherung über WLAN, Fritz!Box und Festplatte.
Da meine Erinnerung aber etwas lückenhaft ist und ich keinen Unsinn schreiben wollte, habe ich mich in diesem Thema zurückgehalten.
Danke euch allen.
Diese beiden Schreibweisen kompilieren mit dem LittleFS_time IDE v2 Bsp. Sketch SPIFFS.format() LittleFS.format()
LITTLEFS wurde irgendwann umbenannt in LittleFS, was ich aktuell u.a. gelesen habe.
In dem IDE Bsp. gibt es ein #define SPIFFS LittleFS
@agmue Muss ich die fips Beispiele vorher auch umarbeiten oder funktionieren die auch erstmal so wie sie sind? Hast du das in einem Thread hinterlegt? Dann würde ich nochmal einen Versuch starten. Oder hast du überall SPIFFS gegen LittleFS ausgetauscht? Also das #define SPIFFS LittleFS eliminiert.
ResolveLibrary(time.h)
-> Kandidaten: []
C:\Users\Worker\AppData\Local\Temp\.arduinoIDE-unsaved2024318-15376-7pscp1.0bz8q\LITTLEFS_time\LITTLEFS_time.ino:4:10: fatal error: WiFi.h: No such file or directory
#include <time.h>
^~~~~~~~
compilation terminated.
exit status 1
Compilation error: WiFi.h: No such file or directory