top of page

3 Beginner-Friendly ESP32 Projects You Can Build This Weekend

  • Aug 2
  • 3 min read

The ESP32 has become one of the most popular microcontrollers in the maker community, and for good reason. With built-in Wi-Fi, Bluetooth, a dual-core processor, and extensive GPIO support, it offers incredible performance for a surprisingly low price.

At Modula Industries, our ESP32 Development Board with CH340C USB-C combines modern USB-C connectivity with reliable CH340C USB-to-UART programming, making it an excellent choice for students, hobbyists, and professional developers alike.

Whether you're learning embedded programming or building your next IoT product, here are three practical projects you can complete in just a few hours.


Project 1 – Wi-Fi Weather Station

What you'll need

  • ESP32 Development Board

  • DHT22 (or DHT11) Temperature & Humidity Sensor

  • Jumper wires

  • Breadboard

What it does

This project reads temperature and humidity from a DHT sensor and displays the values in the Arduino Serial Monitor. From here, you can easily expand the project by uploading the data to Home Assistant, MQTT, Blynk, or a cloud dashboard.

Wiring

DHT22

ESP32

VCC

3.3V

GND

GND

DATA

GPIO4

Arduino Code

#include <DHT.h>

#define DHTPIN 4
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {

  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" °C");

  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  Serial.println("----------------");

  delay(2000);
}

Possible Upgrades

  • Send readings to MQTT

  • Build a web dashboard

  • Display values on an OLED

  • Log data to an SD card


Project 2 – Control an LED Using Your Phone

One of the biggest advantages of the ESP32 is built-in Wi-Fi. Instead of pressing a physical button, you can control hardware from any device on your local network.

Components

  • ESP32

  • LED

  • 220Ω resistor

Wiring

LED

ESP32

Positive

GPIO2

Negative

GND (through resistor)

Arduino Code

#include <WiFi.h>

const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";

WiFiServer server(80);

const int ledPin = 2;

void setup() {

  pinMode(ledPin, OUTPUT);

  Serial.begin(115200);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());

  server.begin();
}

void loop() {

  WiFiClient client = server.available();

  if (!client)
    return;

  while (!client.available())
    delay(1);

  String request = client.readStringUntil('\r');

  if (request.indexOf("/ON") != -1)
    digitalWrite(ledPin, HIGH);

  if (request.indexOf("/OFF") != -1)
    digitalWrite(ledPin, LOW);

  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println();

  client.println("<h2>ESP32 LED Control</h2>");
  client.println("<a href=\"/ON\"><button>ON</button></a>");
  client.println("<a href=\"/OFF\"><button>OFF</button></a>");

  delay(1);
  client.stop();
}

What you'll learn

  • Connecting an ESP32 to Wi-Fi

  • Running a simple web server

  • GPIO output control

  • Basic IoT concepts


Project 3 – Bluetooth Serial Terminal

The ESP32 includes Bluetooth Classic and BLE, allowing wireless communication with phones, tablets, and computers.

In this project, your phone becomes a wireless serial terminal.

Components

  • ESP32

  • Android phone with a Bluetooth Terminal app

Arduino Code

#include "BluetoothSerial.h"

BluetoothSerial SerialBT;

void setup() {

  Serial.begin(115200);

  SerialBT.begin("ModulaESP32");

  Serial.println("Bluetooth Ready");
}

void loop() {

  if (Serial.available()) {
    SerialBT.write(Serial.read());
  }

  if (SerialBT.available()) {
    Serial.write(SerialBT.read());
  }
}

What you'll learn

  • Bluetooth communication

  • Wireless debugging

  • Serial data transfer

  • Mobile integration

Why Choose an ESP32?

Compared to traditional Arduino Uno boards, the ESP32 offers significantly more processing power and built-in wireless connectivity.

Some of its key features include:

  • Dual-core processor running at up to 240 MHz

  • Integrated Wi-Fi

  • Bluetooth Classic and BLE

  • More than 30 GPIO pins

  • ADC, DAC, SPI, I²C, UART and PWM support

  • Compatible with Arduino IDE and ESP-IDF

These capabilities make it suitable for smart home automation, robotics, wireless sensors, industrial monitoring, and Internet of Things (IoT) applications.

Getting Started

Programming the board is straightforward:

  1. Install the Arduino IDE.

  2. Add the ESP32 Board Manager package.

  3. Install the CH340 USB driver if required.

  4. Connect the board using a USB-C data cable.

  5. Select the correct COM port.

  6. Upload your sketch.

If your computer doesn't detect the board, ensure you're using a USB cable that supports both data and charging, as some USB-C cables are power-only.

Ready to Start Building?

Whether you're creating smart home devices, learning embedded programming, or developing commercial IoT products, the ESP32 Development Board with CH340C USB-C provides an affordable and powerful platform to bring your ideas to life.

Explore the product here:

At only R110, it's one of the best-value development boards available for anyone looking to dive into the world of embedded systems, wireless communication, and IoT development.

 
 
 

Comments


bottom of page