Going the opposite way to the last post this is a version of the TinyTX wireless sensor node using a very cheap radio setup. I first experimented with this 433MHz OOK/ASK radio pair a few years ago with an ATmega328 and the VirtualWire library but I never did much with it beyond a simple demo and when I started using the RFM12B it got shoved in a drawer and forgotten about. At some point I dug it out and botched it onto the TinyTX V2 board you see here but it seems that the internal oscillator on the ATtiny84 isn’t accurate enough for the timing required for VirtualWire and I couldn’t get it to work so it languished in a drawer for a while longer.
After a recent discussion reminded me about it I thought I’d give it another try with this Manchester encoding library which is supposed to be a lot less timing critical and it does indeed work perfectly and makes it very easy to use a struct to send the data back to the gateway just like with the RFM12B and SRF versions.
The eBay listing I bought mine on is long gone but there are loads of similar ones on there for as little as £3 for the pair. My transmitter is a AU-T01 and the receiver AU-RM-5V but I’ve seen identical looking ones sporting different part numbers, these look identical for example. I can’t find a datasheet for either but the notes I have from when I bought it says the transmitter should work on anything between 3 and 12V (consuming 9mA at 3v) but the receiver is specified at 5V (as the part no. suggests), however I’ve tested it on 3V3 and it seems to work fine.
The transmitter has 3 pins, VCC, GND and data, the receiver has 4 pins, VCC, GND and for some strange reason two data pins, both seem to function the same way so it doesn’t matter which is used. Fitting the transmitter to the TinyTX was a bit of a botch admittedly but it would be eminently suitable for constructing a very small stripboard based sensor and it could be constructed so that the transmitter module was located over the ATtiny84. In fact an 84 isn’t even necessary, the little 8 pin ATtiny85 would work just as well here.
Here is a picture of the TinyTX with the module removed so you can see how I attached it, the transmitter had 3 pins already fitted so I just bent the pins on a 3 pin female header 90 degrees and soldered it to 3 of the pads on the RFM12B footprint. It works.
So if you want to construct a very cheap sensor node this is one option, I need to do some more testing with the receiver in my normal base station location but so far the range on this one doesn’t seem as good as the SRF or RFM12B but if cost is an issue it might be worth a try. Another even cheaper and possibly better option I’m going to look at next is the NRF24L01 which is incredibly cheap (£1.86 for a pair or even less in quantity) but being 2.4GHz they probably won’t have the same ability to penetrate walls as the 433Mhz or 868MHz radios, although Martin Harizanov has done some testing and it looks better than I expected.
If you want to try the OOK version here is some example code for use with a DS18B20 temperature sensor and a there is a simple receive example here. This one is a send only node of course as these are a separate transmitter and receiver not a transceiver, so no ACKs. In a further post I will show some new emoncms gateway code that will work with RFM12B, SRF or OOK nodes as required.
As with the SRF version I’m using the Narcoleptic library for a low power delay instead of the loseSomeTime in Jeelib. I made a small mod by changing the variable type for the delay from an int to unsigned int in Narcoleptic.cpp and Narcoleptic.h so that I could extend the delay to 60 seconds.