Introduction: Arduino Coffee Brewer Water Fill System

This Instructable presents an Arduino-controlled coffee brewer water fill timer. The timer circuit is used to actuate an inexpensive solenoid water valve to fill a coffee brewer for a fixed number of seconds. This eliminates the chore of having to fill the pot with water and pour it into the coffee brewer reservoir each morning.

If used with a Bunn coffee brewer that has a pre-heated holding tank, the circuit fills the tank and automatically initiates a brew and reheat cycle.

I used an inexpensive 12 volt solenoid-controlled water valve that is available on Amazon and Ebay:

http://www.amazon.com/Electric-Solenoid-Replacemen...

The timer setting is stored in the Arduino's EEPROM memory and restored when the circuit is reset or power cycled. Timer adjustments may be made in 2-second increments/decrements using two push buttons. The unit blinks out the current timer setting if either of the setting buttons is held for two seconds, or on reset/power cycle.

The download ZIP file contains the hookup guide and Arduino code, along with the two required libraries. The video describes the circuit in detail, as well as showing suggested packaging and hookup options.

The code differs from that shown in the video in that a 2-second press of the button is now required to actuate a brew cycle. This prevents accidental brew activation from bumping the button momentarily.

Pressing the reset button or power-up now blinks out the current timer setting on the LED before entering the idle state.

Step 1: Arduino Hookup Guide

The circuit and libraries should work with any Arduino. I use the keypad library to allow distinct actions on the buttons' PRESSED, RELEASED, and HOLD states.

I use the SimpleTimer library as it is not interrupt-dependent, for compatibility with multiple Arduino types.