Wouldn't it be nice to wake up and have a nice freshly brewed pot of coffee waiting for you? Maybe you're like me and find it nearly impossible to wake up, but once you smell that irresistible aroma of java - you perk right up! What if you could turn a 'dumb' $10 coffee maker into an IoT automated 'smart' coffee maker for cheap? The main point of this Instructable is to automatically start your coffee maker when your alarm goes off, but the circuit can be used to control any appliance (up to 8 at a time) that plugs into the wall. The concept is pretty basic:
- A service runs on your phone that intercepts the alarm broadcast
- The phone connects to a bluetooth module connected to an arduino
- The phone sends the 'on' signal via bluetooth
- The coffee maker is plugged into an outlet that is wired to a relay switch
Let's get started!
Step 1: Supplies
For this project you will need:
- Double outlet
- Outlet box
- Relay board
- Male/Female headers
- Coffee maker
I buy all of my electronics from AliExpress where you can purchase everything for cheap.
The cost can vary from $10-20 depending if you want to make a single channel or multi channel.
Step 2: Circuit
This is a fairly easy circuit as everything is pretty much plug-and-play. The Arduino will accept incoming commands through the bluetooth module and turn on/off the relays respectively.
The bluetooth module will be connected to pins 0 and 1 on the Arduino.
(Bluetooth) Rx -> Tx (Arduino)
(Bluetooth) Tx -> Rx (Arduino)
(Bluetooth) Vcc -> 3.3v (Arduino)
(Bluetooth) Gnd -> Gnd (Arduino)
(Bluetooth) Rts -> Cts (Bluetooth)
(Relay) Vcc -> 5v (Arduino)
(Relay) Gnd -> Gnd (Arduino)
(Relay) D0-D7 -> 2-9 (Arduino)
(Outlet) Gold Screw -> Middle Terminal (Relay)
(Power Cord) Power -> Right Terminal (Relay)
(Power Cord) Ground -> Cold Terminal (Outlet)
Step 3: Code
This application is still a work in progress but it enables you to turn on/off pin2 manually or enable the alarm service to automatically send the signal when your alarm goes off.
Different alarm clocks send different broadcasts, so this particular code uses the braodcast from the stock Google Clock.
The code can also be found on Github and will be receiving updates soon.