ESP8266: SPIFFS Speicher - Was damit machen?

Gast #5697713
Lesenswert?

Hallo,

ich habe grad den Stein "NodeMCU 8266" mit 4M Flash entdeckt und hier 
liegen, zumindest die LED kriege ich zum Blinken. Und auch die Software 
für die At-CMDs kriege ich geflasht mit dem Tool von Espressiv.

Das weitere unter Arduino mit pasender Lib. Ebenfalls installiert habe 
ich ein .jar File in den Tools, dass es mir ermöglicht einen Data Ordner 
in FS des Chips zu laden (SPIFFS). Funzt auch, getestet mit ein paar 
Text Files. Mal einen Webserver aus den Examples gestartet, verbindet 
sich auch mit meinem Wifi zu Hause.

Jetzt die Frage: Was kann ich mit dem Platinchen Schönes machen? Mir 
fällt auf Anhieb da nichts ein, außer vielleicht einen Wetter Server ab 
zu fragen und ein paar LEDs zu schalten mit einem json Parser. Glaube 
openwwaether org hat auch das json Format.

Hat damit schon mal jemand gebastelt? Dieser SPIFFS Speicher sollte 
schon genutzt werden, hat ja vermutlich seinen Zweck, dass man das dort 
gespeicherte benutzen kann....

Link auf ein Projekt zum Nachbauen wäre gut.

PS: Stromsparend ist das Ding ja grad nicht.... Batterie scheidet wohl 
aus.

Gruss,
Christian
#5697802
Lesenswert?

Puh, von LED blinken lassen bis kabellos TV Signale senden kann der ESP 
eigentlich alles. Und W-LAN natürlich auch :)
Ich empfehle dir einfach mal auf YouTube nach esp8266 zu suchen und dir 
einige Projektvideos anzusehen. Vielleicht findest du da eine schöne 
Idee.

Stromsparend kann er übrigens auch, aber natürlich nicht non stop mit 
W-LAN. Man kann ihn aber schlafen legen und z.B. nur alle 5min was tun 
lassen, dann hält er auch mit Batterie ewig.

Und der SPIFFS Speicher ist einfach ein Teil des Flash-Speichers. Du 
musst den nicht als Dateisystem nutzen, das ist einfach nur eine Option. 
Du kannst ihn auch normal mit programmcode beschreiben, aber so viel 
wirst du nie brauchen.
Gast #5697813
Lesenswert?

Andreas B. schrieb:
> Und W-LAN natürlich auch :)

Ja, sowas schwebt mir auch vor. Über meine Fritzbox ins Internet. Ok, 
steuern muss ich nichts, meine Heizung schalte ich auch so per App ein, 
das gibt es fertig zu kaufen.

NTP Abfrage grad probiert, klappt auch. Deauther ist auch ein nettes 
Spielzeug. Nervtötend sind nur die endlos langen Kompiliervorgänge, auch 
wenn der Upload mit maximalen 900.000 problemlos klappt. Aber eine 
änderung sind dann rund 15-20 Sekunden warten, weil da ja wohl etliches 
mehr hochgeladen wird als nur ein Blink Sketch. Keine Ahnung wieso das 
noch nicht geändert wurde. 180 kb Bin-File und 25 kb globale Variablen 
direkt belegt.... fragt sich nur womit.
Gast #5698059
Lesenswert?

Michael U. schrieb:
> zum
> Blinken einer LED reicht auch ein ATTiny...

Quatsch, dass wird diskret aufgebaut. Maximal noch mit einem NE555.
Obwohl ich mir vorstellen könnte, dass einige dafür auch ein Raspberry 
Pi B 3+ auspacken würden. ;)

Ja der ESP ist schon ein ganz netter Chip. Auch der ESP32 mit seinen 2 
Kernen ist ganz nett.
Gast #5698139
Lesenswert?

Michael U. schrieb:
> was sollte man da ändern? WLAN, TCP-Stack und noch etliche
> Standardfunktionen weglassen?

Vielleicht nur einmal laden? So wie auch die diversen Teile der Firmware 
für AT-Cmd? Das Flashen geschieht doch partiell. Ist bisher auch der 
Grund wieso ich damit noch nicht mehr gemacht habe, die meiste Zeit 
wartet man eben, besonders anfangs wenn man erst ausprobieren muss ob es 
überhaupt so klappt.

Fürs Blinken einer LED brauch ich 2 T's, 2 C's und 4 R's, nennt sich 
astabiler Multivibrator in sachkundigen Fachkreisen....
Gast #5699661
Lesenswert?

Moin,

nochmal kurz ne Frage: Welchen sind ergeben Arduino Makros wie PROGMEM, 
wenn die Tensilica Xtensa CPU sich doch sowieso blockweise den Code aus 
dem seriellen Flash nachlädt, den sie grad ausführt? Liegt doch eh alles 
im Ram später.

Macht das da noch Sinn auf den RAM Speicher zu gucken? 50kb sind das 
glaube ich.....
Gast #5849152
Lesenswert?

Stefanus? Bist Du hier?

Weisst du zufällig wie man beim ESP8266 das Wifi abschaltet und wieder 
ein?
Frage ja nur alle 5 Minuten ab. Aktuell habe ich Auto Connect. Möchte 
etwas Stromsparen, so 1s im Sleep Mode wäre gut und dann weiter. 
Idealerweise wäre ein Light Sleep Gut.

Gruss,
Christian
Gast #5849166
Lesenswert?

