ESP32 Free WiFi Prank Portal

Wiring Schematic

View full-size circuit ↗
LT

YOUR PROJECT LEARNING PATH

Build it with confidence.

Progress saves on this device
01

Project overview

Know what you’re building before you start wiring.

Build a playful ESP32 captive portal that creates an open Wi-Fi hotspot and redirects browser requests to a humorous local webpage. The page shows “NOTHING IS FREE” with an included Rick Roll GIF.

The ESP32 runs a wildcard DNS server and an HTTP web server, serving the prank page and GIF without internet access. Its responsive layout supports phones and desktop browsers.

Before you power up

Use only with consenting participants on your own device; this open hotspot provides no internet and may mislead users.

PROJECT ROADMAP3 project stages
✓
Prepare your kitConfirm the components and tools
⌁
Assemble the circuitFollow the build steps in order
⌘
Upload and testCheck the output and resolve issues
Start the build
02

Components required

Gather these parts before you begin.

ESP32 Development BoardHosts the hotspot, wildcard DNS service, and local HTTP prank page.× 1
USB Data CablePowers the board and transfers firmware from the development computer.× 1
ComputerRuns Visual Studio Code and PlatformIO for editing, building, and uploading firmware.× 1
03

Build the project

Work through one focused step at a time. You can revisit any step whenever you need.

STEP 010 / 5 complete
BUILD STAGE 0120% of guide

Prepare the ESP32 and Development Computer

Connect the ESP32 to your computer with a data-capable USB cable, then open the extracted project folder in Visual Studio Code. Keep the board on a stable, nonconductive surface during setup.

No sensors, LEDs, or resistors are used; the ESP32's built-in Wi-Fi supplies the hotspot and the local DNS and web services.

1 of 5
04

Software & tools

Install these before uploading the firmware.

Visual Studio CodeProvides the editor for modifying the complete project folder.
PlatformIO IDE ExtensionBuilds, uploads, and manages ESP32 firmware and filesystem image tasks.
ESP32 Arduino FrameworkProvides Wi-Fi, DNS, HTTP server, and SPIFFS APIs used by the sketch.
SPIFFS FilesystemStores the GIF served by the local ESP32 web server.
Serial MonitorDisplays startup messages and portal address at 115200 baud.
05

Expected output

Compare your build with the result described here.

FINAL CHECKPOINT

After startup, Serial Monitor shows the startup message, hotspot name, and portal IP address. Connect to the ESP32 network and open `http://192.168.4.1` if the device does not display a captive-portal prompt.

The page presents “Free WiFi Connected!”, the “Looking for free internet?” prompt, “NOTHING IS FREE,” the Rick Roll GIF, and a friendly closing message. The portal works locally without internet when SPIFFS is uploaded successfully.

06

Troubleshooting & fixes

Choose the issue that best matches what you’re seeing.

01ESP32 hotspot does not appear
Try these checks

Confirm firmware upload succeeded, the board restarts, and Serial Monitor runs at 115200 baud. Check the USB data cable and scan for the exact SSID, `Free 5G HighSpeed WiFi` name.

02Prank portal does not open
Try these checks

Join the ESP32 hotspot and manually visit `http://192.168.4.1`. Automatic captive-portal pop-ups vary by operating system; verify DNS is running and the HTTP server has started.

03Rick Roll GIF is missing
Try these checks

Confirm `data/media/rick.gif` exists, then run `pio run --target uploadfs`. The actual `platformio.ini` selects SPIFFS, and the code reads `/media/rick.gif` from SPIFFS; LittleFS will not match without changing the source and configuration.