VirtualWire - Multiple TXs with single RX

Hi All,
I’m using some cheap 433mhz rf links and VirtualWire to create a wireless environmental logger. It’s pretty basic at the minute, I have an LDR and Temp sensor on one arduino transmitting to another arduino with an LCD attached for display.
Would it be possible to add another TX unit and have that transmit it’s own readings to the same receiver?
I’d like to have about six of these ‘sensor packs’ transmitting to one ‘master’ arduino which will hopefully log each transmitters output to a SD card.

It’s taken me a while to understand VirtualWire, and I’ve noticed no addressing structure. Could I add an ID tag at the end of each packet to differentiate between transmitters?

Thanks

The transmitter units won't know that there are other transmitters. The receiver unit won't know that there are multiple transmitters. So, in theory, there is nothing to prevent you from doing what you want.

Adding an ID to each packet will let you know which transmitter sent the packet. The receiver and virtual wire software won't care.

But, before you get too carried away, you need to carefully consider what will happen if two units send data at the same time. There is no way for the receiver to know that this happened, since it expects only one sender. What do you do in a situation like this? How will you recognize that such a situation has occurred?

Hi PaulS! I realised that sending numbers directly from the arduino wasn't effective so the info is sent as the following string T21L556 With an ID component I was thinking of this, T21L556#1 I was hoping to put each unit into a sleep function and use the watchdog timer to bring it out of sleep, poll the sensors and send the readings. This would only have to happen once every 1/2 hour or so. I know nothing about the sleep and watchdog timers, so will be spending an evening reading! With regards to two devices sending at the same time - possibly verify on the rx side that each device has sent one set of readings every half hour. Ideally the master arduio would wake up each unit in turn. I think this is impossible, but I'd be delighted to be told otherwise!

With regards to two devices sending at the same time - possibly verify on the rx side that each device has sent one set of readings every half hour.

What would you do if a sender hadn't sent something? Are the radios in question transceivers (bi-directional)?

Hi, The radios I'm using at the moment are not transceivers, but surely I could use one TX/RX unit in each sensor node? Could the radio transmitting to a node be used to bring that out out of sleep? Should I be looking at other hardware? Thanks for the replies!

Ideally I'd have the master controller wake each arduino and query it's readings every half hour or so. Let me go and so some reading!

inboxjason: Ideally I'd have the master controller wake each arduino and query it's readings every half hour or so. Let me go and so some reading!

Jason, here's an idea ...

use a 433Mhz Tx and a 315MHz Rx on both the Master and Slave units.

The Master would broadcast commands to all units at once, with an identifier, then only the relevant Slave replies with its data payload.

By the way, these RF units are available again at Sparkfun.

@Novice The rf link units are great as a start but I've just ordered 2 RFM12B rf transceivers which I reckon should work a whole lot better, and they're cheaper per unit than the rf links! Now I've just got to get my head around the RM12 library... These units seem amazing for the price (£7.00ea), I'll know soon enough!

Heres a link if anyone is interested! http://www.hoperf.com/rf_fsk/cob/RFM12B.htm

and the RF12 Library http://jeelabs.net/projects/11/wiki/RF12

Jason,

I am aware of the JeeLabs site. There is a helpful forum on there if you require help.

I would like to hear about your progress because I have a similar project in mind.

@novice

I'll keep you posted, having had a look at JeeLabs, I've realised I'm building a Jeenode with a few extra sensors! Should have the bits I need to start next week... I'll pm you when I've got something working!