ESP8266 IoT Web server Optimization Using Arduino IDE
- You should know how to program ESP8266 with Arduino IDE
By using GZIP compression, we can reduce bandwidth usage, can increase server speed, and efficiently utilize smaller memories that are issues of prime importance when we are dealing with some embedded platform like ESP8266.
In this course, you will learn all about ESP8266 web server optimization for better performance and optimum utilization of available resources like program and data memories.
I've added some basics like how to add HTML, CSS, JS and graphic contents in ES8266 Arduino sketch, you will find it as simple as ABC even if you are at beginner level.
If you have already developed some embedded webserver, you will be able to improve its performance by utilizing techniques learned in this course.
Here are key points you will learn
- How to add web contents like html/css/images etc in Arduino sketch
- How to do simple minification of server contents
- How to use Gzip compression on minified contents
- How to use proper HTTP headers in Arduino sketch for caching static server resources
- How to use SPIFFS as server contents storage space to allow all program memory space to be utilized by Arduino sketch.
You will also be able to utilize this compression technique with any embedded platform like Arduino Ethernet/Wifi shields, Mbed, PIC18F97J60 (or any other Microchip Ethernet controller like ENC28j60), STM32F407 (or any other STM32 controller) etc.
To sum up, you will be able use GZIP compression whenever you are coding in C/C++ for any embedded platform, and right now, we are going to test it on Espressif ESP8266 SoC.
This is going to be real simple but many people have no idea how to do it, and I'm sure anyone can learn it in few minutes.
Please note that this is not a web development course, rather it will teach you best and easiest possible way to handle web contents in Arduino Sketch.
You will get complete webserver code and Arduino sketch that you can modify according to your requirements. Please check introductory lecture that shows how this webserver works.
Which ESP8266 board you need for testing as there are many available?
You may use any ESP board that have multiple IO pins, not necessarily Nodemcu.
- Students or developers working on embedded webservers.
- Overview of course03:30
- Learn to add simple HTML in Arduino sketch03:32
- Why not explained all basics?00:19
- Let's try some HTML+CSS02:45
- Learn to add Graphic contents in Arduino sketch03:57
- Let's do something real with JS05:42
- Try out some real web server with multiple files04:27
- Learn basic minification technique03:37
- Learn to Gzip server contents04:18
- Learn to add Gzipped contents in Arduino sketch01:26
- Learn to handle Gzipped contents in Arduino Sketch02:55
- Checkout Gzip compression impact on performance01:22
- Verify all with Wireshark01:21
- Learn server optimization with HTTP Caching00:19
- Let's try HTTP Caching to further speed up ESP8266 server01:53
- Learn to save server contents to SPIFFS03:16
- Handling server contents stored in SPIFFS04:07
- Fix the bug00:55
- mikroC TCP/IP library, Lwip TCP/IP stack00:34
- ESP32 Webserver library00:45
- Control ESP8266/ESP32 from Google Assistant02:21
Farrukh is enthusiastic embedded system developer with expert level skills in C programming, low power RF chips, BLE, embedded web servers, 8/32bit microcontroller families and smart metering. As a freelancer, he completed more than forty embedded system projects at freelancer.com, he developed PIC18 based web server with mikroC Ethernet Library, STM32F407 web server with LwIP TCP/IP stack, and recently developed ESP8266 and ESP32 based web servers. He also developed Serial-Display firmware for Newhaven Display International, Inc USA.