Introduction: Cheap, Easy, Internet Controlled Home Automation System

Picture of Cheap, Easy, Internet Controlled Home Automation System
If you have pets/children and need to feed them or spank them via the internet this system may be of use to you. It's a very easy and cheap way to control motors, LEDs, etc. at home from any computer connected to the web.

All that's needed is a Webcam, Flashlight, Free Software, and about $15 worth of analog electronics that you can get from radio shack.

Project Overview:
This system allows remote control (via the internet) of actuators (motors, etc) at your home. It works by sensing changes in brightness at particular locations on your home computer screen (locations at which the sensors are taped). These changes in brightness are remotely controlled by you via a yahoo messenger webcam video feed between your work computer and your home computer.
For example: you're at work with a computer, a webcam, and yahoo messenger's video broadcasting activated. Your home computer is also running yahoo messenger and has a full screen view of your work computer's webcam video feed. At work you shine a flashlight into your webcam's field of view at specific locations. By varying where you shine the flashlight into your work computer's webcam you will be activating different sensors/motors at your home computer.
If this is confusing make sure to watch the video.

Advantages of this system over much more complicated systems:
= Optical isolation of PC from actuators (motors, etc)
= Uses only cheap analog components available from radioshack
= Allows control of as many actuators as desired.
= Does not require knowledge of computer programming, or server administration (i.e. PHP and Apache)
= More secure than remote desktop access software such as VNC, etc because yahoo messenger does not allow access to control your entire computer. (as far as I know,.....this last advantage might not be totally true :)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Video:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Step 1: Supplies

Picture of Supplies

---What you'll need:---

either
soldering iron $8
http://www.radioshack.com/product/index.jsp?productId=2062758
OR
wire wrapping tool $7
http://www.radioshack.com/product/index.jsp?productId=2103243
(you can wire wrap directly onto component leads instead of soldering. it's less permanent but ok for prototyping)

30 gauge wire wrap wire: $4
http://www.radioshack.com/product/index.jsp?productId=2062642
needed as a flexible wire between screen mounted photoresistors and the breadboard.

photoresistor 5 pack: $3
http://www.radioshack.com/product/index.jsp?productId=2062590

2n222 transistors or relays $3
http://www.radioshack.com/product/index.jsp?productId=2062586

DC power supply (you probably have this): $20
http://www.radioshack.com/product/index.jsp?productId=2552559
you can find these in the garbage, or you probably have spare ones from appliances you don't use any more. the voltage output you need depends on the size of the motors you use. many medium sized motors need between 9 and 12 volts.

breadboard for testing $8
http://www.radioshack.com/product/index.jsp?productId=2734155

Step 2: Setup I

Picture of Setup I

---The Setup: ---

(1) Install yahoo messenger on your work and home computer: http://messenger.yahoo.com/

(2) Connect a webcam to your work computer. Set it up so it's looking at a dark, flat surface. I used an existing PVC frame I made for the camera. (first image)

(3) solder or wire wrap a long length of 30 gauge wire wrap wire to each of the photoresistor leads.

(4) Tape photoresistors to your home computer's screen. I did this by first taping the photoresistors to a clear piece of plastic with black electrical tape, then taping the plastic to the screen with scotch tape. (second image)

(5) I would recommend putting the 'home computer' in a box to exclude any non-screen light. otherwise light from windows could interfere during the day. You will be maximizing the yahoo messenger video feed on this home computer so that it fills the whole screen (or as much of the screen as needed to be able to activate all of your taped on sensors).

Step 3: Setup II

Picture of Setup II

Setup Cntd.

(1) set up the circuit on a breadboard according to the diagram (first image). You can test out the photoresistor by covering it with your hand (second image).

(2) make sure to have all of the power supplies for your circuit plugged into a surge protector (i.e. a power strip with a circuit breaker)

(3) calibration:
You'll have to change your screen brightness setting to one that works best. i.e. the brightness at which the photoresistors won't conduct electricity when the screen is black, but will conduct enough electricity when the screen is white to activate its transistor/relay. I found that with some photoresistors I had to put a piece of paper between them and the screen to help modify the brightness getting to it (see previous note).

Step 4: Setup III

Picture of Setup III

Software Setup:

(1) make two accounts for yahoo messenger (need two email addresses, get free ones from hotmail or gmail or something). Make one account name end in "....work" and the other account name end in ".....home" so easy to remember which will be used on which computer.

(2) make sure you've added your "...work" account as a friend on your home computer
(3) make sure you've added your "...home" account as a friend on your work computer

(4) Edit the settings on yahoo messenger on both computers to allow anyone to view your webcam without permission. (image 1)
(5) Edit settings to start "Super Webcam Mode Automatically". (image 2)

(6) On your work computer start a yahoo messenger webcam video feed and leave it running. (image 3)

(7) On your home computer click to view your work video feed. Change the size so it fills your home computer's screen (or make it as large as possible to be able to activate all of the photoresistors taped to the screen). (image 4)

(8) At work shine a flashlight into the camera's field of view at different locations to activate different sensors on your home computer.

Note:
It would be best to have a webcam on your home computer too so you could watch that everything is working properly from your work computer.

Step 5: Helpful Notes and Conclusion

Picture of Helpful Notes and Conclusion
Notes:

(1) It's best to have a webcam plugged into your home computer as well so that you can watch what's happening via yahoo messenger at work. That way you cam be sure everything's working smoothly. I didn't have a second webcam so didn't show that.

(2) Make sure to test your system like I did for a full day before putting it to use while you're away. Because it is not a digitally implemented system there are little ways in which the 'real world' will interfere with it. For instance the photoresistors might fall of the screen, the changing of the light through windows during the day could have an effect on the photoresisors if they aren't properly sheilded.

(3) If you want to control something wirelessly with this system I would suggest using something like this:
http://www.rentron.com/remote_control/TINY-IR2.htm
just replace the switches shown in the schematic with transistors controlled by photoresistors. Take note that the range isn't that great for the Tiny-IR-II transmitter. Also, it uses IR infrared (like a tv remote), not RF (radio).

(4) Might be good to make one photoresistor a "Circuit Activator". In other words connect it to a relay or transistor that controls the power supply to the circuit. In this way you have a 'kill switch' that can shut the whole thing down if it starts acting wacky.

Conclusion:
I hope that this helps people and helps make some pets happier when they're at home alone. The beauty of it is that it's so easy to set up that you can do it in a couple minutes, and it requires no special skills and barely any money.


Comments

shinea_xx (author)2011-06-30

hey lee, - didn´t know that you are doing such crazy things... ;o)
nice greetings from good old germany, your cousin a*****

