Techtutorialsx
ESP32 Arduino: FAT file system
updated
For a written version of this tutorial with all the source code included, please consult my blog: techtutorialsx.com/2022/01/24/esp32-webserial-and-mdns
FireBeetle Board: dfrobot.com/product-2231.html
mDNS on the ESP32 (Video tutorial): youtube.com/watch?v=WiIpKr6Fs1g
Suggested ESP32 readings:
Websocket Server: broadcast messages: techtutorialsx.com/2021/12/06/esp32-websocket-server-broadcast-messages
Chat application on the ESP32: techtutorialsx.com/2022/01/17/esp32-chat-application-introduction
For an extensive list of ESP32 written tutorial, please check my blog: techtutorialsx.com/category/esp32
For a written tutorial with the code available to copy, please go here:techtutorialsx.com/2021/07/23/esp32-webserial-console-over-soft-ap
FireBeetle Board: dfrobot.com/product-2231.html
ESP32 Soft AP Video Tutorial: youtube.com/watch?v=6yL5kGVhSwI
Suggested Written tutorials:
ESP32 as SoftAP: techtutorialsx.com/2017/07/26/esp32-arduino-setting-a-soft-ap
ESP32 as SoftAP and Station simultaneously: techtutorialsx.com/2021/01/04/esp32-soft-ap-and-station-modes
mDNS address resolution: techtutorialsx.com/2020/04/17/esp32-mdns-address-resolution
For an extensive list of 350+ ESP32 Written tutorials, please check my blog: techtutorialsx.com/category/esp32
GitHub page of the library: github.com/ayushsharma82/WebSerial
Installation instructions: github.com/ayushsharma82/WebSerial#how-to-install
Under the hood, the library uses the async HTTP web server library, which you need to install as a dependency: github.com/me-no-dev/ESPAsyncWebServer
For a written tutorial about WebSerial, please check this post at my blog: techtutorialsx.com/2021/01/09/esp32-arduino-webserial
FireBeetle ESP32 board used: dfrobot.com/product-2231.html
mDNS on the ESP32: techtutorialsx.com/2020/04/17/esp32-mdns-address-resolution
Suggested written posts:
Async HTTP webserver introduction: techtutorialsx.com/2017/12/01/esp32-arduino-asynchronous-http-webserver
Websockets server on the ESP32: techtutorialsx.com/2018/08/14/esp32-async-http-web-server-websockets-introduction
For a written version of this tutorial with the full source code, please check here: techtutorialsx.com/2020/06/13/esp32-camera-face-detection
Useful links:
The face detection ESP32 component: github.com/espressif/esp-face/tree/4f13bd33132f0d6ce841ee1d31186803cf194b3f
ESP-WHO: github.com/espressif/esp-who
The ESP32 camera driver: github.com/espressif/esp32-camera
Fine tuning the MTMN parameters: github.com/espressif/esp-face/tree/master/face_detection
Original example from the Arduino core: github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer
Camera board model used (eBay link): ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=ESP32-CAM-CH340&_sacat=0&LH_TitleDesc=0&_osacat=0&_odkw=HW-818+esp32
RGB888 - image format where each channel (R, G and B) have 8 bits each
More tutorials on the camera on my blog:
techtutorialsx.com/2020/06/10/esp32-camera-image-server
Plenty more ESP32 written tutorials (more than 300!):
techtutorialsx.com/category/esp32
For a written tutorial with source code, please check the corresponding post on my blog: techtutorialsx.com/2020/06/10/esp32-camera-image-server
I'm using a HW-818 camera board model and a OV2640 camera. The board can be found at eBay: ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=ESP32-CAM-CH340&_sacat=0&LH_TitleDesc=0&_osacat=0&_odkw=HW-818+esp32
We will make use of the async HTTP web server library: github.com/me-no-dev/ESPAsyncWebServer
For an introductory tutorial on how to use this server library, please check my other videos or my blog: techtutorialsx.com/2017/12/01/esp32-arduino-asynchronous-http-webserver
Some corrections / additional information of what was mentioned on the video:
- xclk_freq_hz is the frequency of the clock signal of the camera, not the crystal frequency, like mentioned. The value of 20000000 Hz is one of the possible values that should be used for the OV2640 (note here: github.com/espressif/esp32-camera/blob/4af111a5e274a2973fa10cd3c1ec69174a1bdb93/driver/include/esp_camera.h#L98)
- fb_count is the number of frame buffers to be allocated (not the number of frames, like mentioned).
You can find more information about the camera driver here: github.com/espressif/esp32-camera
Arduino core example mentioned in the video: github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer
Pin definitions for each camera board: github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h
Frame sizes enum: github.com/espressif/esp32-camera/blob/9f99b1b03ccfbd1937c3aee96f563af9df1e0ba6/driver/include/sensor.h#L57
Pixel format enums: github.com/espressif/esp32-camera/blob/9f99b1b03ccfbd1937c3aee96f563af9df1e0ba6/driver/include/sensor.h#L29
For a lot more ESP32 tutorials (more than 300!), please check my blog: techtutorialsx.com/category/esp32
Also for the ESP8266: techtutorialsx.com/category/esp8266
All the code shown here comes from the Arduino core example and the aim of this video is to demonstrate how to use it as a simple way to confirm our hardware is working before jumping into custom code for our application.
This example will start a HTTP server from which we can get a camera stream, take images and fine tune a lot of camera parameters (resolution, brightness, contrast...) from a UI.
Arduino Example: github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer
The camera model used in the video can be bought at ebay for around 10 euros: ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=ESP32-CAM-CH340&_sacat=0&LH_TitleDesc=0&_osacat=0&_odkw=HW-818+esp32
A camera tutorial from my blog: techtutorialsx.com/2020/06/10/esp32-camera-image-server
Plenty more written tutorials for the ESP32 at my blog:
techtutorialsx.com/category/esp32
We will also check the code to program another ESP32 as inquirer of these two services.
The code for this tutorial is very similar from what we have been covering before. The main focus is to illustrate that the ESP32 is capable of handling the advertisement of multiple services.
The code for both devices will be implemented using the Arduino core.
FireBeetle board: dfrobot.com/product-1590.html
You can find many more ESP32 tutorials (300+) at my blog: techtutorialsx.com
We will be using the Arduino core to program both devices.
For a written version of this tutorial containing the whole code, please check here: techtutorialsx.com/2020/04/27/esp32-query-mdns-service
ESP32 FireBeetle board dfrobot.com/product-1590.html
Check more ESP32 and ESP8266 tutorials at my blog:
techtutorialsx.com
For a written tutorial with all the source code and detailed step by step explanation, please check here: techtutorialsx.com/2020/04/21/esp32-arduino-set-static-ip-address
Tutorial on how to Ping a remote host with the ESP32: techtutorialsx.com/2019/10/05/esp32-arduino-pinging-a-remote-host
Very good article about DHCP on home networks: stevessmarthomeguide.com/understanding-dhcp-home-networks
FireBeetle board from DFRobot: dfrobot.com/product-1590.html
Check my blog for more ESP32 tutorials: techtutorialsx.com
Our network service will be a simple HTTP web server. We will be using the async HTTP web server library to set it up. Nonetheless, it could be something else other than a HTTP server.
Written tutorial with all the source code: techtutorialsx.com/2020/04/18/esp32-advertise-service-with-mdns
pip (Python package installer): pypi.org/project/pip
Zeroconf library: pypi.org/project/zeroconf
Requests library: requests.readthedocs.io/en/master
Commands to install both libraries with pip:
pip install zeroconf
pip install requests
PyCharm IDE: jetbrains.com/pycharm/download/#section=windows
mDNS IDF library documentation: docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/mdns.html
Common network service names: http://www.dns-sd.org/serviceTypes.html
Async HTTP web server (written post): techtutorialsx.com/2017/12/01/esp32-arduino-asynchronous-http-webserver
This means that we don't need to know the actual IP address of the ESP32 to reach the server it is hosting since mDNS will allow us to do the resolution of a known hostname into the IP address of the device.
Another big advantage of mDNS is that it doesn't need a dedicated infra-structure for the name resolution, like a traditional DNS server.
You can get the complete code from this written tutorial at my blog: techtutorialsx.com/2020/04/17/esp32-mdns-address-resolution
Setting up HTTP web server (written post): techtutorialsx.com/2017/12/01/esp32-arduino-asynchronous-http-webserver
Setting up HTTP web server (video): youtube.com/watch?v=BvePZCJ7tMY
IDF mDNS documentation: docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/mdns.html
Bounjour (for Windows): support.apple.com/downloads/bonjour-for-windows
Avahi (for Linux): github.com/lathiat/avahi
You can check a written tutorial with full source code here: techtutorialsx.com/2020/04/04/esp32-checking-if-ps4-controller-is-charging
Introductory tutorial explaining how to obtain the Bluetooth MAC address stored in the controller: youtube.com/watch?v=4fOSjKJIB1Q
How to detect a controller connection with a callback function: youtube.com/watch?v=8tawH4bsln8
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Arduino library: github.com/NURobotics/PS4-esp32
This approach is more optimized since we don't need to resort to polling, like we did in the introductory video (youtu.be/4fOSjKJIB1Q). Note that the video also contains a detailed explanation on the setup we need to do to obtain the Bluetooth MAC address stored on the PS4 controller.
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Written tutorial with all the source code: techtutorialsx.com/2020/02/16/esp32-ps4-controller-connection-event
Arduino Library used: github.com/NURobotics/PS4-esp32
You can check below a written version of the tutorial at my blog. It contains the full source code: techtutorialsx.com/2020/02/15/esp32-connecting-a-ps4-controller
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Library used: github.com/NURobotics/PS4-esp32
SixAxis Pair Tool: dancingpixelstudios.com/sixaxis-controller/sixaxispairtool
ESP-NOW Overview: espressif.com/en/products/software/esp-now/overview
ESP-NOW Documentation: docs.espressif.com/projects/esp-idf/en/latest/api-reference/network/esp_now.html
IDF: github.com/espressif/esp-idf
FireBeetle ESP32: dfrobot.com/product-1590.html
Beetle ESP32: dfrobot.com/product-1798.html
In this video we will be testing the code in the ESP32, using the Arduino core. Nonetheless, the code also works on the ESP8266, as cpplinq is a generic C++ library.
Tested on the ESP32 FireBeetle board: dfrobot.com/product-1590.html
Also tested on the ESP8266 FireBeetle board: dfrobot.com/product-1634.html
In this video we will be testing the code in the ESP32, using the Arduino core. Nonetheless, the code also works on the ESP8266, as cpplinq is a generic C++ library.
Tested on the ESP32 FireBeetle board: dfrobot.com/product-1590.html
Also tested on the ESP8266 FireBeetle board: dfrobot.com/product-1634.html
The tutorial shows the code running on the ESP32, using the Arduino core. Nonetheless, it also works on the ESP8266 since cpplinq is a generic C++ library that can be used as an Arduino library.
Tested on the ESP32 FireBeetle board: dfrobot.com/product-1590.html
Also tested on the ESP8266 FireBeetle board: dfrobot.com/product-1634.html
Tutorial on chaining cpplinq operators: youtube.com/watch?v=20LNxRhcR7c&feature=youtu.be
Tutorial on filtering an array with cpplinq: youtube.com/watch?v=sf2X_X7wtBg
The tests shown here were done on an ESP32 board but the code also works on the ESP8266, since cpplinq is a generic C++ library.
cpplinq: github.com/mrange/cpplinq
ESP32 FireBeetle board: dfrobot.com/product-1590.html
This tutorial was also tested on the ESP8266, on a FireBeetle board:
dfrobot.com/product-1634.html
Filtering an array with cpplinq: youtube.com/watch?v=sf2X_X7wtBg
We will be using an ESP32 as target board and the cpplinq library will be used as an Arduino library.
cpplinq: github.com/mrange/cpplinq
The tests shown on this video were done on a ESP32 FireBeetle board from DFRobot: dfrobot.com/product-1590.html
Since cpplinq is a generic C++ library, the code also works on the ESP8266. Tested on a ESP8266 FireBeetle board: dfrobot.com/product-1634.html
This operator is very simple but very useful, specially when used in more complex expression trees.
cpplinq: github.com/mrange/cpplinq
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Also tested on the ESP8266 FireBeetle board: dfrobot.com/product-1634.html
Cpplinq: github.com/mrange/cpplinq
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Tested on an ESP32 FireBeetle board from DFRobot: dfrobot.com/product-1590.html
Previous introductory tutorial on the library: youtu.be/s2GSkrXLLFI
TinyXML-2 GitHub page: github.com/leethomason/tinyxml2
TinyXML-2 documentation page: http://leethomason.github.io/tinyxml2/index.html
QueryIntAttribute documentation: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1
Note: On the video, I've mistakenly mentioned that the output of the FirstChildElement method is a XMLDocument object pointer, but it is a XMLElement object pointer.
Tested on an ESP32 FireBeetle board from DFRobot: dfrobot.com/product-1590.html
TinyXML2 GitHub page: github.com/leethomason/tinyxml2
TinyXML-2 Documentation page: http://leethomason.github.io/tinyxml2/index.html
Parse method documentation: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_document.html#a1819bd34f540a7304c105a6232d25a1f
FirstChild method documentation: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08
FirstChildElement method documentation: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b
QueryIntText method documentation: http://leethomason.github.io/tinyxml2/classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632
In case of error, the QueryIntText method returns:
- XML_CAN_NOT_CONVERT_TEXT: if the text cannot be converted to the requested type (int)
- XML_NO_TEXT_NODE if there is no child text to query.
The tutorial demonstrated here is done on the ESP32 but the code also works on the ESP8266, since cpplinq is a generic C++ library.
ESP32 Firebeetle board: dfrobot.com/product-1590.html
Cpplinq: github.com/mrange/cpplinq
Written version of this tutorial with source code:
techtutorialsx.com/2019/09/07/esp32-soft-ap-station-connection-event
GitHub issue: github.com/espressif/arduino-esp32/issues/2285
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
Related Written Posts:
- ESP32 Arduino soft AP: Station disconnected event techtutorialsx.com/2019/09/22/esp32-soft-ap-station-disconnected-event
- ESP32 Arduino soft AP: Obtaining IP address of connected stations techtutorialsx.com/2019/09/22/esp32-arduino-soft-ap-obtaining-ip-address-of-connected-stations
Plenty of other (written) ESP32 tutorials at my blog:
techtutorialsx.com/category/esp32
Also a lot of ESP8266 tutorials:
techtutorialsx.com/category/esp8266
Written version of the tutorial:
techtutorialsx.com/2019/09/03/esp32-using-lambdas-as-wifi-event-handling-functions
ESP32 FireBeetle board from DFRobot: dfrobot.com/product-1590.html
C++ Lambda syntax:
en.cppreference.com/w/cpp/language/lambda
Related tutorials
- ESP32 Soft AP: Enable IPv6 support: techtutorialsx.com/2019/10/02/esp32-soft-ap-enabling-ipv6-support
- ESP32 Soft AP: deauth connected stations: techtutorialsx.com/2019/09/22/esp32-soft-ap-deauth-connected-stations
A lot of ESP32 written tutorials:
techtutorialsx.com/category/esp32
You can check below a written version of the tutorial (the code is slightly different):
techtutorialsx.com/2019/09/01/esp32-wifi-events-station-got-ip-address
ESP32 FireBeetle board from DFRobot: dfrobot.com/product-1590.html
Related (written) tutorials:
- ESP32 Soft AP: obtaining IP address of connected stations: techtutorialsx.com/2019/09/22/esp32-arduino-soft-ap-obtaining-ip-address-of-connected-stations
- ESP32 soft AP: Getting number of connected stations: techtutorialsx.com/2019/09/22/esp32-soft-ap-getting-number-of-stations-connected
A lot of ESP32 written tutorials:
techtutorialsx.com/category/esp32
You can check here a written version of this tutorial:
techtutorialsx.com/2019/08/11/esp32-arduino-getting-started-with-wifi-events
ESP32 FireBeetle board from DFRobot: dfrobot.com/product-1590.html
Related tutorials:
ESP32 Soft AP: Station disconnected event: techtutorialsx.com/2019/09/22/esp32-soft-ap-station-disconnected-event
ESP32 Soft AP: Station connection event: techtutorialsx.com/2019/09/07/esp32-soft-ap-station-connection-event
ESP32 Soft AP: Getting MAC address of connecting device: techtutorialsx.com/2019/09/07/esp32-soft-ap-getting-connecting-station-mac-address-from-wifi-event
A lot of ESP32 written tutorials:
techtutorialsx.com/category/esp32
The tests shown on the video were done on the ESP32, but the library also works on the ESP8266.
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
ESP8266 FireBeetle board:
dfrobot.com/product-1634.html
C++ Lambda syntax:
en.cppreference.com/w/cpp/language/lambda
Related Written tutorials:
The pairwise operator: techtutorialsx.com/2019/08/15/esp32-esp8266-arduino-the-pairwise-operator
The except operator: techtutorialsx.com/2019/08/14/esp32-esp8266-cpplinq-the-except-operator
Intersection of arrays: techtutorialsx.com/2019/08/11/esp32-esp8266-cpplinq-finding-the-intersection-between-two-arrays
A lot more written tutorials for the ESP32:
techtutorialsx.com/category/esp32
The tests shown on the video were done on the ESP32, but the library also works on the ESP8266.
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
ESP8266 FireBeetle board:
dfrobot.com/product-1634.html
Written tutorial with installation instructions for cpplinq and a code sample:
techtutorialsx.com/2019/04/12/esp32-arduino-getting-started-with-the-cpplinq-library
C++ Lambda syntax:
en.cppreference.com/w/cpp/language/lambda
Related Written tutorials:
- Count operator: techtutorialsx.com/2019/04/17/esp32-arduino-cpplinq-the-count-operator
- Concatenating arrays: techtutorialsx.com/2019/04/20/esp32-cpplinq-concatenating-arrays
- The average operator: techtutorialsx.com/2019/04/25/esp32-arduino-cpplinq-the-average-operator
A lot of ESP32 written tutorials (more than 250!):
- techtutorialsx.com/category/esp32
ESP8266 tutorials:
- techtutorialsx.com/category/esp8266
This will be tested using the Arduino core. The tests shown on the video were done on the ESP32, but the library also works on the ESP8266.
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
ESP8266 FireBeetle board:
dfrobot.com/product-1634.html
Written tutorial with installation instructions and a code sample:
techtutorialsx.com/2019/04/12/esp32-arduino-getting-started-with-the-cpplinq-library
Written post about testing the library on the ESP8266:
techtutorialsx.com/2019/07/23/esp8266-arduino-testing-the-cpplinq-library
GitHub page of the library:
github.com/mrange/cpplinq
Library website:
archive.codeplex.com/?p=cpplinq
Interesting reading:
codeproject.com/Articles/488177/cpplinq-LINQ-Query-Operators-for-Cplusplus-Sequenc
LINQ (C#):
docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq
High order functions:
en.wikipedia.org/wiki/Higher-order_function
Related tutorials (written)
- Filtering an array: techtutorialsx.com/2019/04/13/esp32-arduino-filtering-arrays-with-cpplinq
- Min and Max operators: techtutorialsx.com/2019/04/13/esp32-arduino-cpplinq-getting-minimum-and-maximum-values-from-array
- Reversing an array: techtutorialsx.com/2019/05/11/esp32-cpplinq-reversing-an-array
- The any operator: techtutorialsx.com/2019/04/25/esp32-arduino-cpplinq-the-any-operator
A lot of other ESP32 written tutorials (more than 250!):
- techtutorialsx.com/category/esp32
ESP8266 tutorials:
- techtutorialsx.com/category/esp8266
Written tutorial with the full source code:
techtutorialsx.com/2019/06/02/esp8266-spiffs-reading-a-file
ESP8266 FireBeetle board from DFRobot:
dfrobot.com/product-1634.html
More related tutorials at my blog:
ESP32 SPIFFS: Writing a file: techtutorialsx.com/2018/08/05/esp32-arduino-spiffs-writing-a-file
ESP32 SPIFFS: Renaming a file: techtutorialsx.com/2019/02/24/esp32-arduino-renaming-a-file-in-the-spiffs-file-system
ESP32 SPIFFS: Getting file size: techtutorialsx.com/2018/08/06/esp32-arduino-spiffs-getting-the-size-of-a-file
More ESP8266 tutorials at my blog:
techtutorialsx.com/category/esp8266
Also ESP32 written tutorials:
techtutorialsx.com/category/esp32
Written tutorial with complete source code:
techtutorialsx.com/2019/05/28/esp8266-spiffs-writing-a-file
FireBeetle board from DFRobot:
dfrobot.com/product-1634.html
Related Written tutorials:
ESP8266 mounting the SPIFFS file system: techtutorialsx.com/2019/05/27/esp8266-arduino-mounting-the-spiffs-file-system
ESP8266 reading a file from SPIFFS: techtutorialsx.com/2019/06/02/esp8266-spiffs-reading-a-file
Plenty more ESP8266 tutorials:
techtutorialsx.com/category/esp8266
Written version of this tutorial, with full source code:
techtutorialsx.com/2019/05/28/esp8266-spiffs-writing-a-file
ESP8266 FireBeetle board from DFRobot:
dfrobot.com/product-1634.html
FS.h file: github.com/esp8266/Arduino/blob/eea9999dc5eaf464a432f77d5b65269f9baf198d/cores/esp8266/FS.h
SPIFFS original implementation: github.com/pellepl/spiffs
More about SPIFFSon the ESP8266: arduino-esp8266.readthedocs.io/en/2.5.2/filesystem.html
Related Written tutorials:
ESP8266 SPIFFS: writing a file: techtutorialsx.com/2019/05/28/esp8266-spiffs-writing-a-file
ESP8266 SPIFFS: reading a file: techtutorialsx.com/2019/06/02/esp8266-spiffs-reading-a-file
Plenty more ESP8266 tutorials at my blog:
techtutorialsx.com/category/esp8266
ESP32 tutorials:
techtutorialsx.com/category/esp32
Async HTTP web server library:
github.com/me-no-dev/ESPAsyncWebServer
ESP32 Arduino IDE SPIFFS plugin:
youtube.com/watch?v=1y03xt6IM-o
ESP32 Arduino: Serve HTML file from SPIFFS:
youtube.com/watch?v=Ijr6vep-XYQ
ESP32 Arduino: Serve HTML file as attachment:
youtube.com/watch?v=HjkoB-qa51E
Serving an image from the ESP32 SPIFFS file system:
youtube.com/watch?v=H_rnArt25SI&feature=youtu.be
Firebeetle board:
dfrobot.com/product-1590.html
Related (written) tutorials:
- ESP32 Arduino: Serving files as attachment: techtutorialsx.com/2019/03/29/esp32-arduino-serving-file-as-attachment
- ESP32 Arduino: Serving an image: techtutorialsx.com/2018/08/24/esp32-http-web-server-serving-image-from-file-system
- ESP32 Arduino Async HTTP web server: techtutorialsx.com/2017/12/01/esp32-arduino-asynchronous-http-webserver
- ESP32 Arduino HTTPS server: techtutorialsx.com/2019/04/07/esp32-https-web-server
Plenty more ESP32 Written tutorials at my blog:
techtutorialsx.com/category/esp32
Written version with all source code:
techtutorialsx.com/2018/08/24/esp32-http-web-server-serving-image-from-file-system
Async HTTP web server library:
github.com/me-no-dev/ESPAsyncWebServer
ESP32 Arduino IDE SPIFFS plugin:
youtube.com/watch?v=1y03xt6IM-o
ESP32 Arduino: Serve HTML file from SPIFFS:
youtube.com/watch?v=Ijr6vep-XYQ
ESP32 Arduino: Serve HTML file as attachment:
youtube.com/watch?v=HjkoB-qa51E
Firebeetle board:
dfrobot.com/product-1590.html
Related (written) tutorials:
- ESP32 Arduino: Serving bootstrap: techtutorialsx.com/2019/03/04/esp32-arduino-serving-bootstrap
- ESP32 Arduino Async HTTP web server: techtutorialsx.com/2017/12/01/esp32-arduino-asynchronous-http-webserver
- ESP32 Arduino HTTP server: template processing: techtutorialsx.com/2018/07/22/esp32-arduino-http-server-template-processing
- ESP32 Arduino HTTPS server: techtutorialsx.com/2019/04/07/esp32-https-web-server
Plenty more ESP32 Written tutorials at my blog:
techtutorialsx.com/category/esp32
You can check a written tutorial on my blog, with the full source code:
techtutorialsx.com/2019/03/29/esp32-arduino-serving-file-as-attachment
Arduino IDE SPIFFS upload plugin:
github.com/me-no-dev/arduino-esp32fs-plugin
Video on how to use the SPIFFS plugin:
youtube.com/watch?v=1y03xt6IM-o
Video on how to serve HTML from the file system:
youtube.com/watch?v=Ijr6vep-XYQ
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
Related Written tutorials at my blog:
ESP32 Serving a React.js app: techtutorialsx.com/2019/03/24/esp32-arduino-serving-a-react-js-app
ESP32 Serving jQuery: techtutorialsx.com/2018/09/11/esp32-arduino-web-server-serving-jquery
ESP32 Arduino: Controlling a DC motor remotely via HTTP: techtutorialsx.com/2019/03/31/esp32-arduino-controlling-a-dc-motor-remotely-using-http
Plenty more tutorials at my blog:
techtutorialsx.com/category/esp32
Also for the ESP8266:
techtutorialsx.com/category/esp8266
For a written version of this tutorial, with the full source code, please check my blog below:
techtutorialsx.com/2018/08/24/esp32-web-server-serving-html-from-file-system
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
Arduino IDE file upload plugin:
github.com/me-no-dev/arduino-esp32fs-plugin#installation
Async HTTP web server framework:
github.com/me-no-dev/ESPAsyncWebServer
Async HTTP web server video tutorial:
youtube.com/watch?v=BvePZCJ7tMY
Related content:
- Serving image from file system: techtutorialsx.com/2018/08/24/esp32-http-web-server-serving-image-from-file-system
- Serving Bootstrap from SPIFFS file system: techtutorialsx.com/2019/03/04/esp32-arduino-serving-bootstrap
Plenty more ESP32 tutorials (written) at my blog:
techtutorialsx.com/category/esp32
For a written version of this tutorial with the source code, please check here:
techtutorialsx.com/2018/08/24/esp32-arduino-spiffs-file-upload-ide-plugin
Video tutorial explaining how to read a file from the SPIFFS file system:
youtube.com/watch?v=xc93ygUngmI
Arduino IDE plugin:
github.com/me-no-dev/arduino-esp32fs-plugin
Installation instructions:
github.com/me-no-dev/arduino-esp32fs-plugin#installation
FireBeetle board:
dfrobot.com/product-1590.html
Related tutorials (written):
- Serving HTML from the SPIFFS ESP32 file system: techtutorialsx.com/2018/08/24/esp32-web-server-serving-html-from-file-system
- Serving jQuery: techtutorialsx.com/2018/09/11/esp32-arduino-web-server-serving-jquery
- Serving Bootstrap from ESP32 SPIFFS: techtutorialsx.com/2019/03/04/esp32-arduino-serving-bootstrap
- Serving image from SPIFFS: techtutorialsx.com/2018/08/24/esp32-http-web-server-serving-image-from-file-system
Plenty more tutorials at my blog:
techtutorialsx.com/category/esp32
For a written version of this tutorial, please check my blog below. It contains the full source code.
techtutorialsx.com/2018/10/06/esp32-arduino-spiffs-testing-if-file-exists
Related videos:
Write to file: youtube.com/watch?v=PAZUG7oSAwA
Read from file: youtube.com/watch?v=xc93ygUngmI
Append content to file: youtube.com/watch?v=8vJz1XYejHA
FireBeetle board:
dfrobot.com/product-1590.html
Related written tutorials:
- Getting total bytes used in the SPIFFS file system: techtutorialsx.com/2019/03/03/esp32-arduino-spiffs-getting-total-bytes-used
- Deleting a file from the SPIFFS file system: techtutorialsx.com/2019/02/24/esp32-arduino-removing-a-file-from-the-spiffs-file-system
Plenty more tutorials at my blog:
techtutorialsx.com/category/esp32
For a detailed written tutorial with source code, please check my blog:
techtutorialsx.com/2018/08/13/esp32-arduino-spiffs-append-content-to-file
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
Related videos
Write a file: youtube.com/watch?v=PAZUG7oSAwA
Read a file: youtube.com/watch?v=xc93ygUngmI&feature=youtu.be
Related written posts:
- Serving jQuery from SPIFFS with the ESP32: techtutorialsx.com/2018/09/11/esp32-arduino-web-server-serving-jquery
- Serving image from the ESP32 SPIFFS file system: techtutorialsx.com/2018/08/24/esp32-http-web-server-serving-image-from-file-system
- Serving HTML from the SPIFFS file system: techtutorialsx.com/2018/08/24/esp32-web-server-serving-html-from-file-system
Plenty other ESP32 tutorials:
techtutorialsx.com/category/esp32
For a written version of the tutorial with the full source code, please check my blog:
techtutorialsx.com/2018/08/05/esp32-arduino-spiffs-reading-a-file
Writing a file video tutorial: youtube.com/watch?v=PAZUG7oSAwA&feature=youtu.be
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
Related content (Written posts from my blog):
- Getting total bytes used in SPIFFS: techtutorialsx.com/2019/03/03/esp32-arduino-spiffs-getting-total-bytes-used
- Renaming a file on the ESP32 SPIFFS file system: techtutorialsx.com/2019/02/24/esp32-arduino-renaming-a-file-in-the-spiffs-file-system
- Testing if file exists in the ESP32 SPIFFS file system: techtutorialsx.com/2018/10/06/esp32-arduino-spiffs-testing-if-file-exists
Lots of other ESP32 other tutorials:
techtutorialsx.com/category/esp32
SPIFFS stands for SPI Flash File System and it is one of the file system types supported by the ESP32.
Written tutorial at my blog, with full source code:
techtutorialsx.com/2018/08/05/esp32-arduino-spiffs-writing-a-file
Video with the explanation on how to read a file: youtube.com/watch?v=xc93ygUngmI&feature=youtu.be
ESP32 FireBeetle board from DFRobot:
dfrobot.com/product-1590.html
SPIFFS file system GitHub project: github.com/pellepl/spiffs
IDF documentation: docs.espressif.com/projects/esp-idf/en/latest/api-reference/storage/spiffs.html
SPIFFS Arduino core header file:github.com/espressif/arduino-esp32/blob/master/libraries/SPIFFS/src/SPIFFS.h
File class: github.com/espressif/arduino-esp32/blob/master/libraries/FS/src/FS.h#L47
Related content (written tutorials):
- Append content to file in SPIFFS: techtutorialsx.com/2018/08/13/esp32-arduino-spiffs-append-content-to-file
- Serving Bootstrap from the ESP32 SPIFFS file system: techtutorialsx.com/2019/03/04/esp32-arduino-serving-bootstrap
- SPIFFS file upload plugin: techtutorialsx.com/2018/08/24/esp32-arduino-spiffs-file-upload-ide-plugin
Written tutorial with code: techtutorialsx.com/2019/01/07/esp32-arduino-http-put-request
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Testing online API: http://jsonplaceholder.typicode.com
Postman tool: getpostman.com
PUT vs POST in REST: restfulapi.net/rest-put-vs-post
Related Posts (written)
- ESP32 HTTP GET request: techtutorialsx.com/2017/05/19/esp32-http-get-requests
- ESP32 HTTP/2 GET request: techtutorialsx.com/2018/11/19/esp32-arduino-http-2-get-request
- ESP32 HTTP POST request: techtutorialsx.com/2017/05/20/esp32-http-post-requests
- ESP32 HTTP/2 POST request: techtutorialsx.com/2018/12/19/esp32-http-2-post-request
- ESP32 HTTP/2 PUT request: techtutorialsx.com/2019/01/06/esp32-http-2-put-request
A lot more ESP32 (written) tutorials:
techtutorialsx.com/category/esp32
Written tutorial: techtutorialsx.com/2019/01/11/esp32-arduino-receiving-a-ping
ESP32 FireBeetle board: dfrobot.com/product-1590.html
Related tutorials (Written)
- ESP32 Arduino: Get station interface hostname: techtutorialsx.com/2019/01/17/esp32-arduino-getting-station-interface-hostname
Plenty more ESP32 written tutorials:
techtutorialsx.com/category/esp32
Written tutorial with complete source code:
techtutorialsx.com/2018/11/25/esp32-http-2-adding-headers-to-get-request
Installing sh2lib (video):
youtube.com/watch?v=00P8oIbNK-Q
FireBeetle board:
dfrobot.com/product-1590.html
Pseudo-headers section of HTTP/2 RFC:
tools.ietf.org/html/rfc7540#section-8.1.2.3
sh2lib in IDF repository:
github.com/espressif/esp-idf/tree/master/examples/protocols/http2_request/components/sh2lib
Related Posts (Written):
ESP32 HTTP/2 POST request: techtutorialsx.com/2018/12/19/esp32-http-2-post-request
ESP32 HTTP/2 PUT request: techtutorialsx.com/2019/01/06/esp32-http-2-put-request
ESP32 HTTP/2 with Brotli content: techtutorialsx.com/2018/12/08/esp32-http-2-decompressing-brotli-encoded-content
Many other ESP32 tutorials at my blog:
techtutorialsx.com/category/esp32
Written tutorial with code:
techtutorialsx.com/2018/12/02/esp32-arduino-http2-using-query-parameters
FireBeetle board:
dfrobot.com/product-1590.html
HTTP/2 RFC:
tools.ietf.org/html/rfc7540
Installing the sh2lib wrapper (video):
youtube.com/watch?v=00P8oIbNK-Q
Related Posts (written):
ESP32 Arduino HTTP/2 connect to server:
techtutorialsx.com/2018/11/18/esp32-http-2-connecting-to-server
ESP32 Arduino HTTP/2 POST request with headers:
techtutorialsx.com/2019/01/04/esp32-http-2-post-request-with-headers
Many other ESP32 tutorials at my blog:
techtutorialsx.com/category/esp32
We will be using the sh2lib wrapper, installed as a Arduino library. You check here a video tutorial explaining how to setup sh2lib:
youtube.com/watch?v=00P8oIbNK-Q
Written tutorial with source code (it uses a different endpoint):
techtutorialsx.com/2018/11/19/esp32-arduino-http-2-get-request
Video about creating FreeRTOS task:
youtube.com/watch?v=NEq-L9TNMts
IDF original HTTP/2 example:
github.com/espressif/esp-idf/blob/master/examples/protocols/http2_request/main/http2_request_example_main.c
ESP32 FireBeetle board:
dfrobot.com/product-1590.html
Related posts (written):
ESP32 HTTP/2 GET request with stream response
techtutorialsx.com/2018/11/23/esp32-http-2-get-request-with-continuous-stream-response
ESP32 HTTP/2 GET request add headers:
techtutorialsx.com/2018/11/25/esp32-http-2-adding-headers-to-get-request
ESP32 HTTP/2 GET request decompress Brotli encoded response:
techtutorialsx.com/2018/12/08/esp32-http-2-decompressing-brotli-encoded-content
ESP32 Create FreeRTOS task:
techtutorialsx.com/2017/05/06/esp32-arduino-creating-a-task
Many more ESP32 tutorials:
techtutorialsx.com/category/esp32
Previous video where we obtained the station interface MAC address:
youtube.com/watch?v=IUgoUGMGJMs&feature=youtu.be
ESP32 FireBeetle board used in the tutorial:
dfrobot.com/product-1590.html
MAC vendor lookup website:
macvendors.com
File with implementation of softAPmacAddress method:
github.com/espressif/arduino-esp32/blob/14ff311479065c84c01eb75b7efc94627e230bcf/libraries/WiFi/src/WiFiAP.cpp
Related Posts (written):
ESP32 Setting a soft AP: techtutorialsx.com/2017/07/26/esp32-arduino-setting-a-soft-ap
ESP32 Get started with WiFi: techtutorialsx.com/2017/06/29/esp32-arduino-getting-started-with-wifi
Get ESP32 Bluetooth address: techtutorialsx.com/2018/03/09/esp32-arduino-getting-the-bluetooth-device-address
More (written) ESP32 tutorials:
techtutorialsx.com/category/esp32


