sending data over fm
FSK will give you much higher baud rate (symbols) that DTMF. And due to high baud rate, you can use error detection and correction algorithms, which is necessary since the transmission will be half duplex(?).
AFAIK, 1200 and 2400 Hz are the two frequencies used. You could use two oscillators and switch between the two for transmitting. And you could use one (or two) PLLs to decode on the rx side.
**broken link removed**
**broken link removed**
https://tams-www.informatik.uni-ham.../webdemos/45-misc/40-modem/fsk-modulator.html
And there are a large number of RTTY/Piccolo other mod demod applications using PC soundcard.
Using a PC will not cost you any thing (apart from a PC, which I guess, you have), and some analog circuit plus noise and interference suppression, provided you can use a PC (i.e. not a portable or low power usage).
Packet Radio is a still better idea if you can use a PC in the project.
Added after 30 minutes:
Oh, I forgot, you could use D flipflop and monostable (4538) combination to decode FSK (one frequency).
Set the monostable to pulse length of slightly less than 1/2400 and feed to data of a D flip flop. Clock the monostable and the D flip flop with audio (filtered and converted to square using schmidtts). Q =0 : 2400 present and Q=1 : 1200 is present. Though, this will give you erroneous results if the SNR is low or if the transmission breaks.
There are very many ways to solve a problem, you need to see what suits your abilities / requirements and budget.