В устройствах - микрофон, фильтр на одну частоту, софтовая обработка длительностей интервалов звучания и промежутков между ними. Если все интервалы и промежутки примерно равны заданным константам тау и 2*тау, то пытаться декодировать. В пакете должны быть: контрольная сумма (проверка целостности пакета), номер устройства (чтобы устройство не залило в себя услышанное для рядом расположенного устройства), номер обновления (принимаются только данные с ожидаемым номером обновления, после успешного вливания хранящийся в устройстве ожидаемый номер обновления инкрементируется, это нужно чтобы не залились дважды одни и те же данные) Реально получится пересылать где-то 1 байт в секунду :) Если требуется передать всего несколько байт, то самое оно. Ну, и хорошо бы, чтобы устройство подало знак, что данные успешно приняты (лампочкой мигнуло или буззером или этим же микрофоном что-нибудь вякнуло) Имхо, дуделка для улицы - самое то, ибо для микрофона нужны лишь дырки в корпусе устройства, в отличие от фотодатчика он не боится грязи и не требуется волноваться об общем уровне освещённости (когда солнышко светит в упор, что вам скажет инфракрасный диод?)