Технологический шаг назад, чтобы сделать шаг вперёд: передача данных без интернета
Недавно мне позвонила мама и попросила вызвать ей такси от станции до дачи в подмосковье. Интернет там, не работает, "опять глушат", а вызвать такси через приложение не получается. Это навело меня на мысль: а ведь это - системная проблема, есть куча мест, где есть голосовая связь, но нет интернет-связи.
Удивительно, но даже в 2025 году много где в России (особенно в сельской местности, на дачах, в полях и фермах) всё ещё не работает мобильный интернет. Казалось бы - всё у всех "в цифре", а информацию передать в нужный момент нельзя.
И тут мне пришла в голову идея: а что если мы просто... сделаем шаг назад? Вернёмся к временам 2G и голосовых модемов.
Как работали модемы в 90-е?
Помните, как в 90-х подключались к интернету? Звонок -> писк-писк-щелчок -> и вот он, интернет через обычную телефонную линию. Данные передавались в виде звуков, которые модем кодировал и раскодировал. Всё это работало без всякого интернета, используя просто голосовую связь.
Моя идея: Bluetooth-модем по протоколам гарнитуры для полей и деревень
Что если сделать небольшое Bluetooth-устройство, которое:
- Подключается к телефону как гарнитура (то есть умеет звонить),
- Получает от компьютера или другого устройства данные (например, JSON),
- Преобразует их в звуковой сигнал, как старый модем,
- И отправляет по обычному голосовому звонку на специальный сервер.
На другом конце:
- Сервер принимает звонок,
- Распознаёт номер звонящего (как идентификатор устройства),
- Декодирует аудиосигнал обратно в данные (например, температуру, уровень топлива, показания датчиков),
- И сохраняет их в нужную информационную систему.
* Что можно передавать таким способом?
- Простые JSON-пакеты: {"id": "ferma-001", "temp": 22.5, "soil": "wet"}
- Коды событий или сигналов тревоги
- Телеметрию с оборудования
- Команды и статусы
Скорость невысокая, зато передача работает там, где нет ничего - кроме сотового сигнала.
Сколько можно передать?
Передача данных по голосовому каналу возможна на скорости от 300 до 1200 бод (~30–100 байт/сек).
Файл весом 50 КБ (например, SVG или XML) будет передаваться около 8–12 минут.
С учётом кодирования, повтора и контроля ошибок - до 15 минут на одну передачу.
Как оптимизировать передачу данных?
Чтобы ускорить процесс и сэкономить время звонка, данные можно предварительно минимизировать:
- Использовать короткие ключи: a1 вместо deviceId, b1 вместо temperature и т.д.
- Форматировать JSON в упрощённый вид и при необходимости сжимать.
- Добавить версионирование (например, {"v":1,"a1":"ferma-001","b1":23.5}).
На серверной стороне данные автоматически превращаются в «человеческий» формат с помощью коннектора.
Такой сервис реально развернуть на полях, в деревнях, на буровых и там, где нет интернета, но есть связь.
Схема потока данных
[ Источник данных ] --> [ Bluetooth-модем ] -- Bluetooth Audio (HSP/A2DP) --> [ Мобильный телефон ] -- GSM --> [ Сервер приёма звонков ] -- API --> [ Целевая система ]