A fun ESP32 captive portal project that creates a fake public WiFi network and opens a hacker-style prank webpage with:
- Matrix rain effect
- Fake security alerts
- Long warning beeps
- Vibrations
- Flash effects
- Fireworks animations
- Captive portal auto redirect
Built using:
- ESP32
- Arduino IDE
- HTML/CSS/JavaScript
- DNSServer
- WebServer
✅ Fake Public WiFi
✅ Auto Redirect Captive Portal
✅ Matrix Hacker Animation
✅ Touch Triggered Alert Sound
✅ Flash Effects
✅ Vibrations
✅ Fake System Logs
✅ Fireworks Animation
✅ Offline Working
✅ Mobile Friendly
Free_Public_WiFi192.168.4.1If the captive portal does not open automatically, manually open:
http://192.168.4.1- ESP32
- USB Cable
- Arduino IDE
Optional:
- OLED Display
- LCD Display
- Buzzer
- LEDs
Install these libraries in Arduino IDE:
- WiFi.h
- WebServer.h
- DNSServer.h
ESP32 Board Package:
- ESP32 by Espressif Systems
Go to:
File → PreferencesPaste:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.jsonGo to:
Tools → Board → Boards ManagerSearch:
esp32Install:
ESP32 by Espressif Systems- Connect ESP32 via USB
- Select:
ESP32 Dev Module
- Select COM Port
- Upload code
- Open Serial Monitor
- Connect phone to WiFi
The project redirects common captive portal detection URLs:
- /generate_204
- /fwlink
- /hotspot-detect.html
Some phones may NOT automatically open the captive portal page because modern Android/iPhone browsers sometimes block or ignore captive portal detection.
If the webpage does not open automatically:
Connect to WiFi:
Free_Public_WiFiOpen any browser manually.
Examples:
- Chrome
- Firefox
- Edge
- Safari
Type this IP address manually:
http://192.168.4.1Try these fixes:
- Turn OFF mobile data
- Reconnect to WiFi
- Open browser manually
- Refresh the page
- Try another browser
Modern browsers block autoplay audio for security reasons.
Solution:
- Tap anywhere on the screen once
- Sound effects will start automatically after interaction
| Problem | Solution |
|---|---|
| WiFi not visible | Restart ESP32 |
| Portal not opening | Open 192.168.4.1 manually |
| No sound | Tap on screen |
| Upload failed | Hold BOOT button while uploading |
| Page loading issue | Disable mobile data |
Expected output:
WiFi Started
IP Address: 192.168.4.1
Captive Portal StartedESP32-Captive-Portal/
│
├── ESP32_Captive_Portal.ino
├── README.md
└── .gitignore- OLED animations
- Local MP3 using LittleFS
- RGB LED sync
- WebSocket live effects
- OTA updates
- OLED hacker face
- LCD status panel
- Real-time animations
This project is intended ONLY for:
- fun
- learning
- educational demonstrations
Do NOT use it for:
- phishing
- impersonation
- illegal activity
- causing panic
MIT License
Made with ESP32 + chaos 😏 @aucxtix