ReCreate (author)2009-02-18

did you photoshop the cat to frown?

DrWilson (author)ReCreate2011-03-18

This cat wasn't made by the author its all over the internet!

http://www.google.com/images?hl=en&rlz=1C1GGGE_enGB373GB373&biw=1600&bih=799&q=internet+cat+serious+business+was+made+by&bav=on.2,or.r_gc.r_pw.&um=1&ie=UTF-8&source=og&sa=N&tab=wi

Dillon

ReCreate (author)DrWilson2011-03-18

Yep, i found that out about a year ago.

Colonel88 (author)2009-08-19

first, waste of energy. second, the screen is already really bright so it doesnt have much point. Third, and most important, when you "call" your home computer the home computer has to press a button named "Answer" how can you do that?

leevonk (author)Colonel882009-08-19

first, I didn't realize keeping a pet alive was a waste of energy. secondly, you second point doesn't actually make any sense, assuming you're using the english language. thirdly, this instructable doesn't mention anything about 'calling' and 'answering'. it uses webcams which can be set to allow anyone to connect to it. Once that's set up as instructed in the instructable you can control your home automation whenever you want.

Colonel88 (author)leevonk2009-08-20

No i mean that since the screen is really bright, it might set off the CDS sensor without the flashlight. and also when you put your Messenger on "Answer to everyone" you are risking your computer because someone could call you and see that noone is home

leevonk (author)Colonel882009-08-20

apparently you didn't see in the video that it obviously works and that the screen is not 'too bright'. On others' computers if the screen is too bright you just add a piece of paper in between the sensor and the screen (as mentioned in the instructable), or you use a potentiometer. As for your second point, the 'allow anyone to access my webcam' would be set on your work webcam, not your home webcam. And even if anyone did view your work webcam all they would see is blackness with occasional flashing lights.

amando96 (author)2009-02-05

thats pretty cool! tha cat made me lol

vince086 (author)2009-01-03

realy good idea!! only problem is the practicality issue, sacrificing a computer, weeb cam needs to look at darkness and the computer screen in constanly on witch must use alot of power !

DuctTapeRules! (author)2009-01-03

The cat is not amused...
Sorry, I had to...

ekim (author)2009-01-01

Very nice. I'm trying to think up some good applications! What if you marked the black cloth at work into a grid, so you knew which sections activated which photoresitor, then simply placed a white index card on the section when you wanted to activate it? Of course, this assumes you don't work in the dark...

MixMasterM (author)2009-01-01

