This is the RF Link Kit in question:http://www.seeedstudio.com/depot/2km-long-range-rf-link-kits-w-encoder-and-decoder-p-321.html(2KM Long Range RF link kits w/ encoder and decoder)

------------------

I am building a wireless link to be able to remotely monitor a greenhouse temperature. The temperature will be represented by an analogue voltage derived from a thermistor, say in range 0-3V.

I am using an Arduino Mega to convert the analogue input to a digital output and plan to feed this into a wireless board. I then have a matching wireless receiver which feeds a Arduino Duemilanove which is connected to the PC via USB.

The wireless transmitter and receiver work OK over the required distance - I can transmit a binary signal to flash an LED on the receiver, using the following code

I have read something about soldering the pads on the tx and rx boards but I don't see how this would help transmit a message that will vary according to the analogue input to the Arduino....and then pass this on to the PC to decode and translate into a temperature reading.

I have tried that code but to no avail. Below is the precise code I used.Does anyone else have any other ideas, perhaps alternative to virtualwire or pointers on how I could implement my own software to achieve my goal?

const char msg[] = "a"; and have equalized the tx/rx speeds (tried 1,100,500,2000). Wasn't sure what you meant by "even if same pin but called by digital name".

Here is my wiring. Note that I am not using the variable resistor analog signal in my test code, but will be eventually.Also note that it looks like I am TXing on a pin that should be RXed at A0. In my testing where I was just sending a high/low pulse (which worked), it was in fact RXed at the A1 pin (not sure why). I've tried both A0 and A1 in the code to no avail

The Virtual Wire library and these RF devices, ¿I can send and receive one (or more than one, better) data type "char" from sender to receiver? I managed to send and receive up to 4 bits (one for each pin transmitter / receiver) but WITHOUT Virtual Wire; I use this code (get from Seeeduino forum (!thanks!)):

You have bought the wrong RF link kit.That kit has a encoder and a decoder on the board with the transmitter and receiver.Its most likley based on the SC 2262 / SC 2272 4 bit data encoders, which can send a 4 bit value from one to the other.You dont need Virtual Wire.To send an 8 bit value , you will have to break it into 2 , 4 bit values , and then send the 4 bit values one after the other.

I just want to add my 2 cents, since I've done something very similar and it's been working.

First, I don't believe you can send 2 4-bit chunks. The interrupt will only trigger when the receiver sees data (actually when it see a transition from 0b0000 to something else. So you can't actually send 0b0000. When I did was to send 3 3-bit chunks, with the 0b1000 bit always high. That way, sending 0b0000 through 0b0111 always triggers the interrupt.

I have an application very similar to what is originally described. I needed to monitor temperature (in case the heater fails), water (in case there is flooding due to a burst pipe), and some PIR motion sensors. I managed to create a sketch that transmits a few bytes of data plus a checksum, with each 5-byte transmission taking about 10 seconds. The sender sketch actually sends about 15 3-bit chunks (as described above) over a 4-second internal, then pauses for 6 seconds. The receiver sketch puts it back together. The pause allows the receiver to know when it only received a partial transmission and resync. This is a "lossy" transmission - on average over a long period, only about 95% of the transmissions get through, but for my application that's good enough. I've been able to transmit over about 300 ft, through windows at both ends and through a wooded area between the buildings.