Make: Projects

Monkey Couch Guardian

Make an obnoxious device to discourage cats and other fur-shedding pets from jumping on beds and couches.

Monkey Couch Guardian

My cats like to jump on furniture and shed their fur, which ends up on my clothes. To stop them, I’m using a Monkey Couch Guardian. I made it from one of those old-fashioned cymbal-banging toy monkeys, modified with an inexpensive Arduino microcontroller and a proximity sensor. Now when a cat jumps on a table, couch, or bed, the Monkey Couch Guardian makes lots of noise, encouraging the cat to seek a quieter resting place.

I’ll show you how to make a simple PIR (passive infrared) sensor circuit to attach to a battery-powered, cymbal-banging monkey. You can use anything you like for an enclosure for the circuit. (I think a cigar box does nicely.)



Step #1: Program the Arduino.

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • The first thing you'll want to do is download the code for the Monkey Couch Guardian from
  • Open the code in the Arduino IDE software (free from and upload it to the Arduino, using a standard USB cable.
  • Unplug the USB cable from the Arduino before proceeding.

Step #2: Hack the monkey.

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • To tap into your monkey's power supply, just connect 2 wires across the battery terminals in the monkey (I used yellow wire). I soldered the wires into the little metal contacts that press against the batteries. You could also tape them, but there’s not a lot of room, and soldering will make the connections stronger. The polarity doesn't matter.
  • I also removed and discarded a small metal strip that was attached to the switch, because it isn't needed. Your monkey may vary.
  • Test the connections by touching the other ends of the wires together. The monkey should start banging his cymbals and screeching when the wires touch.

Step #3: Build the circuit (overview).

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • Here's a schematic diagram that gives you an overview of the circuit, along with a layout diagram that shows how it's breadboarded. I made both diagrams in Fritzing; the schematic is redrawn here for clarity.
  • The diagrams show a motor and a 3V battery supply. Both of these are inside the monkey.
  • The relay on the breadboard replaces the switch on the monkey. I took apart the switch on the monkey in order to connect wires to it.
  • You can power the Arduino with USB power, with an AC adapter, or with battery power. I recommend battery power, as it makes the system portable. Here's a good tutorial that will show you how to make a 9-volt battery supply. You can easily add an SPST toggle switch to one of the wires of the DC plug, which will make it easy to power the system on and off.

Step #4: Mount the relay.

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • This is the SPDT 5V DC relay. It has 5 pins on it. You'll only be using 4 of them, which I've marked A-D.
  • Insert the relay into a solderless breadboard, straddling the center trench. On the breadboard I'm using here, pin A goes into hole e22, pin B to e21, pin C to f21, and pin D to e17. Your breadboard might be set up differently.

Step #5: Wire the PIR sensor and Arduino.

Monkey Couch Guardian
  • The PIR sensor has 3 pins that fit a standard 3-wire servo extension cable. (Some vendors sell the sensor with a cable included.) You can also use plain hookup wire soldered to a 3-pin female header with standard 0.1" breadboard pin spacing.
  • Connect the red wire to the 5V power header on the Arduino, and connect the black wire to Ground in the same block of power pins. Connect the signal wire (in my case, yellow) to pin 12.
  • Add a jumper wire (I used orange) to Arduino pin 13 and another wire (I used red, and I know I ideally should have used black) to the Ground pin next to it.

Step #6: Connect the Arduino to the relay.

Monkey Couch Guardian
  • Connect the Ground jumper wire (red here) to hole d21 on the breadboard (relay pin B).
  • Connect pin 13's jumper wire (orange) to hole d22 (relay pin A).

Step #7: Connect the monkey to the relay.

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian

Attach one of the yellow wires to breadboard hole j21 (relay pin C), and the other to d17 (relay pin D). It doesn't matter which goes to which.

Step #8: Add LED power indicator (optional).

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • Solder a 220Ω resistor to the anode (positive) terminal of the LED. The anode is the longer of the 2 wires emanating from the LED.
  • Solder a 6" length of red hookup wire to the resistor, and a 6" length of black wire to the LED's cathode.
  • Insert the red wire into the 3V header on the Arduino, and the black wire to Gnd on the Arduino.

Step #9: Test your monkey.

Monkey Couch Guardian
  • Apply power to the Arduino, and test the circuit.
  • If the PIR sensor detects motion, the Arduino will trigger the relay and the monkey will activate for 5 seconds, then go quiet for at least 15 seconds before re-arming.

Step #10: Make the enclosure.

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • I used a cigar box for my first enclosure. You can use the RadioShack enclosure specified in the Parts list, or use any enclosure you like that will hold the breadboard and Arduino.
  • Mount the PIR sensor on the front of the enclosure. For extra credit, mount a toggle switch to power on the circuit and an LED to indicate that the power is on (see Steps 3 and 9).
  • TIP: A 3/16" hole makes a tight fit for a standard 5mm LED.
  • Secure the Arduino, breadboard, and battery on the floor of the enclosure so that the wiring won't come undone when the monkey jiggles the box. The breadboard has adhesive backing; you can use adhesive tape or hot glue for the other bits.

Step #11: Secure the monkey.

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • Attach the monkey on top of the enclosure. You can use zip ties, sticky velcro tape, or whatever works for your enclosure.
  • Here we drilled 4 holes in the lid and zip-tied the monkey's legs in place.

Step #12: Guard that couch!

Monkey Couch GuardianMonkey Couch GuardianMonkey Couch GuardianMonkey Couch Guardian
  • When the Monkey Couch Guardian is switched on, any motion within about 20 feet will trigger the PIR sensor. The monkey will start shrieking and clanging his cymbals, scaring away any unwanted furry intruders.
  • Aim your monkey's PIR sensor strategically so that it detects motion only in the forbidden areas. Experiment with masking the sensor with tape, or partially blocking it with objects. Then you can leave it on, and walk past it without the monkey harassing you!

  • Max

    Thanks for this Project , I ask about any picture for clamping diode & the number of the diode ?

  • Mark Frauenfelder

    Hi Michael,

    Thanks for this information. Could you provide a schematic for this?

    — Mark

  • Sean Michael Ragan

    I thought the Uno was rated for 40 mA / pin.

  • Jeff

    The schematic for a relay and an Arduino was previously published here on MAKEZine:

  • Mark Frauenfelder

    Using this circuit, I activated the relay once a second with the monkey attached and after 4 hours (over 14,000 cycles) it was still working just fine.

    • MarkT

      That is luck, or a combination of luck and the fortuitous presence of the LED on pin13 acting as a snubber – normally using a relay without a free-wheel diode you fry your Arduino pin or worse – does anyone vet these designs for basic circuit knowledge?

  • Viru

    Good idea. I would make a few changes to the design.

    1. Use Attiny85 instead of UNO.
    2. Instead of Relay, use a power transistor.
    3. Use only one power 4.5v (3AA batteries) source to power both monkey and controller.

  • Thanks for the idea. I used this trigger our Halloween doorbell from a sensor. I have posted pics of it here –

  • Pingback: MAKE Magazine is an Eddie Finalist | MAKE()

  • Very clever! I packed a $8 “trinket” mini-Arduino and the other parts into a very small clear plastic box with terminals on the back so that the motion sensor can control projects besides possessed monkeys. I told the board’s LED to flash briefly when the PIR sensor is waiting, turn on while the relay fires, and dim during the wait period. My hound is suitably discouraged, though I think many dogs would simply murder the monkey.

  • Pingback: Love Glove | Cool Tools()