Christian J. schrieb:
> Was kann ich mit dem Platinchen Schönes machen?

Du kannst im SPIFFS zum Beispiel statische HTML Seiten, Bilder, 
Javascripte, etc ablegen. Damit erzeugst du Webseiten, über die du das 
Gerät (das du noch erfinden wirst) bedienen kannst.

> Weisst du zufällig wie man beim ESP8266 das Wifi abschaltet
> und wieder ein?

Ja, "zufällig" habe ich dafür sogar ein Lesezeichen definiert: 
http://stefanfrings.de/esp8266/index.html#wlanonoff

> Möchte etwas Stromsparen, so 1s im Sleep Mode wäre gut und
> dann weiter. Idealerweise wäre ein Light Sleep Gut.

Dann kann der ESP allerdings nicht mehr den Webserver für ein 
Browser-basiertes Bedienfeld spielen.
Gast #5849174
Lesenswert?

Stefanus F. schrieb:
> Dann kann der ESP allerdings nicht mehr den Webserver für ein
> Browser-basiertes Bedienfeld spielen.

Nö, muss er auch nicht. Guckt nur alle 1 Stunde im Web nach, holt die 
Börsen Kurse als json und taucht wieder ab.

Das spffis kann man prima mit einem fs verwenden,. klappt richtig 
klasse! einfach logfiles dort ablegen und später senden.
Gast #5849320
Lesenswert?

Beim ESP32 kann man sich eine Custom Partition erstellen und die 
komplette Partition als RAM Mappen, ist dazu noch ultraschnell im 
gegensatz zu Spiff.

Spiff hat für Richtige Datenschubsserei einfach zuviel Overhead, wnen 
man mal überlegt wie schnell es mit max SPI gehen müsste..
Gast #5849623
Lesenswert?

Christian J. schrieb:
> Jetzt schreibst du hier einen Teaser aber lässt offen wie das zu machen
> ist.

Es ging ja auch um den ESP8266..

dort kann man das ähnlich mit Progmem machen, da kann man 
Partitionierung ohne Spiff erstellen und nur eine große 
Programmpartition anlegen.

Das ist dann only Read,den Rest hab ich selbst nicht versucht.. aber wie 
bei OTA ist bestimmt auch das möglich.

Mappen unterstützt nur der ESP32 soweit ich weiß, ich nutze es nur Only 
Read.
Gast #5850210
Lesenswert?

Also so gehts beim ESP32:

Ich habe eine Custom Partition angelegt und mein Bilddaten.bin mit dem 
ESP-Downloader an die Adresse geladen. Dann habe ich die Partition als 
RAM in einen Pointer gemappt. (macht die MMU mit nem Transparent Cache)

Jetzt kann ich mit dem Pointer "data"+Offset meine Bilder direkt zum 
Display rausschieben.

Pseudobeispiel:
Code:
1
const esp_partition_t* part;
2
spi_flash_mmap_handle_t handle;
3
void* data;
4
esp_err_t err;
5

6
void setup(){
7
part=  esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "storage");
8
err = esp_partition_mmap(part, 0, part->size, SPI_FLASH_MMAP_DATA, (const void**)&data, &handle);
9
vspi->writeBytes((uint8_t*)data+offsetBackground, width *high* 3);
10
}
Gast #5851661
Lesenswert?

TotoMitHarry schrieb:
> Ich habe eine Custom Partition angelegt und mein Bilddaten.bin mit dem
> ESP-Downloader an die Adresse geladen. Dann habe ich die Partition als
> RAM in einen Pointer gemappt. (macht die MMU mit nem Transparent Cache)

Ich verstehe zwar nur Bahnhof, weil ich keine Ahnung habe womit man das 
macht aber der ESP8266, der ohne die Arduino Cores eh kaum benutzbar ist 
kann direkt auf 1-4 Mbt SPIFFS eingestellt werden. Bindet man das FS ein 
kann man direkt auf ein File System zugreifen, ob Ram oder Flash ist 
wumpe. Es ist r/w. Einspielen kann man die Daten mit dem Upload Tool 
(data Ordner), sie könnten aber auch run time erzeugt werden. Zugriffe 
mit fopen, fwrite, fread usw. Als wenn eine SD Karte eingesteckt wäre. 
Der Stein hat wirklich einiges an Potential, ich bin da immer wieder 
erstaunt. Zumindest solange ich den Core 2.4.0 nutze, mit denen drüber 
läuft nix mehr....
Gast #5851698
Lesenswert?

Christian J. schrieb:

> Ich verstehe zwar nur Bahnhof, weil ich keine Ahnung habe womit man das
> macht aber der ESP8266..

Mir war Spiff halt zu langsam, zum testen benutze ich es auch.. für nen 
bisschen Logging oder so.

Ich benötigte für vernünftige FPS auf dem Display Daten an SPI..

Mit Spiff waren es umgerechnet 15Mhz SPI Datenrate, mit der Mapping 
Lösung die angepeilten 24Mhz Datenrate und nach oben alles offen.
Gast #6211588
Lesenswert?

Hallo,
der letzte Eintrag liegt zwar schon etwas zurück.

Ich verwende auch ESP8266 mit Arduino-IDE.

Wie kann man eine kleine TEXTDATEI aus dem ESP-SPIFFS-Speicher  in 
meinen  ***.BPLACED.NET -Ordner hochladen ?

Leider bisher alle Versuche beim Googeln vergebens.

Grüße
lisa

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren