Inspiration
This project was inspired by the amount of people who look at their phones while walking between classes. I was curious to see if there was a way to serve advertisements to users locally and in a way that they can't avoid. Originally, I wanted to use an ESP8266 (low-cost WiFi connected microcontroller) to be able to respond to device beacon requests, spoof an access point and force users onto a captive portal advertisement so they would have to view my ad. The web page would be hosted on a webserver on the ESP and would be loaded from a micro SD card.
What it does
Using an ESP I have an access point that, when a device connects, will force the captive portal popup and redirect any website requests to a custom advertisement.
How I built it
Used Atom and PlatformIO to write/build/upload
Challenges I ran into
Accidentally fried my micro SD card adapter and instead had to store the HTML file on the ESP. This was difficult due to the limitations of the String class and limitations on program storage available. I was able to get the ESP to view beacon requests but was unable to integrate that functionality into the final program as it conflicted with the captive portal functionality.
Accomplishments that I'm proud of
I have a working proof of concept that is demoable
What I learned
HTML skills, base64 image representations, captive portal URI's, programming on ESP8266 based boards
What's next for Captive Portal Advertisements
Read/write from micro SD card to allow for larger HTML sites/resources Changing of AP SSID based on beacon requests
Log in or sign up for Devpost to join the conversation.