Display the Current Time in a New Way with This Clock That Uses Air Bubbles
Displays can take many forms, including LED matrices, LCD character modules, or even ones that flip physical cards to show new letters and numbers. Yukio Shinoda decided to take this idea even further by creating an air bubble clock that sends up tiny bubbles through eight tubes, thus giving the illusion of a matrix. By using an RGB LED-lit backlight, Shinoda could create a very interactive clock that can also change its color on a whim.
Shinoda's first version of the air bubble clock had an eight dot wide area as well, but it had water within its chambers. This turned out to be problematic, as the bubbles would move up far too fast and then disappear before they could be read. In this second version, a medium of glycerin was selected since its viscosity is far higher, thus slowing down the rate at which the bubbles rise.
In order to generate the tiny pockets of air, this display has a series of eight solenoid air valves that are normally used to control flow within pumps. In this case, the valve will allow air to move from the pump and to the exit only when power is applied. A single air pump was connected to an eight-channel splitter at the base to generate the pressure needed for bubbles to form.
This display features an area of around 90mm wide by 200mm tall in which bubbles can be seen slowly rising to the top. Shinoda created a pair of round plates that fit within a sleek glass vase that hold two sets of tubes in the place. The widest tubes contain the glycerin medium and prevent the air bubbles within them from swaying side-to-side and interfering with the other bubbles. The second set of flexible tubing in the back is where air from the valves flows through and gets pushed into the main display.
The bubble clock uses an ESP8266 development kit at its heart due to onboard WiFi capabilities and its powerful processor. The control circuit also consists of an MCP23017 I/O expander chip, an OLED screen, a DS3231 real-time clock module for keeping the time, and a header for connecting the RGB LEDs.
The program for the clock begins by purging the excess air within the tubes and sets up a local webserver for over-the-air updates. Shinoda made a custom font that defines which bubbles need to be created and where for a given number. At each display interval, the solenoids are pulsed in the correct order to draw the current time in the glycerin-filled tubes.
The effect of seeing the bubbles launch out of the valves and into the perfect order is quite mesmerizing, and Shinoda's code allows for this precision to be dialed in even further. By changing the bubbleDelay, which is the amount of time a valve is open to create a single bubble, the size of each one can be adjusted.
There is also a variable for tuning how large gap is in between each row to cause the digits to become more or less compact. You can view the code used in this project here on GitHub.