A lot of streams have channel point rewards that remind the streamer to hydrate (drink water). A friend of mine had the idea to take that a step further and allow the chat to actually hydrate the streamer. This idea came about right before this hackathon was announced, so I took this as the perfect opportunity to build it.

What it does

This project allows the chat to fill a cup with water via channel points. When this reward is redeemed, it activates a water pump that transports water from a container to a cup that's visible on stream.

How I built it

Using EventSub, I built a server that sends a hydrate event to a microcontroller when the Hydrate reward is redeemed. The server communicates with the microcontroller via websockets. A water pump is connected to the microcontroller via a relay that activates when a hydrate event is received.

Challenges I ran into

The biggest challenge was finding a way to transport water. I first tried using a peristaltic pump, but found that it didn't transport water fast enough. Due to the way these pumps work, I were also concerned about how long the tubing in the pump would last. We eventually landed on using a water pump commonly used in DIY irrigation systems (found here).

Accomplishments that I'm proud of

After finishing the demo code, I integrated it into a server I run for a friend's stream and we set up the device for it. Seeing it work with a live chat and how they respond and interact with it was super cool. They love trying to overflow the cup when my friend walks away from stream. I think I'm proud of the project in general because it's unique and is getting a lot of engagement.

What I learned

I took this hackathon as a chance to learn Go! It was a great experience and have already started building more things in Go.

What's next for Hydrate

Right now, this project is very much a prototype. I plan on moving from a breadboard setup to a custom PCB with a 3D printed enclosure and water reservoir.

Built With

Share this project: