ESP8266 SPIFFS

BigSandy
Příspěvky: 219
Registrován: 23 zář 2017, 07:09
Reputation: 0

ESP8266 SPIFFS

Příspěvek od BigSandy » 28 led 2021, 08:43

Zdrvím.
Když mam v SPIFFS text soubor třeba soubor.txt
Bych potřeboval, aby se obsah souboru načetl při otevření web servru třeba do list boxu.
Jak na to?
Dik

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: ESP8266 SPIFFS

Příspěvek od jankop » 28 led 2021, 09:36

Netušil jsem, jak jednoduše je možné pracovat se soubory ve SPIFFS ve spolupráci s webem.
V principu

Kód: Vybrat vše

#include <LittleFS.h>
void setup() {
  ...
server.serveStatic("/text.txt", LittleFS, "text.txt");
...
}
void loop() {
...
<textarea rows="4" cols="15" name="dlouhytext"><a href="text.txt"></a>
</textarea>
...
}
LittleFS.h je nový file systém, podporovaný v nových verzích core ESP8266
Ale nejsem si jist na co se vlastně ptáš. Na SPIFFS nebo HTML formulář?

BigSandy
Příspěvky: 219
Registrován: 23 zář 2017, 07:09
Reputation: 0

Re: ESP8266 SPIFFS

Příspěvek od BigSandy » 28 led 2021, 09:51

ESP8266 bude v režimu AP.
Připojim se k AP a spustim v prohližeči web stramku uloženou v tom SPIFFS.
Chci aby se na ní vykreslil listbox a do něj se načetl obsah toho text souboru.
Přílohy
listbox.jpg
listbox.jpg (23.2 KiB) Zobrazeno 2990 x

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: ESP8266 SPIFFS

Příspěvek od KamilV » 28 led 2021, 11:57

Pokud by to už v tom souboru mohlo být s HTML značkami OPTION, bylo by to snazší, protože načteš celý texťák a začleníš ho do výstupu mezi značky SELECT.

Pokud to v tom txt musí být bez značek, budeš muset číst řádek po řádku, třeba přes buffer, dokud nenarazíš na EOL nebo "\n".
Pak to do HTML výstupu budeš sázet v cyklu obalené značkami OPTION.

BigSandy
Příspěvky: 219
Registrován: 23 zář 2017, 07:09
Reputation: 0

Re: ESP8266 SPIFFS

Příspěvek od BigSandy » 28 led 2021, 17:17

Je jedno, jak to tam bude uloženo.
Firmu kde dělam jezdi 2X za noc kontrolovat stražní služba a ojebava to.
ESP8266 - čtečka RFID RC522 a modul reálného času.
Bude se ukladadat vždy na řadek čislo karty a čas.
Vedouci to občas zkontroluje, takže se připoji a koukne.
Možna se to bude odesilat do raspi ale to už zvladnu.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: ESP8266 SPIFFS

Příspěvek od KamilV » 28 led 2021, 18:25

Kód: Vybrat vše

String content;

void setup() {
  ...
  server.on("/", handle_status);
  ...
}

void loop() {
  ...
  server.handleClient();
 ... 
}

void handle_status() {
  File f = SPIFFS.open("/soubor.txt");
  if(f) {
    content = "";
    while(f.available()) {
      content += f.read();
    }
    f.close();
    server.send(200, "text/html", "<html><body><select size=20>"+content+"</select></body></html>"); 
  } else {
    server.send(500, "text/html", "<html><body>Error</body></html>"); 
  }
}

BigSandy
Příspěvky: 219
Registrován: 23 zář 2017, 07:09
Reputation: 0

Re: ESP8266 SPIFFS

Příspěvek od BigSandy » 28 led 2021, 19:30

Dik, vyzkoušim.
A v tom textaku by to mělo vyt uložene jak?

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: ESP8266 SPIFFS

Příspěvek od KamilV » 28 led 2021, 19:53

Kód: Vybrat vše

<option>první řádek</option>
<option>druhý řádek</option>
<option>třetí řádek</option>
<option>čtvrtý řádek</option>
...
<option>poslední řádek</option>
Úplně nerozumím kontextu, proč to vlastně chceš vypisovat v selectu, ale je to jak jsi chtěl.

BigSandy
Příspěvky: 219
Registrován: 23 zář 2017, 07:09
Reputation: 0

Re: ESP8266 SPIFFS

Příspěvek od BigSandy » 29 led 2021, 09:29

KamilV píše:
28 led 2021, 19:53
Úplně nerozumím kontextu, proč to vlastně chceš vypisovat v selectu, ale je to jak jsi chtěl.
Přes web stranky nemam žadne zkušenosti.
Pokud viš o lepšim, jednodužšim zpusobu tak klidně.
Dik moc.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: ESP8266 SPIFFS

Příspěvek od KamilV » 29 led 2021, 09:56

Já ale nevím, k čemu to má sloužit. Pokud je to v selectu, tak bych čekal, že je to součástí formuláře, který půjde někam odeslat, tzn. vyberu nějaký záznam a odešlu ho na nějaké další zpracování.
Pokud to má být jen kontrolní výpis, tak by to mohlo být třeba v tabulce...
Obzvláště, pokud ve výpisu (na jednom řádku txt souboru) bude více údajů, jako třeba ID karty, jméno, čas pípnutí... Pak ta tabulka bude nejpřehlednější, protože to bude ve sloupcích pěkně pod sebou.
Pokud tam máš jen jméno (jak je uvedeno na obrázku), tak je to celkem jedno, to můžeš vypsat třeba jen každý záznam na nový řádek...
Ukaž, jak vypadá jeden řádek txt souboru...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 17 hostů