How Do I Host an ESP32 Web Server?


Larry Thompson

Hosting a web server on an ESP32 microcontroller can be a powerful way to create interactive and dynamic projects. In this tutorial, we will walk through the steps to set up and host your own ESP32 web server.


Before we begin, make sure you have the following:

  • An ESP32 microcontroller
  • An Arduino IDE installed on your computer
  • A USB cable to connect the ESP32 to your computer
  • A stable internet connection

Step 1: Setting Up the Arduino IDE

If you haven’t installed the Arduino IDE yet, head over to the official Arduino website and download it. Once downloaded, install it on your computer and open it up.

Step 1.1: Installing the ESP32 Board Manager

Next, we need to add support for the ESP32 board to the Arduino IDE. To do this:

  1. Open the “File” menu in the Arduino IDE.
  2. Select “Preferences”.
  3. In “Additional Boards Manager URLs”, enter the following URL: “”.
  4. Click “OK” to save your preferences.
  5. Navigate to “Tools” -> “Board” -> “Boards Manager”.
  6. Type “ESP32” in the search bar.
  7. Select “esp32” by Espressif Systems and click on “Install”.
  8. The installation process may take a few minutes.
  9. Once installed, close the Boards Manager.

Step 2: Writing the Code

Now that we have set up the Arduino IDE and added ESP32 board support, it’s time to write the code for our web server. Open a new sketch in the Arduino IDE and copy the following code:

#include <WiFi.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

WiFiServer server(80);

void setup() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Connecting to WiFi..");
  Serial.println("Connected to WiFi");

void loop() {
  WiFiClient client = server.available();
  if (client) {
    Serial.println("New client connected");
    while (client.connected()) {
      if (client.available()) {
        String request = client.readStringUntil('\r');
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");

Hello from your ESP32 web server!

"); client.println(""); break; } } delay(10); client.stop(); Serial.println("Client disconnected"); } }

Replace “YOUR_SSID” and “YOUR_PASSWORD” with your Wi-Fi credentials.

Step 3: Uploading the Code

Connect your ESP32 to your computer using the USB cable. Make sure you have selected the correct board and port in the Arduino IDE. Then, click on the “Upload” button to compile and upload the code to your ESP32.

Step 4: Testing the Web Server

Once the code is uploaded successfully, open the Serial Monitor in the Arduino IDE. You should see messages indicating that your ESP32 is connecting to Wi-Fi. Once connected, take note of the IP address assigned to your ESP32.

Open a web browser on any device connected to the same network as your ESP32. Enter the IP address of your ESP32 in the address bar and hit enter. You should see a webpage displaying “Hello from your ESP32 web server!“.


Congratulations! You have successfully hosted a web server on an ESP32 microcontroller. This opens up a world of possibilities for creating interactive projects with remote control capabilities.

In this tutorial, we covered how to set up and host an ESP32 web server using the Arduino IDE. We also learned how to write code for handling client requests and sending responses.

Feel free to experiment with different HTML elements and CSS styles in your response page to make it more visually appealing or add functionality by handling different routes or serving dynamic content.

Happy coding!

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy