Looking for advice, Control TV from different location using 433MHz RF

Hi everyone,

I am new to this forum and looking for project advice.

Project description:

I would like to control a TV from a different location using 433MHz RF. For example, I control the TV remote and received by a 38kHz IR Receiver in first room. Then I will process in Arduino and send it out through a 433MHz Transmitter. Then at the second room, I will have another Arduino to receive from 433MHz Receiver. Then this Arduino will further process and send out the IR signal to the TV.

Question:

  1. I have look through Ken Shirriff's IR Remote library, GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols before. But I was wondering whether what information I should extract to be transmitted.

  2. What kind of protocol for the RF pair best suited for this kind of application? Purpose is to reduce the noise at receiver.

What I tried before:

  1. Get the decode results using the IR Remote library. But I am unsure with the protocol and detailed from the TV Remote. It seems like the protocol and detailed is needed to transmit the IR signal to TV. The decode results cant be used directly to send to TV.

  2. I tried to get the raw values from TV remote, but I don't understand the meaning behind it.

Hope that someone can help to clarify for my problems. Thanks a lot.

The rf portion is easy, although I don’t know about reducing the receiver noise. I’ve read where the lower the baud rate the farther the range. Since you know how to capture the IR dump, this is your format for ‘sending’ back to the tv:

/*

  • IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
  • An IR LED must be connected to Arduino PWM pin 3.
  • Version 0.1 July, 2009
  • Copyright 2009 Ken Shirriff
  • http://arcfn.com
    */

#include “IRremote.h”

IRsend irsend; // ir emitter (positive lead connected via a 100 ohm resister to pin 3)
unsigned int raw[100] =

{1250,400,1300,350,450,1250,1300,400,450,1200,450,1250,450,1250,450,1250,450,1200,450,1250,1300,350,500,7850,1300,400,1250,400,450,1250,1250,400,450,1250,450,1250

,450,1200,450,1250,450,1250,450,1200,1300,400,450,7850,1300,400,1300,350,450,1250,1300,350,450,1250,450,1250,450,1200,500,1200,450,1250,450,1250,1250,400,450,7900

,1250,400,1300,350,500,1200,1300,400,450,1200,450,1250,450,1250,450,1200,450,1250,450,1250,1300,350,450,7900,1300,350,1300};
void setup()
{
Serial.begin(9600);
}

void loop() {
for (int i = 0; i < 1; i++) { // < 1; = number of times ir code will be transmitted
irsend.sendRaw(raw,100,38);
delay(40);
}

}

When you get this to work, I can post the rf portion.

If you manage to decode the TV IR signal using IRremote (or IRLib) you will get a 32 bit number (or smaller).

It will then be much simpler to send this 4 byte number over RF @433MHz.

Even better would be just sending a 1 byte character to the remote arduino and using a table to translate that locally into the 32-bit code for IRremote. You will get better range and reliability with this approach.

I suggest you play with all of the examples provided with these libraries and then you will have answers for most of the likely questions.

Once you have the IR conquered - then move on to the RF :slight_smile:

@sp_mike That code send all the raw values and transmit out from the IR transmitter. But do I need to send all the arrays of values from the RF transmitter?

@AnalysIR In the first approach you mentioned is getting the 4 byte hex code and send it to the receiver end. Then I can use the hex code received and transmit to the TV, provided I knew the protocol being used right?

The second approach send only 1 byte and map the instructions and get it from something like a look up table from receiver end.

I will try out and see if I faced any problem. Thanks.

Thats the best approach. I would take the second option with a single byte if I was implementing it.

Play with the IR bit first and get it working. Then play with the RF on its own and get it working. Only after that, merge the 2 together.

Always try out the examples first....

"But do I need to send all the arrays of values from the RF transmitter?"

There is only one array shown in my example. It is just sort of word wrapped. You may receive duplicate arrays while recording your IR dump. You just need to copy and paste one of them into your 'send' sketch. Something is wrong here with my IRRemote library. I am trying to capture my IR dump and can't get it to work.