Conceptually is far simpler. APRS is an application that is transported over AX.25, a packet networking (that is, there can be more than 2 nodes) protocol, which itself is transferred over VHF radio with FSK modulation.
DTMF is a representation of 16 values on one symbol but rather a signalling system than a modulation method
Frequncy Shift Keying is a digital modulation method. The output is a wave. An incoming bit will make the output frequency to be f0
if it is 0 and f1
if it is 1. This output is sent over the 'channel' (VHF FM radio, audio cable, ...) to the other side physical entity, where it is demodulated, i.e converted to the original bit stream - or at least attempted to since noise and gremlins never leave the channel. Then, bits are gathered to form bytes, bytes to form ... everything. I'm certain that wikipedians have alraedy written up the staff and far better than me.
The channel and its gremlins is the thing that separates and joins you with the other side. The task is to tame the channel by feeding it with the properly tailored signal for efficient, error-free and appropriately fast communication. In the case of the audio cable connection for a low(-ish) data rate the things are much more comfortable than radio or telephony.
In fact perhaps you can do a pretty quick start by using the Tone library and a circuit similar to the one in bertos site (ommit the three of the four resistors R1-R4 since you have one output pin). Define your f0
, and "send" a myfsk.play(1200,3) or a myfsk.play(1800,3) for a 0 or a 1. At the smart phone, have your application to discriminate between the two frequencies, set a bit upon the outcome, shift it in and wait for the next. (at 3msec bit duration, you are at 333.33 baud - already higher than the Bell 103 and V.21 but behind 202 and V.22