Dirty Dish Detector

by WestonR2 in Living > Kitchen

659 Views, 0 Favorites, 0 Comments

Dirty Dish Detector

piled-up-dishes-in-kitchen-sink.jpg
IMG_6476.JPG
IMG_6464.JPG

Tired of going to use your sink only to find that your roommates, coworkers, or classmates have left a bunch of dirty dishes behind? This handy hack will send you an email whenever any dishes get left in the sink, so you can track down the culprit and hold them accountable!

Materials List

american-standard-kitchen-sink-organizers-791565-205070a-64_1000.jpg
adafruit_products_2821_top_02_ORIG.jpg
816blruybCL._SY355_.jpg
00097-03-L.jpg
11372-01b.jpg
51155039ce395f6140000006.jpg
71L1C2cb7FL._SL1500_.jpg

WHAT YOU'LL NEED

Supplies:

  • Sink Grid
  • Sugru
  • Pushbutton switch
  • Solid Wire
  • Arduino Feather HUZZAH
  • 2 LEDs
  • Power Cable
  • 5V Outlet Adapter
  • Foam Core
  • Heat Shrink Tubing
  • Matte Board

Tools:

  • Breadboard
  • Soldering Iron
  • Fume Extractor
  • Wire Strippers
  • Xacto Knife
  • Helping Hands
  • Hot Glue Gun

Prepping Wires

IMG_6438.JPG
IMG_6440.JPG
IMG_6441.JPG

Cut two long pieces of wire. Make sure these are long enough to reach from the sink to where you want to set up your Arduino.

Trim the ends so that there is a long end and short end on each wire. The short ends will go to the button and the long will go to the Arduino board.

Wiring Your Button

IMG_6443.JPG
IMG_6442.JPG
IMG_6446.JPG
IMG_6447.JPG

Set up your soldering station with your helping hands, soldering iron, solder, and fume extractor.

Don't be dumb like I was and make sure your leads are connected on the same side of the button rather than opposite of each other.

Throw some heat shrink tubing on there once you get those solder joints nice.

Waterproofing Your Button

IMG_6450.JPG
IMG_6451.JPG
IMG_6452.JPG

Grab a single packet of sugru and add it to the button.

I added it like a hamburger bun on the top and bottom of the button then smoothed it out to make sure everything was covered.

I made sure to flatten out the bottom as well as add two bumpers on either side of the button to counteract the extra weight of my heavy sink grid pressing the button without any dishes on it.

Wiring Up Your Arduino

Dirty Dish Detector_bb.jpg
IMG_6464.JPG

Attach your button leads, ground wire, and LEDs according to Fritzing diagram and picture.

Create an Enclosure

IMG_6465.JPG
IMG_6466.JPG
IMG_6468.JPG

Use some matte board (or any other easy-to-work thin material) to create a simple enclosure for your Arduino. Be sure to cut two holes for the LEDs as these will help you diagnose your circuit when you upload the code.

Upload Code to Board

The first thing you'll want to do is set up an Adafruit IO account and get your AIO Key from there. Input your username and key to the code (leaving the quotation marks).

#define IO_USERNAME "Username"
#define IO_KEY "Key"

Don't forget to update the code with your wifi network name and password (leaving the quotation marks in place).

#define WIFI_SSID "Network Name"
#define WIFI_PASS "Password"

Additionally you can adjust how long dishes have to be left in the sink before getting an email by adjusting the intervalButton constant. It's measured in milliseconds so, for example, 5 seconds = 5000. I reccomend setting it to something closer to 5 minutes (300000).

const long intervalButton = 5000;

When you first upload the code watch the serial monitor to be sure it connects to WiFi, then test the circuit. This is where the LEDs come in handy. The first LED will light up when it detects the button is pressed then the second will light up when it has communicated to send an email to you.

Whenever you plug in the board after that be sure to give the board a few moments to get connected to WiFi.

Set Up Online Actions

Adafruit-IO-Logo.png
AIOcommand.PNG
500x500.png
Applet1.PNG
Applet2.PNG
Applet3.PNG

Set up a feed called 'command' in Adafruit IO. Then in IFTTT set up an account and make a new applet that checks the Data from Adafruit and sends you an email.

You can change the X in the applet to reflect however much time you chose when setting up the code

Install the Dirty Dish Detector

IMG_6470.JPG
IMG_6474.JPG
IMG_6473.JPG
IMG_6475.JPG
IMG_6476.JPG

Install the dirty dish detector by setting up the sink grid on top of the button and plugging the Arduino into a nearby outlet. This is where you'll want to give it a minute to get hooked up to your WiFi. Then when you test it you can keep an eye on the LEDs to make sure it's working properly.

The final touch is to hide any excess wire length you have with common counter top items.

Now you're ready to be the hero (or villain depending on who you ask) who tracks down dirty dish perpetrators and keeps the kitchen under control