Pet Curfew: an Arduino Controlled Pet Door

76K17140

Intro: 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)

36 Comments

Wow that looks great, just one question: what happens if the cat sticks his head out and then backtracks. Wouldn't the system mistakenly consider the cat to have pasaed to the other side? Any good ideas to solve that? I am considering ultrasonic sensors on both sides, activated when the door flaps but it sounds like an overkill...
The switch location is such that it only triggers when the door is fully open, make false positives very unlikely. But possible I guess. Reliability was the main design goal here, and several years later, I can say that this was achieved.
If the only goal is to know for sure where the cat is, or if you have more than one cat, you could always place a raspberry pi or a security camera indoor side and trigger recording whenever either switch is activated. Synology Surveillance Station for example can be triggered via a web command. If I were to build version 3.0, I would consider adding a Jetson Nano to actively recognize and classify each cat passing through the door...

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

Rima

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.
Oh and why does everybody use BlinkM's when a couple of bright 5mm LEDs will do the job just as well for a small fraction of the price!?
That's three projects I've seen browsing just now that use them unnecessarily!
You're right that a BlinkM isn't needed here, but one could save the day if you use a "bare processor" (an MCU with some buses but no GPIO).
Heliospan: The door only prevents the cat going out, and never prevents entry. Regarding reliability, the electronics has shown quite reliable over the past 8 months (it is housed inside the indoor half of the door). I have had the system "hang" once requiring power cycling, not sure why (a watchdog to perform a daily reset would take care of this). From a mechanical point of view, our cat, renamed Houdini, was able to push with his head and snap the plastic servo arm that came standard with the servo and exit that way. So I would recommend using extra strength ("super-duty") servo arms (available at places like ServoCity). Re. LEDs vs BlinkM, it is true that a couple of LEDs would probably work just as well if cost was an issue.

VirtualBoxer: I thought of rotating the built-in knob, but could not find a way to make the servo fit neatly behind the door (it would have to sit somewhere inside the drywall). Also, the manufacturer chose to position the knob in the corner and a determined pet (read Houdini) can escape by pushing the other corner and bending the plastic flap. My next version will have the servo in the middle of the bottom of the frame for that reason.
I first thought that the servo was turning the built-in knob. For that matter, you would get the same versatility as the built-in knob with two servos: one that controls entry, and one that controls escape.
Hi
First thing that springs to mind (to me) is whether the system might at some point for some reason fail to detect that the cat is indoors and lock your poor cat out of the house instead.
Might happen when the electronics / switches / sensors etc are exposed to excessive moisture or cold at various points in the year.
Is the cat flap at least lockable in a position which allows entry but not exit during curfew? Is that what this actually does? What would happen during a power cut if in the locked position?
.
I have a self developed home house alarm with relays to control the bell box and sirens, and one relay has died of its own accord just by being under the stairs, not even exposed to much cold or moisture (yes it was diode protected too) so I wouldn't trust such perfboarded electronics not to get it wrong on occasion, the risk of your cat getting locked out and essentially turning stray is too great.
I'd put much more trust in a professionally produced green circuit board...
Actually, they already make one that reads your pet's implanted microchip and only lets YOUR pets in or out after its programmed. It can be programmed for in & out, in only, out only and locked. Microchip Cat Flaps on Facebook.
Just trying to understand the goal - from what I gather, this:

1) Lets me know if my cat is outside, or has come in.
2) Changes the lock mechanism by programming the clock, instead of manually changing it.

Is this correct? Thx
The main goal is for the door to automatically lock around noon (we lost a cat who went out just before 5PM). We both work and so do not have the opportunity to do this ourselves. Our cat got used to that schedule, and now turns in around or just before noon and goes to sleep. And yes, as a bonus, we can now tell at a glance whether the cat is in the house.
Nice. I would like to see a video of it in action. Also how do you handle the door flapping back when the cat leaves? How do you know if the cat is in or out?
More Comments