Phone Operated Switch using Arduino

Hi,

I want to use arduino to allow me to open my garage door using any phone, whether cell phone or land line. What shield or device can I use to allow me to dial in to the arduino?

Essentially, I want it to work like this:

I dial the phone number that is associated with the arduino controller. Once it accepts the call, I enter a predetermined (programmed) combination such as 346#. When the correct code is entered, the rest of the circuit is designed so the output closes a switch that will be connected to tell the garage door to actuate.

I just need to know what I need to incorporate a phone line and then I'll worry about the programming once I get the rest of the circuit built.

One angle on this would be to use a commercial phone app service like Twilio (Voice API, no affiliation) to handle the details of the telephone side. You develop a little app on their service and it POSTs some XML to a destination of your choice, perhaps an arduino with an ethernet shield.

-br

Another option is bluetooth.

If you buy a cheap PAYG mobile 'phone with a vibrator in it, you could use the vibrator motor terminals as a trigger for the Arduino. You'd have to set up the 'phone to only answer calls from a specific number/set of numbers but it's an easy way of doing things

Just thinking out (technically typing) loud...

An old external modem, speed is not really essential, it could even be as slow as a 14kbit modem
point is, once you connect the phone line to it, you can use a series of AT commands, pick up, drop
etc etc, you can make it answer but i'm not sure if it's the solution as you need to recognize the noises
of the keypad, I swear i came across an IC which encoded decoded those tones DTMF decoder?

cjdelphi:
I swear i came across an IC which encoded decoded those tones DTMF decoder?

Yes. MT8870 is one such IC. Have a read here for some background. And also look at this board.

Nice, you could dump the binary out to your Arduino board via a shift in register, so not to use up too many pins...

one of those IC's would certainly do the job for a landline phone project :slight_smile:

It's scary, the more you look at these schematics the more sense they make!

And now how do you pick up the phone?

You can buy modems with built-in DTMF decoders, but the ones I know of (http://www.pcgrabber.com/) are expensive.

It occurs to me, that you don't really have to pick up the phone, all you need is to have a caller-id and then use line splitter and have the arduino monitor the line. It wouldn't answer the phone, but it would know when it is being called. You could presumably program it to only do the switch for known numbers. I did a google search for 'caller id monitor arduino' and this is the first link that pops up: http://blog.makezine.com/2008/03/03/caller-id-decoder/.

As they say in the comments section, using a modem with the AT+VCID=1 command string might be simpler. You can find USB modems fairly cheaply, though you might need a USB shield on the Arduino to interface with it (or possibly a USB to serial converter). If you search around, you can find the older serial modems and use a 9/25 pin breakout to isolate the RX/TX/etc. wires. If you've been on the network for awhile, you may even have one in your junk drawer, or check places like goodwill, etc. Alternatively, many laptops have a modem port, and you could use that and then send a signal to the arduino to open the door.

Obviously, you might not want the door opened anytime a random sales droid calls you to try and sell aluminum siding, but if you added a PIR sensor located by the garage door, you could open the door if the Arduino senses motion in the driveway within n seconds of the call.