In this tutorial we upload a text file and read it in serial monitor.
Steps to Upload a file in NodeMCU SPIFFS file system
ESP8266FS is a tool which integrates into the Arduino IDE. It adds a menu item to Tools menu for uploading the contents of sketch data directory into ESP8266 flash file system.
-
Download the tool: https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.1.3/ESP8266FS-0.1.3.zip.
- In your Arduino sketchbook directory, create tools directory if it doesn’t exist yet
- Unpack the tool into tools directory (the path will look like <home_dir>/Arduino/tools/ESP8266FS/)
- Restart Arduino IDE
- Open a sketch (or create a new one and save it)
- Go to sketch directory (choose Sketch > Show Sketch Folder)
- data older next to your .ino file
- Create a directory named data and put your files you want in the file system there
- Make sure you have selected a board, port, and closed Serial Monitor
- Select Tools > ESP8266 Sketch Data Upload. This should start uploading the files into ESP8266 flash file system. When done, IDE status bar will display SPIFFS Image Uploaded message. Note during upload it takes longer time.
Reading Uploaded File
In above process we uploaded notes.txt file in ESP flash. In this program we read it and display its contents in serial monitor. Uploading of sketch will not affect sketch data. i.e. uploaded notes.txt file.
/* * ESP8266 Communication and Protocols * SPIFFS Direct File Upload Example * -Manoj R. Thkuar */ #include <ESP8266WiFi.h> #include <FS.h> //Include File System Headers const char* file = "/notes.txt"; //Enter your file name void setup() { delay(1000); Serial.begin(115200); Serial.println(); //Initialize File System SPIFFS.begin(); Serial.println("File System Initialized"); File dataFile = SPIFFS.open(file, "r"); //Open File for reading Serial.println("Reading Data from File:"); //Data from file for(int i=0;i<dataFile.size();i++) //Read upto complete file size { Serial.print((char)dataFile.read()); //Read file } dataFile.close(); } void loop() { }
Results
In serial monitor you will get File contents, you can upload images, html and javascript files. examples can be found here
- Image upload and display
- JavaScript Gauges