SPIFFS - LittleFS

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
BigSandy
Příspěvky: 745
Registrován: 28 črc 2015, 02:00

SPIFFS - LittleFS

#1 Příspěvek od BigSandy »

Zdar tu všici.
Dnes rano ke mně přišel soused s problemem a jsem take v pr----. :D

Kód: Vybrat vše

#include "Arduino.h"
#include "LittleFS.h"

void setup() {
   Serial.begin(9600);
   
   if (LittleFS.begin()){
        Serial.println("LittleFS pripojen");
    }
    else
    {
        Serial.println("LittleFS nepripojen");
    }
//---------------------------------------    
   if (LittleFS.exists("/data.txt")) 
      {
       Serial.println("Soubor nalezen");
      }
      else
      {
        Serial.println("Soubor nenalezen");
    }  
}
void loop(){}
LittleFS pripojen
Soubor nenalezen

Tak jsem šel na to takto

Kód: Vybrat vše

#include "Arduino.h"
#include "LittleFS.h"
#include <ESP8266WiFi.h>
#include <ESP8266FtpServer.h>
 
const char* ssid = "-";
const char* password = "??????";

FtpServer ftpSrv;   

void setup(void){
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  Serial.println("");
 
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  
  if (LittleFS.begin()) {
      Serial.println("SPIFFS opened!");
  }
//-------------------------------------------------------------------- 
  ftpSrv.begin("esp8266","esp8266");    
}
void loop(void){
  ftpSrv.handleFTP();        
  if (LittleFS.exists("/data.txt")) 
      {
       Serial.println("Soubor nalezen");
      }
      else
      {
        Serial.println("Soubor nenalezen");
      } 
}

SPIFFS opened!
A pak furt dokola Soubor nenalezen.
Když se připojím přes FTP, tak tam ten soubor je.
Kde je problem?

Kód: Vybrat vše

Použití knihovny LittleFS ve verzi 0.1.0 v adresáři: C:\Users\Kiko\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\LittleFS 
Použití knihovny ESP8266WiFi ve verzi 1.0 v adresáři: C:\Users\Kiko\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi 
Použití knihovny esp8266FTPServer-master ve verzi 1.0.1 v adresáři: D:\ARDUINO\+Arduino projekty\libraries\esp8266FTPServer-master 
"C:\\Users\\Kiko\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-4-b40a506/bin/xtensa-lx106-elf-size" -A "C:\\Users\\Kiko\\AppData\\Local\\Temp\\arduino_build_101537/FTP.ino.elf"
Projekt zabírá 340128 bytů (32%)  úložného místa pro program. Maximum je 1044464 bytů.
Globální proměnné zabírají 33092 bytů (40%)  dynamické paměti, 48828 bytů zůstává pro lokální proměnné. Maximum je 81920 bytů.
C:\Users\Kiko\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 C:\Users\Kiko\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/upload.py --chip esp8266 --port COM15 --baud 115200 --before default_reset --after hard_reset write_flash 0x0 C:\Users\Kiko\AppData\Local\Temp\arduino_build_101537/FTP.ino.bin 
esptool.py v2.8
Serial port COM15
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 84:f3:eb:e0:2b:fa
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 16MB
Flash params set to 0x0390
Compressed 344288 bytes to 251041...
Wrote 344288 bytes (251041 compressed) at 0x00000000 in 22.8 seconds (effective 120.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
Naposledy upravil(a) BigSandy dne 05 bře 2021, 11:05, celkem upraveno 4 x.

petrfilipi
Příspěvky: 2551
Registrován: 13 zář 2005, 02:00

#2 Příspěvek od petrfilipi »

Nemůže být problém v malých/velkých písmenech, případně v lomítku "/data.txt"? Nemá tam být obrácené lomítko?

PF

Uživatelský avatar
BigSandy
Příspěvky: 745
Registrován: 28 črc 2015, 02:00

#3 Příspěvek od BigSandy »

Kód: Vybrat vše

 if (SPIFFS.begin()){
        Serial.println("SPIFFS pripojen");
    }
    else
    {
        Serial.println("SPIFFS nepripojen");
    }
//---------------------------------------    
   if (SPIFFS.exists("/data.txt")) 
      {
       Serial.println("Soubor nalezen");
      }
      else
      {
        Serial.println("Soubor nenalezen");
      } 
//---------------------------------------
  File f = SPIFFS.open("/data.txt", "w");
if (f) {
    Serial.println("soubor otevřen");
} 
SPIFFS pripojen
Soubor nalezen
soubor otevřen

Přes SPIFFS to šlape jak hodinky.

Uživatelský avatar
dreamer
Příspěvky: 380
Registrován: 22 říj 2014, 02:00

#4 Příspěvek od dreamer »

V programu je:
if (LittleFS.begin()
ale ty tam tu instanci nikde neinicializuješ ne?
Nemělo by tam být v setup: LittleFS.Begin() ? Nebo něco takového?

Uživatelský avatar
BigSandy
Příspěvky: 745
Registrován: 28 črc 2015, 02:00

#5 Příspěvek od BigSandy »

@ dreamer - to je dobře.
begin vraci boolean true nebo false, podle toho jestli se připojil, nebo ne.

Je to sane jako

Kód: Vybrat vše

bool res = LittleFS.begin();

if (res == true)
      {
       Serial.println("připojeno");
      }
      else
      {
        Serial.println("nepřipojeno");
      } 
To same je hned nad tebou v tom funkčním zdrojaku.
if (SPIFFS.begin())

Prostě už při připojovaní se testuje, zda se to připojilo, nebo ne.

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#6 Příspěvek od samec »

Ten súbor je na nejakej SD karte?

Uživatelský avatar
BigSandy
Příspěvky: 745
Registrován: 28 črc 2015, 02:00

#7 Příspěvek od BigSandy »

samec píše:Ten súbor je na nejakej SD karte?
https://www.arduinoslovakia.eu/blog/201 ... fs?lang=cs
S tým jsem už dělal mnohokrat a prý už je to zastarale a pomale.

Je novějši LittleFS.
https://arduino-esp8266.readthedocs.io/ ... ystem.html

Soused to řešil na forum.hwkitchen.cz a dal tam ten první zdrojak co je tu a napsali mu, že jim to funguje.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#8 Příspěvek od FHonza »

SPIFFS s LittleFS NEJSOU kompatibilní v implementaci "on-flash". Je to napsáno i v oficiální dokumentaci.

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“