Pet Curfew: an Arduino Controlled Pet Door





Introduction: Pet Curfew: an Arduino Controlled Pet Door

The Problem: You want to restrict the time when your pet is allowed to go outside. This could be because the neighborhood is not safe for your cat or small dog at night (marauding coyotes comes to mind). But you would like your pet to be able to come in at any time.

The Solution: Pet Curfew, an arduino controlled pet door, with real time clock, cat status led light and servo latch.
Video here.

Step 1: You Will Need...

1. Staywell Manual 4 way deluxe locking cat flap door
2. An Arduino Nano V3 micro-controller
3. 2x roller switches for detecting cat in/out status (or magnetic reed switches). Similar to this one.
4. 2x momentary push button switches (normally open) for manually opening or closing the door at any time
5. A breadboard
6. A BlinkM MinM LED module (I2C)
7. A Chronodot high precision real time clock module (I2C)
8. A Servo.
9. 4x 10K resistors (for interfacing the 4 switches)
10. Miscellaneous wiring
11. Small nuts and bolts for securing the switches and servo to the door
12. A mini-B USB power supply

The Staywell 4 way locking pet door provides the perfect housing for this prototype, because it is already designed to accommodate additional hardware and electronic modules (other models from the manufacturer) . It also features a flap and an indoor flap guard. The flap guard prevents smart pets from opening the door from the inside.
The arduino nano's size is perfect for fitting inside the door; however other arduino will probably fit too.
The Chronodot real time clock (RTC) is an I2C module that keeps track of the current date and time, even when power is not present.
The BlinkM MiniM is a smart I2C LED module that can fade in and out of a wide range of colors.

Step 2: Installing the Switches

1. Cut out an opening and install the first micro switch on the wall side of the wall tunnel part of the door. This switch will detect the pet going out (flap up). Bring the switch wires to the other side for connection to the breadboard.
2. Cut an opening and install the second micro switch on the indoor part of the door. This switch will detect the pet coming in.
3. Install both manual override switches on the inside part of the door.

Step 3: Install the Servo

Install the servo so that the actuator arm is on the inside of the door:

1. You will need to cut out a rectangular opening for the servo using a dremel type tool.
2. You will also need to notch the indoor flap to allow it to close around the servo.
3. Secure the servo using nuts and bolts.

We will use the servo arm as a latch to prevent the door from opening to the outside.

Step 4: Assemble the Electronics

1. On your breadboard, assemble the electronics.
2. Download the software by clicking the links below. You will need both files.
3. Using the Arduino IDE, upload the sketch to the board.
4. Using the "demo" mode, make sure everything is functional before installing inside the door. In demo mode, the servo arm will toggle between the open and close position every 30 seconds.

Note that the servo is powered before moving and then powered down to prolong the life of the servo. For this lightweight application, the servo gearbox is sufficient to maintain the servo in whatever position it is moved to.
The program also automatically adjusts for U.S. daylight savings time.

Step 5: Assemble the Door

This is the hardest part of this project.

1. Install the wall tunnel part of the door.
2. Connect the wires from the manual override switches to the breadboard.
3. Connect the wires from the in/out switches to the breadboard.
4. Create a slot in the wall tunnel part of the door for the servo arm to move freely. When the servo arm is in the "door closed" position, it will sit right behind the plexiglass door, preventing the door from being pushed open.

Step 6: Testing

1. Open the door to the inside. LED should fade to green.
2. Open the door to the outside. LED should fade to Blue or Red depending on whether you are within the curfew window.
3. Press the close door switch. Servo should move to close position.
4. Press the open door switch. Servo should move to open position.
5. Outside of programmed curfew time, servo should be in close position.
6. Inside of programmed curfew time, servo should be in open position.

Step 7: What's Next?

- Internet connectivity via the arduino nano ethernet shield
- Twitter feed
- Web site with pet status (inside / outside)
- Simpler version that only indicates pet location (inside/outside)


  • There isn't an "I'm ...-thigger

    thigger made it!


  • Epilog Challenge 9

    Epilog Challenge 9
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
  • Paper Contest 2018

    Paper Contest 2018

We have a be nice policy.
Please be positive and constructive.




Well done Rustille! And putting the electronics outside the door simplifies the mod a lot.

This is pretty cool. I've been wanting something like this for years for my cats. The coyotes around here are bad. I guess the in/out indicator doesn't work when you have multiple cats or can you use it like a semaphore? I sure wish there was something pre-built on the market. This looks fun but my free time is pretty thin.

Glad you liked it. I am not sure semaphore/counters would work because all it would take is for one pet to exit or come in through another door for everything to be out of sync permanently, unless there is a reset mechanism once a day. What is probably needed is a camera that takes a picture every time a cat uses the door and stores it online with a time stamp, but that would require another type of processor altogether...

Thank you for this nice Instructable. I like it


You really shouldn't put collars on cats unless they're breakaway types. Cats can get caught on all sorts of things and strangle.

I can see this being VERY useful in a chicken coop! Can it be worked so that it stays open all day, and is programmed to open in the morning and close at night by a light meter?

I am not sure chickens would be able to push such a door open. Also, in the current version there is nothing to keep predators out. But the light sensor is definitely doable.

LOL No, I can't see chickens pushing their heads against anything! Auto poultry doors are available but they cost around $200. (These are very well made in Germany; don't waste your money or your birds on the cheap ones.) With poultry, you must be home at dawn and dusk to let them out and back in, and you leave the door open so they can go inside to eat, drink, and lay their eggs. They could spend a day in the coop now and then, but once let out they absolutely must be locked up at dusk because that's when all the predators come around. This puts quite a crimp in your social life! The only homemade solution I've seen involves an automatic curtain closer. Can you come up with something that would work? This whole project is way above my head, but there is a computer whiz in the family who would know what you're talking about.

I use a small dog door for my chickens. I had to herd them through it the first several times, and I don't know if they really like it, but they use it, and seem to have no trouble pushing it open from either side. Mine is just a stock pet door so it does not provide any security, but I have a very secure chicken yard so I'm not afraid of predators. If you combined that with this, you should have a good solution, but if it is outdoors, it needs to be protected from the weather and dust.

Actually, a light sensor could easily be tampered with; blocking the light sensor in a non-momentary way would trap the animals inside or outside.

so glad i found this... it is the closest thing to what i was seeking. Goal, Dogs can not go out (unescorted) between 9pm and 8am - (avoid coyotes at night, and waking neighbors in the morning ) But, they can come in anytime... just in case they are out at 8:57,, don't want them trapped outside. I will need to build/adapt the current dog door as i didn't find a similar ready made lockable of sufficient size.