ESP32 Web Server: Control LEDs and Relays from Your Phone
A first IoT project: the ESP32 serves a page on your home Wi-Fi and you switch two outputs on and off right from the browser.
Step-by-step ESP32 projects with explanations, wiring and code. Useful documentation links in every article.
Found: 24
A first IoT project: the ESP32 serves a page on your home Wi-Fi and you switch two outputs on and off right from the browser.
A DHT22 sensor plus ESP32 gives you a live page that refreshes every 5 seconds without reloading — and a JSON API for other devices.
Flash the ready-made WLED firmware from your browser, wire up a WS2812B strip and control it from your phone, Home Assistant or by voice.
Run the official CameraWebServer example on an AI-Thinker ESP32-CAM: live video in the browser, snapshots, face detection and quality controls.
ESP-NOW lets boards exchange short messages directly with just a few milliseconds of latency. We build a button remote and an LED receiver.
The ESP32 fetches accurate time from NTP servers, handles daylight saving automatically and shows it on an SSD1306 128×64 display.
A capacitive soil moisture sensor plus a relay-driven pump. All logic lives in an ESPHome YAML config: threshold watering, overflow protection and a threshold you can tweak from Home Assistant.
The board wakes every 10 minutes, measures temperature, humidity, pressure and battery level, publishes to MQTT and goes back to sleep. We cover how to squeeze the most out of a battery.
Get the Wi-Fi password out of your code: on first boot the ESP32 opens its own access point with a web form to pick a network and set custom parameters.
Turn the ESP32 into a BLE device with a UART service: send commands from your phone and get replies. Works where there's no router — in a car, on a bike, in a garage.
Switch a light with /on and /off from anywhere in the world and get a Telegram message when a PIR sensor detects motion. No public IP or port forwarding needed.
An RC522 reader recognises 13.56 MHz cards and fobs, the ESP32 checks the UID against a list and opens a solenoid lock for 3 seconds. With audible feedback.
Flash over USB once — after that new versions go over Wi-Fi straight from Arduino IDE or PlatformIO. Indispensable once the board is mounted on a ceiling or in a panel.
Four 8×8 matrices make a bright scrolling ticker. Change the text from your phone via a simple web form — for a workshop, café or kids' room.
Control an SG90/MG996R servo from your phone: drag the slider and the shaft turns in real time. PWM comes from the built-in LEDC peripheral — no third-party libraries.
An ultrasonic sensor above the water measures the distance, the ESP32 turns it into a fill percentage and shows it on a page with an animated tank. For a cottage, rain barrel or septic tank.
The ESP32 has 10 built-in touch inputs. A piece of foil, a coin or a copper pad under glass becomes a button: tap to toggle an LED and hold to change brightness smoothly.
Waterproof DS18B20 probes connect in parallel to a single GPIO. Measure the boiler, water heater, outdoor and room temperature at once and serve it all as one JSON.
Put an INA219 in series with the power line and watch voltage, current, power and accumulated mWh in your browser. Indispensable for estimating battery life.
A sketch that registers a device with sensors and a switch in Home Assistant as soon as it connects. No configuration.yaml edits — just an MQTT broker.
A digital MEMS microphone streams audio over I2S with no ADC noise. We compute RMS, convert it to decibels and raise an alert when the room gets too loud. A foundation for voice and sound-reactive projects.
A WS2812B strip fades up to a warm glow when someone walks by at night and turns itself off a minute later. A photoresistor keeps it from switching on during the day.
The cheapest stepper motor with a ULN2003 driver. We write our own non-blocking half-step driver and control angle and speed with Serial commands. A base for blinds, feeders and turntables.
A NEO-6M module locks onto satellites, TinyGPSPlus parses NMEA and the ESP32 shows coordinates, speed, altitude and distance travelled on a web page with an OpenStreetMap link.