ESP8266 IoT Web server Optimization Using Arduino IDE
4.3 (36 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,746 students enrolled
Wishlisted Wishlist

Please confirm that you want to add ESP8266 IoT Web server Optimization Using Arduino IDE to your Wishlist.

Add to Wishlist

ESP8266 IoT Web server Optimization Using Arduino IDE

Learn to use GZIP compression and improve ESP8266 IoT web server performance.
4.3 (36 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,746 students enrolled
Created by Farrukh Hussain
Last updated 9/2017
Current price: $10 Original price: $30 Discount: 67% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 1 hour on-demand video
  • 5 Articles
  • 7 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn to put html/css/js/images in Arduino code super fast
  • Learn simple minification for improving server performance
  • Learn to use Gzip compression for improving server performance
  • Learn to use HTTP headers properly
  • Will be able to apply learned technique in few minutes
View Curriculum
  • 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.

Happy learning.

Who is the target audience?
  • Students or developers working on embedded webservers.
Compare to Other Arduino Courses
Curriculum For This Course
1 Lecture 03:30

Introduction to course.

Preview 03:30
Learn to put web contents in Arduino sketch
6 Lectures 20:41

Students will learn how to convert HTML to C string format and will be able to easily add HTML to Arduino sketch.

Preview 03:32

Why not explained all basics?

Learn to add CSS to arduino sketch,

Preview 02:45

Students will be able to add images/graphics in Arduino sketch.

Learn to add Graphic contents in Arduino sketch

Learn to control relay from web browser. 

Preview 05:42

Students will learn to put multiple files in Arduino sketch, this is needed when we have to develop real embedded web-servers for industry. You may need to add HTML/CSS/JS/images etc. Learn how to do handle all.

Try out some real web server with multiple files
Learn Server Optimization
8 Lectures 17:11

students will be able remove whitespace characters and useless/redundant newline characters by using simple online tools. This is how you can easily save some flash memory. 

Learn basic minification technique

Learn to Gzip any file/server-contents before we put that into Arduino sketch. 

Learn to Gzip server contents

Students will be able put Gzipped contents in Arduino sketch. 

Learn to add Gzipped contents in Arduino sketch

Students will be able to handle gzipped contents after they are added in Arduino sketch.

Learn to handle Gzipped contents in Arduino Sketch

Just test if gzip compression have any impact on server performance. 

Checkout Gzip compression impact on performance

Learn to use Wireshark for monitoring esp8266 traffic and timing. 

Verify all with Wireshark

Learn the concept of HTTP caching. We are going to use it with esp8266.

Learn server optimization with HTTP Caching

Students will be able to use HTTP caching in Arduino sketch. 

Let's try HTTP Caching to further speed up ESP8266 server
Learn to use SPIFFS for server contents
3 Lectures 08:19

SPIFFS stands for SPI-flash-file-system, there is a part of flash reserved for SPIFFS and students will learn how to store server contents in that region. 

Learn to save server contents to SPIFFS

After contents placed in SPIFFS, students will be able to handle them in Arduino sketch. 

Handling server contents stored in SPIFFS

Fix the bug
Gzip compression for platforms other than ESP8266
1 Lecture 00:34
mikroC TCP/IP library, Lwip TCP/IP stack
Starting with ESP32
1 Lecture 00:45

Learn how to install and use webserver library for ESP32.

ESP32 Webserver library
About the Instructor
Farrukh Hussain
4.5 Average rating
58 Reviews
2,266 Students
2 Courses
Senior Firmware Engineer at Xekera Systems Inc.

Farrukh is enthusiastic embedded system developer with expert level skills in C programming, low power RF chips, embedded web servers, 8/32bit microcontroller families and smart metering. As a freelancer, he completed more than forty embedded system projects at, 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.