The light sensor reading the intensity of a box on the screen is how the "teledildonics" that were released a few years ago worked. The brighter the light detected by the sensor, the faster a motor in a "marital assistance aid" would turn, thus allowing a sort of tele-presence.

eranox (author)2008-12-31

Great instructable! Really inventive, and I like that you did it without all the complex programming. This is something you could build in an afternoon, without reading a library's worth of books first. One suggestion, you could draw a grid on the black camera background and label each square to help you align the sensors on the home computer and to help you remember what does what when you're at work.

ReCreate (author)2008-12-31

That cat is...unusual

PS118 (author)2008-12-30

That's pretty cool. Instead of messing with webcams and flashlights tho, it seems you could write a very quick Python server that adjusts the brigntness of given squares in response to CGI strings.

Just type in firefox...
"http://myhouse/automation?lamp:255" Viola! Lamp sensor square goes white, lamp goes on.

leevonk (author)PS1182008-12-31

yeah, I had thought of something similar but wanted to keep this as simple (technically) as possible though. So with python you can send a command from the work computer and have it change the screen of the home computer?

PS118 (author)leevonk2008-12-31

A CGI app is dirt simple. It gets the address bar parameters passed in on the command line. Whatever you print gets sent back as the "webpage".
http://en.wikipedia.org/wiki/Common_Gateway_Interface

I guess technically you also need a cgi "web server" to run it, but don't let that scare you. It's also quite simple and free source abounds. Here's a good, solid python one in only about 200 lines of code:
http://code.activestate.com/recipes/511454/

leevonk (author)PS1182008-12-31

cool, looked into it, looks like that would work too. I'm going to post another instructable soon that shows how to set up an apache web server and use PHP to allow internet control of a variable speed motor connected to the server's serial port. It only allows one motor to be controlled, and requires coding and server set up but some people might prefer a less hardware oriented solution :)

Batryn (author)2008-12-30

I was wondering if you put a solar panel in a box with a slit in it, then will the sun hit the panel during a specific time and activate some motor?

leevonk (author)Batryn2008-12-31

Would sort of work, but not very well, would have very limited applicatons. Unless you charge a very large capacitor from the solar panel the motor would move in little twitches, bit by bit. The bigger the motor, the more time between each twitch. Also, you'de have to recalibrate the thing every couple weeks according to new positions of the sun in different seasons.
If you want to experiment with solar panels and motors check out this solar powered 'robot' I made: https://www.instructables.com/id/Cheap-Easy-Solar-Powered-Robot/

what would work better would be to put the photoresistors I used for this project in a box, and when the sun shines in at the right angle it would activate a photoresistor just like they are activated by the flashlight via webcam.

micromuffin (author)2008-12-30

lol

Omegas (author)2008-12-30

Heh, there was an article in a Finnish computer mag called MikroBitti that described a similar setup in 1986. I built it and controlled things like a stereo set using my Spectravideo SVI-328 and a simple BASIC program. Good ol' times...

Alexizupinhea (author)2008-12-29

Good concept; circuit seems a little complicated to me. Anyway, I think it would be simpler to use LogMeIn.com and then control which USB ports to turn on and off. You can then relay those USB ports to do something else. I like your concept, just thought I'd give you some new ideas. I never actually used LogMeIn for home automation, but I'm sure you would be creative and think of some cool uses of it. :)

geeklord (author)Alexizupinhea2008-12-30

logmein is AWESOME at school!! Even though its deleted as soon as the computer is restarted....

Oops, I forgot to say, the best part about LogMeIn is that all you'd really need are some relays - so its REALLY cheap.

Pazzerz (author)Alexizupinhea2008-12-30

The best part of this is that you don't need a specific software in order to make it work. Its a better hack than using someone's software already made for remote control. This leaves open the possibility to control more devices that can be untethered from the USB ports.

Actually, I have this whole week off from school!!!!, mabye I'll try to think of some useful home automation things and use LogMeIn, then post an instructable. I'll say your instructable inspired me to do mine.

fwjs28 (author)2008-12-29

pretty sweet.....4/5

cyrozap (author)2008-12-29

Quite a workaround way to do that, but it looks like it will get the job done. This Instructable confused me at first, but when I saw the video I understood it. Nice

jasonT (author)2008-12-29

I remember doing this with my Commodore 64 about 20 year ago! Of course mine wasn't controlled from the internet, I just used it for running a little robot through a few preprogrammed actions.

About This Instructable

57,715views

170favorites

License:

Bio: www.leevonk.com
More by leevonk:WolfPack: Large-Dog CarrierVortex-Drive Micro ROV (ROVVor)Squintasaurus: cybernetic dynamically adjustable vision enhancement system
Add instructable to: