Control LED with WiFi and ESP32/ESP8266

WiFi Controlled Light Tutorial: ESP32, ESP8266, Wemos D1 & Arduino Uno R4

Welcome to this mega Arduino WiFi tutorial. Today, we will learn how to control the built-in LED of ESP32, ESP8266/Wemos D1, or Arduino Uno R4 WiFi using a web server. This guide is perfect for beginners, makers, and IoT enthusiasts. By the end, you will have a working smart WiFi-controlled LED project that can serve as a foundation for home automation and other advanced projects.

Table of Contents

  • Introduction to WiFi-Controlled LED Projects
  • Required Hardware and Software
  • Setting Up Your Arduino IDE
  • Connecting the Board to WiFi
  • Creating a Simple Web Server
  • Controlling the Built-in LED
  • Testing Your Project
  • Advanced Applications
  • Common Issues and Troubleshooting
  • Download Full Project
  • Conclusion

1. Introduction to WiFi-Controlled LED Projects

WiFi-controlled LEDs are one of the simplest yet most useful IoT projects. They allow you to remotely control lighting from anywhere on the same network. This project is perfect for:

  • Smart home beginners
  • Students learning Arduino and ESP boards
  • IoT hobbyists building automation systems

In this tutorial, we will go step by step, explaining every detail, so even if you’re new to Arduino or ESP boards, you can follow along without issues.

2. Required Hardware and Software

  • ESP32 board OR ESP8266/Wemos D1 OR Arduino Uno R4 WiFi
  • USB Cable to connect the board to your computer
  • Arduino IDE installed on your PC or Mac
  • A WiFi network (SSID and password)
  • Optional: Breadboard and jumper wires if you want to add extra LEDs

Everything in this tutorial can be done with the built-in LED of the board; no extra LEDs are required for the basic setup.

3. Setting Up Your Arduino IDE

Follow these steps to prepare your Arduino IDE for ESP32 or ESP8266 boards:

  1. Open Arduino IDE.
  2. Go to File > Preferences and add the board URL:
  3. For ESP32: https://dl.espressif.com/dl/package_esp32_index.json

    For ESP8266/Wemos D1: http://arduino.esp8266.com/stable/package_esp8266com_index.json

  4. Go to Tools > Board > Boards Manager and install the ESP32 or ESP8266 package.
  5. Select your board from Tools > Board.

4. Connecting the Board to WiFi

Every IoT project requires connecting the board to your WiFi network. Here’s how:

  • Define your SSID and Password in your code.
  • Use WiFi.begin(ssid, password) to start the connection.
  • Check WiFi.status() in a loop until it shows WL_CONNECTED.

This ensures your board is ready to host the web server for LED control.

5. Creating a Simple Web Server

We will set up a simple web server on the board that hosts a web page with two buttons: “ON” and “OFF” for the LED.

This server works on ESP32, ESP8266, and can be adapted for Arduino Uno R4 WiFi.

6. Controlling the Built-in LED

The built-in LED on ESP32/ESP8266 is active LOW, meaning LOW = ON and HIGH = OFF. You can control it using:

  • digitalWrite(LED_PIN, LOW); // Turn ON
  • digitalWrite(LED_PIN, HIGH); // Turn OFF

The web server will call these commands when you press the corresponding button on the web page.

7. Testing Your Project

  1. Upload the code to your board.
  2. Open the Serial Monitor and note the IP address.
  3. Open a web browser and enter the IP.
  4. Click ON/OFF buttons to control the LED in real-time.

Make sure your phone/computer is on the same WiFi network for testing.

8. Advanced Applications

  • Smart Home Lighting: Control multiple LEDs or lights in your room.
  • IoT Projects: Combine with sensors to automatically control lights.
  • Voice Control: Connect with Google Assistant or Alexa.
  • Mobile Apps: Control LEDs using Blynk or other IoT apps.

9. Common Issues and Troubleshooting

  • Board not connecting: Check SSID/password and board selection.
  • LED not turning ON: Remember active LOW logic on ESP boards.
  • Web page not loading: Check if your device is on the same WiFi network.
  • Serial Monitor shows garbage: Ensure correct baud rate (usually 115200).

10. Download Full Project

11. Conclusion

By following this tutorial, you now have a fully working WiFi-controlled LED on ESP32, ESP8266/Wemos D1, or Arduino Uno R4 WiFi. This project is a solid foundation for more advanced smart home automation, IoT, and Arduino-based projects.

By Kaushal Haladi

Comments

Popular Posts