The Idea
The goal was simple: build a robot that can pour drinks on command, with no app to install and no pairing ritual. Walk up, connect to its WiFi network, open a browser, and order a drink. That is the whole experience.
The hardware side — pumps, tubing, motor drivers — is straightforward enough. The interesting problem is the software: how do you give a microcontroller a usable web interface without depending on an external network that may or may not be available at a party?
Running Its Own Network
Rather than connecting to an existing WiFi network, the ESP32 broadcasts its own access point. Any device in range can join it directly. This keeps the robot fully self-contained — it works anywhere, with no setup required from the user beyond connecting to the network.
Once connected, a web server running on the microcontroller serves a control interface straight to the browser. The entire UI is embedded in the firmware, so there are no files to manage or external dependencies to worry about.
Key Features
Self-Hosted Access Point
The ESP32 creates its own WiFi network. No router needed — guests connect directly to the robot from any WiFi-capable device.
Embedded Web Interface
The full control UI is served by an asynchronous HTTP server running on the chip itself. Open a browser, get the interface — instantly.
The Technical Stack
The firmware is written in C++ on the ESP32 platform. An asynchronous web server library handles incoming HTTP requests without blocking the main loop, which keeps the robot responsive even while it is mid-pour. The web interface itself is plain HTML and JavaScript, compiled directly into the firmware binary.
WiFi credentials and other runtime configuration are saved to the chip's SPIFFS filesystem — a small flash-based storage partition that survives power cycles. This means the robot can be reconfigured once and remember its settings indefinitely.
What's Next
The current build handles the networking and control layer. The next step is expanding the drink menu, adding flow sensors to measure pour accuracy, and possibly adding a display so guests can see what is being made. There is also room for a proper order queue — so multiple people can submit requests and the robot works through them in order.