As my first project, I wanted to use my PC to control the switching of a few cheap remote controlled sockets in my house. I "googled" for an existing solution, failed miserably, so have made my own. The only components required:

These remote controlled switches use an SC2262 chip to encode a data packet that (in my case) is modulated to 433MHz. Initially I tried building a circuit similar to the 433MHz handset of the remote controlled socket, but I could not get it to work: the answer is embarrassingly easy: emulate the output of the 2262 encoder chip using the Arduino and send to a 433 MHz AM transmission unit. A quick search on eBay revealed an AM transmitter that promised: "The module is very simple to operate and offers low current consumption (typ. 15mA). Data can be supplied directly from a microprocessor or encoding device, thus keeping the component count down and ensuring a low hardware cost."

Using a "DSO Nano V2" oscilloscope" (and a magnifying glass to examine the handset), I discovered the encoding and frequencies generated. The Arduino's "delayMicroseconds ()" function allowed me to reproduced the data packet to be transmitted and I sent it to the AM Transmitter. I won't say it worked immediately, but it does work now. The range is more than 20metres - without an ariel.

I use "System Scheduler" from SplinterWare to schedule on/off commands to the remote controlled sockets via a very simple DOS batch script.

Next project - download schedule to Arduino, so that the remote controlled sockets are controlled when the PC is off (but the Arduino is independently powered) OR woodstove monitor to remind me to put more fuel in when it starts to run out.

// Copyright (C) 2011 Ian Craig, Tithby Hill Limited. tithby<dot>hill<at>ifcraig.com.//// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License// as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.//// A copy of the GNU General Public License is available at: http://www.gnu.org/licenses/.

I've just realised that the radio transmitter has an 11mA (max 22mA) specification. Since my Duemilanove can supply 40mA per digital IO pin, I can use the digital IO to power the transmitter with a simple connection. This means that I can turn the transmitter on just before sending the signal (20mS min) and off afterwards. The transmitter won't be broadcasting the carrier wave all the time, and the power consumption is reduced.

i did the same thing but i used the deomotic home softgware for my htc desire.and modified it to work with any rf controlled wall socketits network controlled over the internet and both from my phone and from a random pc.its programmed to turn on the garden lights at 9:30 and turn them off at 23:30

i use the arduino to read the rf codes from any rf 433 hz remote and transmit them back when needed.

Tricky to port this app to a Netduino Plus - it does not support microsecond timings. It seems that the C# garbage collector can blunder about messing up my timings. Bit of a shame, the built-in network interface, memory card and extra RAM promised an app that would allow me to turn my PC off and a web/cron interface.

CaptainIffy - Thanks for this post. It is very informative. Have you done any work on the receive side of things? My planned project is the opposite of your work - I want to handle the receive side of things. Specifically, I want to use an Arduino to receive 433MHz transmissions from a remote keyfob that uses a SC2262 chip. The specific keyfob that I am going to use costs under $8US and is commonly sold on eBay and included with cheap Chinese alarm systems, also sold on eBay. I have attached a photo of the target keyfob.

In order to start to ply with this project I've tried to upload the code as is, with the TX unit connected, but i'm getting a verify error on the code, I've looked through it but can't understand why it's having an issue with the array on line 121, error:

Nice job. I bought all the same parts a couple of years ago intending to do this but I never got around to implementing it until today.

There's a couple of bugs in the code - a few array indices are missing (that's causing the error Stuart_B reported above), and I replaced the command parser with one that works off a single character. After that it worked fine. It works much better than the actual remote!