Episode EE03:

Read this blog ALL YOU NEED TO KNOW ABOUT ESP32
What Youβll Need
Two ESP32 Boards: One for controlling the LED (Server) and one for sending control commands (Client).- LED: For demonstration.
- Resistor: 220Ξ© to 330Ξ© to limit the current to the LED.
- Breadboard and Jumper Wires: For connections.
- USB Cables: For programming the ESP32 boards.
- Arduino IDE: For coding and uploading to the ESP32 boards.
Do you know How to connect esp32 to wifi - Read now!
Wi-Fi Communication (Client-Server Model):
Setup ESP32 as a Server (LED Controller)
1. Circuit Diagram
The image shows the LED connected to the ESP32 via a resistor.
- LED Anode (long leg) to GPIO 2 (or any other GPIO) on ESP32.
- LED Cathode (short leg) to GND via a 220Ξ© resistor.

2. Code for ESP32 Server:
#include
// Replace with your network credentials
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
WiFiServer server(80);
const int ledPin = 2; // LED connected to GPIO 2
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
server.begin();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Make sure LED is off initially
}
void loop() {
WiFiClient client = server.available();
if (client) {
String request = client.readStringUntil('\r');
client.flush();
if (request.indexOf("/LED_ON") != -1) {
digitalWrite(ledPin, HIGH);
}
if (request.indexOf("/LED_OFF") != -1) {
digitalWrite(ledPin, LOW);
}
client.print("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n");
client.print("\r\n\r\n");
client.print("\r\n");
client.print("\r\n");
client.print("\r\n");
client.print("\r\n\r\n");
client.stop();
}
}
3. Explanation:
The ESP32 server listens for HTTP requests. When it receives a request containing /LED_ON or /LED_OFF, it controls the LED connected to GPIO 2 accordingly.
4. Upload the Code and Test:
- Upload the code to the ESP32 server.
- Open the Serial Monitor to find the IP address of the ESP32.
- Enter the IP address in a web browser. Use the provided links to control the LED.
Learn how to build a Smart water quality monitoring system using ESP32
Setup ESP32 as a Client (Control Sender)
Code for ESP32 Client:
#include
// Replace with your network credentials and server IP
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
const char* serverIP = "SERVER_IP_ADDRESS"; // Replace with the server's IP address
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
}
void loop() {
WiFiClient client;
if (client.connect(serverIP, 80)) {
client.println("GET /LED_ON HTTP/1.1");
client.println("Host: " + String(serverIP));
client.println("Connection: close");
client.println();
delay(10000); // Wait 10 seconds before sending another request
client.println("GET /LED_OFF HTTP/1.1");
client.println("Host: " + String(serverIP));
client.println("Connection: close");
client.println();
}
delay(10000); // Wait 10 seconds before reconnecting
}
Explanation:
The ESP32 client sends HTTP GET requests to the server to turn the LED on and off periodically.
Β
Β
Β
Β
Also read: How to interfaceDS18B20 Temperature Sensor with ESP32
Conclusion
Controlling an LED with two ESP32 boards can be achieved using various communication methods, including Wi-Fi and Bluetooth. By following the steps outlined above, you can set up a server-client model over Wi-Fi or use Bluetooth serial communication to control your LED. These methods can be extended to more complex applications and integrated into larger IoT systems. Happy experimenting!
Β
Β
Please do check out otherΒ blog posts about Popular electronics
Β
Check out other related blog posts about Drones:Β Drone transmitter and receiverΒ ,Β Drone motorsΒ andΒ Getting started with a Quadcopter
Β
Make sure you check out our wide range ofΒ products and collectionsΒ (we offer some excitingΒ deals!)