Hi Folks
Has anyone of you ever attempted to send data over PMR radios, babyphones, ham radio or similar devices?
The idea has sprung from the need to create a wireless weather sensor very quickly on a small budget. I'd like to use only what is available to me here and now. I only need one-way communication as I just need to send a few values to a base station connected to the internet to remind me when the plants need watering: I have an Arduino in the garden, reading in soil humidity values. They are supposed to be sent to another Arduino base station connected to the PC or an ethernet shield, whatever I get to work out.
My idea would be to use two handheld radios as a link between the outdoor arduino and the indoor arduino, as I have two of those around. There doesn't seem to be an arduino library out there which would allow me to encode and decode data in audio signals, is there?
<ARDUINO (lib.)>--wire--<audioIn TRANSM.> - - air - - <audioOut RECEIV.>--wire--<ARDUINO (lib.)
From a first google, there are no obvious picks, but a lot to draw inspiration from:
http://www.ecst.csuchico.edu/~eseifert/radio_modem.html
- uses a common FM transmitters and FM radios to sends strings of audio-encoded data ('chat') over the FM band. Impressive, but implemented on a PC. I want THIS but as a library for the arduino. It would be OK if this is all the CPU allows, I have some ATMegas lying around so I can dedicate one exclusively for communication.
Necessities: Sound library (free), DIY FM transmitter (free-5$), DIY FM receiver (free-5$) or other radio pair
Price: 0-10$
http://w2mh.wordpress.com/2010/06/03/dtmf-shield/
- There appears to be a shield which can decode DTMF, which could be used to encode my data. But for this, I'd either need the shield or the components as it used a dedicated IC (MT8870) to decode the signal. This probably also means that it tolerated high noise levels which might be really good.
Necessities: DTMF data encoding library (free), [2] MT8870 (<10$), radio pair (got them: free)
Price: ~10$
- This is a really nice writeup of the same chip used above in combination with an ATMega.
But I don't necessarily want to buy an MT8870. Chips are 3-4 Euros a piece on Ebay but have to be shipped from Thailand or otherwise sourced and shipped to Europe. Also, I'd need to work a bit on how to de- and encode the data I want to send.
http://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/
http://code.google.com/p/sserial2mobile/wiki/MotorolaC168i
- Another possibility was to use GSM SMS alerts, but I don't have any cellphone working with the sserial2mobile-library however, there would be a 15 Euro one on Ebay as a last resort. The GSM modules are just too expensive for me right now.
Necessities: Cellphone (~20$ Ebay), GSM module (>50$)
Price: 20-80 $
Just a thought: What about using and IR-communication library and just putting the audio input where the LED was. Could something along those lines work? The LED light is modulated and it might work reliably even with noise.
Necessities: IR functions(free), IR transmitter/receiver pair (free-5$), radio pair (got them)
Price: free if you can get a IR remote controlled device to take apart
- Now and then there is this nice little thing: It allows you to hack the 433MHz AM transmitter remotes of available el-cheapo remote controlled outlet devices. It doesn't feature more then a 'sort of' 4 bit communication as it is, but I'm mentioning it since I have one lying around, maybe I missed an obvious solution here.
Necessities: a good idea for an easy protocol (priceless), Remote controlled outlets (~20$)
Price: 20$
http://code.google.com/p/arduino/issues/detail?id=441
This also looks interesting, it is an arduino based device that creates CTCSS signals (I'm not entirely sure how it works though as details are sparse.) It also uses a dedicated chip for the generation of the signal, which rules out this particular implementation for me. (for now...) But CTCSS tones are quite low, maybe that makes it more robust?
Necessities: library for encoding CTCSS tones (priceless), radio pair, maybe needs dedicated ATMegas
Price: possibly free
This is an application note for an ATMega used as a DTMF tone generator. This helps me only so far, as it covers only one side of the whole operation but it's nice to see that tone generation obviously works.
Necessities: Dedicated ATMega (free-5$), a way to decode the data (priceless)
Price: free-5$
//edit: just for completeness, I'll add those two possibilities which are wandering my mind:
http://www.geocities.co.jp/arduino_diecimila/wifi/a2p_ddwrt_en.html
- now this would be a nice idea: use a DD-WRT flashed router with a serial port to send data to Processing I could just build a nice enclosure and put myself a router in the garden. Awesome, but quite expensive if you don't have the router. I'd have one but I might need it inside.
Necessities: DD-WRT router (ie. Linksys WRT54GL) (free-60$), waterproof housing (have one!), antenna wiring adapters (have them)
Price: free-65$
http://jeelabs.com/collections/all
- Here is an excellent all-around solution, I could just use a JeeLink with a JeeNode. It's so excellent because the arduino compatible software takes care that my data is transmitted easily and securely. Also, a lot can be learned from the author, who puts a lot of effort into documenting the development of his products. (Thanks!)
Necessities: JeeLink (30 Euro), JeeNode SMS v2 (24 Euro)
Price: 54 Euro (with shipping)
As a sidenote: I'm aware that transmitting data over PMR is not necessarily legal, but I also don't suppose that a few tones transmitted a few times an hour will bother anyone. Also, I can opt for citizens band, which seems to allow for data transmission. (You can leave worrying about this issue to me, I'll check local regulations before building the device, promise.) The interesting thing is encoding/decoding of data to audio with medium to high reliability.
Also, I already have the following components I in intend to use:
Indoor station:
[1] small laptop running XP and/or Ethernet shield,
[1]Arduino/AtMegas,
[1] 868 MHz receiver module,
seperately: [1] Chumby to display the Pachube data
yet to determine: [1] outdoor sensor receiver
Outdoor station
[1] Arduino
[3] DIY gypsum soil sensors
[1] DIY DS1820 soil temp sensor
seperately: [1] weather station 868 MHz (Alecto WS-4000 3000)
yet to determine: [1] sensor data transmitter
Do you have any other ideas how I get my indoor arduino to receive data from the outdoor unit cheap and fast?
Also, I have not yet completely resolved the issue on how to get the weather station data to the arduino with the receiver module, but that's another topic. Of course, I could get a 868 MHz transmitter so both, the weather station and the outdoor arduino would be able to transmit to the indoor arduino. But reading the weather station data seems rather complicated and I haven't found a good tutorial: apparently you have to do some modifications on the module to make it work, if it works at all. Thus I'll make it my first priority to get the soil sensors working with the indoor station whatever way works fastest.
Any ideas? If you have done something similar, feel free to dump some code, links or pics.