The Web Clicker is a web server & IR transceiver. You can record any IR command and play it back via an AJAX web interface or just by requesting a URL. It works great from a cell phone and it's especially handy for home automation projects. It's based on a Propeller Platform USB, here's a little demo;
Continue on and I'll answer a few questions and then show you how to make it.
Remove these ads by
Signing UpStep 1FAQ
The Web Clicker can control any IR device (TV, DVD, Stereo, etc) simply by requesting a URL. There's also an AJAX based control page so you can use it with a web browser, like on your iPhone or computer.
The Web Clicker is awesome for home automation projects because of it's ease of implementation - just request a URL and you'll generate an IR signal or trigger a series of IR signals
Why?
I built the web clicker mostly for home automation - I have a MythTV DVR that uses an RF remote. Now, I've set it up so when I push the power button on the remote, the DVR makes a page request to the Web Clicker and it generates the correct IR signal.
How?
The Web Clicker is a Propeller Platform USB and E-Net Module, and a very basic IR circuit. Web server code is based on PropTCP, by Harrison Pham, and I wrote a custom object (Magic IR) for capturing and playing back IR signals.
I started researching IR control schemes - after a few days of work, I decided it would be better to code my own IR recorder - this way it's compatible with any TV without having to look through a huge code list. It's like a learning remote that has greater than 100ns accuracy & unlimited storage capacity.
I'm using a 38kHz IR receiver, which is the most common (95% of devices). If your devices uses another frequency, it's easy to use a different IR receiver.
All the software & hardware is available under the MIT license, which is essentially public domain.
Using it
I'll get into using it in a bit, but here's the big picture;
- Enter the webserver address into your browser
- Hit 'Record' to capture IR commands
-
Initiate playback either by:
- requesting a URL (something like: http://192.168.1.252/exec.cgi?x- where x is the command number), or,
- through the web interface on your smart phone or PC.
| « Previous Step | Download PDFView All Steps | Next Step » |









































One question: Do I have to have the SD card? e.g. when I program the device does it go into volatile storage, requiring it to be reprogrammed every time power is lost, or is there some on-board flash?
Also, I am having the problem where it crashes after recording 5 codes, or sometimes on playback.
One more thing, any advice on how I could rework it so that I can mimic holding a button like Vol+ instead of clicking it a bunch of times to raise the volume a lot?
If there's an Infrared command that switches videos, then certainly. If there's a computer that controls the currently playing video file, the Propeller Platform USB can interface with it over the USB connection - but it's beyond the scope of this instructable.
Hope it helps!
Thank you for the code and instructions I just have two problems:
- The codes are stored in ram, and I want to save them to a sdcard, with one file pr code or in raw. I should be able to make that by my self, but if anyone already have written it, I would be happy to take a peek at your code
- My clicker crashes after just recording 5 codes, tried to adjust the allocated variable sizes but that shouldn't be the problem since they allow 10 codes (at least?). I think I have narrowed it down to the assembly for recording codes, but I can't figure out whats wrong, anyone have a clue?
Btw, nice 'ible
I only have one problem, when i power off the webclicker all the recorded commands are lost, in order to make it save and do not lose the commands, what do i need to do? save everything in the microSD? How can i do that?
Thanks!
Thanks
sock[sockid].str(string("', 'mydiv')",34," href='javascript: void(0)'>Play Code</a>"))To;sock[sockid].str(string("', 'mydiv')",34," href='javascript: void(0)'><img border='0' width='100' height='100' src='http://www.clker.com/cliparts/2/2/3/e/11954382541257828096play_symbol_cosmin_humen_01.svg.med.png' /></a><br />"))That will grab a generic 'play' button for youAnd can macros be assigned to buttons, too?
Forgive all my questions, I'm a rather poor programmer, and have insufficient knowledge of Java to figure it out myself.
ELSEIF strcomp(args, string("8")) sock[sockidx].str(string("Playing Command!")) playcommand(8)Just change that to;
ELSEIF strcomp(args, string("8")) sock[sockidx].str(string("Playing Command!")) playcommand(4) playcommand(5) playcommand(6)In the first example, when you request command 1, it will play command 1. You change it so when you play command 1, it will play command 4, then 5, then 6.Doing this in AVR ASM or with the native gcc C libraries should be fine though.
http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
I'm just not sure how to do the server side with the remembering of the codes.
http://asynclabs.com/
Again, I'm just not sure how to do the HTML/Server stuff with the Arduino.
that is the project i was looking for ages =)
you're awesome.
first i'll try to gather the parts, but if i cant,
well..
may be you can make one and sell to me ?
anyway that is really cool, i'll try to create a house automation working via my android phone.
opening apt's door, closing lights etc.. even thinking is awesome.
THANKS!