Hrajeme si WeMos D1 – Souborový systém SPIFFS

Co to je SPIFFS?

Je to část paměti v ESP modulu, která se využívá pro souborový systém. Je to tatáž paměť, která slouží i pro nahrání programu, ale je právě jako SPIFFS vyhrazena a při nahrávání nového programu zůstává nedotčena. SPIFFS se přehrává jiným způsobem.


Tak tedy jak na to. První věc kterou uděláme je stažení nástroje pro nahrání souborů do SPIFFS Wemos (ESP8266). Najdete ho na odkaze zde. Je to soubor ve formátu .zip. Po otevření v něm naleznete adresář „ESP8266FS“. Tento je potřeba zkopírovat do adresáře, kde máme nainstalováno ArduinoIDE a to do adresáře „tools“.

picture-2016-12-18-23_22_05

Pokud chcete rychle najít adresář, kde je něco nainstalováno (v našem případě AdruinoIDE), klikněte levým tlačítkem na odkaz k programu (může jít o zástupce na ploše nebo i třeba odkaz v nabídce start). Po kliknutí pravým tlačítkem se objeví menu ze kterého vyberete volbu „Vlastnosti“. V kartě „Zástupce“ naleznete tlačítko „Otevřít umístění souboru“ a když ho použijete otevře se Vám přímo adresář s umístěním programu (v našem případě ArduinoIDE).

Po překopírování adresáře do „tools“ si můžeme spustit ArduinoIDE, pokud jsme ho měli již spuštěná tak ho zavřeme a znovu otevřeme. Pokud jsme byli úspěšní, objeví se nám nová volba v menu „Nástroje“ pojmenovaná „ESP8266 Sketch Data Upload“. Klidně si na ní můžete zkusit kliknout, ale objeví se pouze chyba, že nebylo nic nalezeno a jestli chcete vytvořit prázdný obraz FS. To nechceme a tak zvolíme volbu „NO“.

picture-2016-12-18-23_28_11

 

Aby jsme mohli soubory do zařízení přenést, musí být tyto uloženy ve vlastním adresáři s pevným názvem „data“ a to v umístění vašeho programu(sketchi). Buď vytvoříme nový program nebo vybereme nějaký libovolný, který budeme chtít využívat se souborovým systémem. K vytvoření adresáře v aktuálním sketchi, mužem zkusit kombinaci kláves Ctrl+K, která nám otevře požadovaný adresář. Poté už jen v něm vytvoříme složku s názvem „data“ a do složky „data“ umístíme soubory, které chceme mít ve Wemos jako součást souborového systému.

picture-2016-12-18-23_49_11

Zatím použijeme jednoduchý textový soubor, kde bude uložen nějaký text. Je jedno co tam bude, já použiji třeba nějaký odstavec lorem ipsum. Pomocí poznámkového bloku si uložím text do souboru  a vložím ho do adresáře „data“. Nyní si již můžeme využít volbu z menu nástroje „Nástroje“ –> „ESP8266 Sketch Data Upload“. Chvilka napětí ……. a pokud uvidíte na konci tento výsledek je vyhráno.

picture-2016-12-19-00_02_19

Vyzkoušel jsem jak nahrávání pomocí USB kabelem tak i přes OTA (fungovalo to pouze,když na OTA nebylo nastaveno heslo, jinak se pouze objevila hláška o chybné autentifikaci a na heslo se ArduinoIDE nezeptalo. Zatím jsem se tím nezabýval není pro tento návod důležité.

Tak soubor tam někde v zařízení máme. Teď ho budeme chtít využit. Napíšeme si nějaký jednoduchý program, který nám tento soubor vypíše do internetového prohlížeče:

Tak po nahrání programu do Wemos nebo ESP8266 si můžeme zapnout internetový prohlížeč, kde po zadání adresy serveru (kdo jí neví, podívá se do SerialMonitoru, kde se po startu serveru vypíše) zobrazí náš text uložený v souboru v paměti SPIFFS v našem zařízení.

Zde uvádím několik důležitých řádků v programu:

Ve funkci setup() uvedeme, že budeme pracovat se SPIFFS.

File file – deklarace objektu File s názvem file, zde v této proměnné bude náš soubor s čímkoliv. Příkazem SPIFFS.open(cesta, parametr) si otevřeme soubor, který chceme. V parametru cesta nezapomeňte na lomítko (/). Příkaz by měl fungovat pokud bude soubor vnořený v několika adresářích („images/thumbs/image2885.jpg“, „…… apod). Jako druhý je parametr. Všimněte si, že i on je v uvozovkách. V našem případě parametr „r“ znamená, že otevře textový soubor pro čtení. Pozice v souboru bude nastavena na začátek. 

Zde přehled všech parametrů:

Jako další si uvedeme některé funkce pro práci se souborovým systémem:

Samozřejmě toto nejsou všechny funkce. Další najdete v dokumentaci ke knihovně FS.h nebo SPIFFS.h.

Nyní si zkusíme uložit do SPIFFS nějaký obrázek. Vyberu pro testování něco obyčejného ve formátu .png. Obrázek jsem nahrál do SPIFFS a má název ok.png. Program projde pouze malou změnou:

Změny v programu jsou pouze na řádku 42, kdy jsme změnili název souboru a na řádku 44, kde je uveden text pro hlavičku souboru, který je přijímán, aby prohlížeč věděl že odesíláme data jako obrázek a ne již jako prostý text. Proto „image/png“.

Poznámka: Prohlížeč Chrome 55.0.2 poznal, že se jedná o obrázek a zobrazil ho bezchybně i s nastavenou hlavičkou „text/plain“, IE v11.0.9, ale po zadání adresy serveru v prohlížeči otevřel poznámkový blok s daty obrázku (nesmyslné znaky).

Výsledek vypadá takto:

Tak to je náš první obrázek. Pokud se Vám to povedlo tak gratuluji. Jak již píši další díl, budeme řešit jak zobrazit soubor, který chceme již z adresy, aby po zadaní naší adresy serveru najela stránka index.htm a všechny další stránky na index napojené a obrázky s tím spojené řádně fungovaly. Poté by jsme se mohli kouknout na vytvoření jednoduchých skriptovacích stránek podobných PHP, aby jsme mohli do html vkládat údaje z našich čidel apod.

Napsat komentář

Translate »