📻 WebSDR — Универсальный приёмник в вашем браузере
Как работает популярный сервис и как создать свой сервер
Наверное, всем известен популярный сервис в интернете, веб-SDR приёмник: WEBSDR.ORG
На сегодняшний день этот сервис включает 169 официальных приёмников по всему миру и неизвестное количество незарегистрированных приёмников. Обусловлено это тем, что автор этого, поистине бесценного произведения искусства PA3FWM, Питер-Тьерк де Бур, являющийся доцентом голландского университета Твенте, сильно ограничил распространение ядра приёмника.
Требования Питера понятны. Запуская сервер веб-SDR на своём компьютере, было бы крайне желательно обеспечить его бесперебойную работу для большого количества подключающихся пользователей (клиентов) со всего мира. Для этого необходимо было иметь мощный компьютер и довольно быстрый интернет. Этот принцип заложен был в изначальное требование к тому, кому Питер раздавал приёмники. Напомню, эти требования были актуальны в конце 00-ых, начале 10-ых годов, когда похвастаться подобными ресурсами могли не все.
Но время идёт. На сегодняшний день, компьютер, который может с лёгкостью обрабатывать хоть несколько SDR-приёмников и иметь широкополосный скоростной интернет в больших городах (и даже в сёлах) если есть не у каждого радиолюбителя, то у каждого третьего – это точно. К тому же, как говорят слухи, автор уже как года 2 перестал поддерживать этот проект и не обновляет его.
Именно по данной причине, я решил написать статью для всех интересующихся данной тематикой и описать в подробностях, как работает этот сервис.
🖥️ КАК РАБОТАЕТ СЕРВЕР WEBSDR
Как именно работает сам сервер практически никому не известно, т.к. автор все исходные коды сервера держит всё это время в секрете, чем сильно ограничивает его развитие. Для людей, разбирающихся глубоко в ЦОС, наверное, нет секретов, но для большинства это и не важно. Важно понимание самого принципа работы всей системы.
Сервер собой представляет скомпилированную т.н. сервер Java-машину, которая обрабатывает входящий IQ-поток данных от физического приёмника (или нескольких приёмников) и создаёт свой индивидуальный виртуальный приёмный канал с заданными свойствами (модуляция/полоса/громкость/индикация уровня сигнала) для каждого вновь подключившегося клиента + для всех имеется одинаковый водопад или спектр с оптимальными свойствами для низкоскоростных соединений к серверу извне.
Для каждого клиента данные с приёмника упаковываются в TCP пакеты и отправляются на удалённый компьютер. На открытой странице приёмника эти данные обрабатываются. Вы видите панораму, управляете приёмником, слышите звук. При этом сетевой трафик получается минимальным, а нагрузка на компьютер, в отличии от реального SDR-приёмника – ничтожна!
Сам сервер «крутится» на базе ОС Linux. Для этого подходит всё семейство ОС Ubuntu или Debian или их ответвления. Подходят даже самые минималистические образы систем. Лишь бы работало Ядро ОС и сетевое оборудование. Все настройки сервера и старт осуществляются из командной строки. Для удобства, конечно, можно использовать и ОС с графической оболочкой, но в самых крайних вариантах со слабым железом, описанных ниже желательно использовать минимальный консольный вариант ОС.
Как было сказано выше, сервер WebSDR-приёмника – это совсем крошечное ядро на Java. Всё остальное представление WebSDR-страницы является надстройкой к этой Java-машине и представлено в виде HTML-кода и JavaScript-кода. В этом коде описано, как страница выглядит, начальные настройки страницы, состояние приёмника и точки входа управления приёмником.
Кроме того, реализована возможность слушать WebSDR-приёмник на любом более-менее современном телефоне на базе Android или iOS.
Изначально, автор максимально упростил оформление и долгое время оформление страниц у большинства приёмников было по-авторски серым и минималистичным.
Но, когда среди радиолюбительского сообщества нашлись мастера веб-дизайна, некоторые страницы веб-приёмников преобразились до неузнаваемости и стали по-своему прекрасными!
⚙️ ТРЕБОВАНИЯ И ВОЗМОЖНОСТИ В ОТНОШЕНИИ КОМПЬЮТЕРНОГО ЖЕЛЕЗА
На заре развития WebSDR-сервера в качестве физического приёмника закладывалось применение простых приёмников типа SoftRock, работающих со звуковой картой компьютера. На начальном этапе приёмники имели полоску 48/96/192кГц и поддерживали только КВ-участки.
Когда в широкую продажу зашли из Китая экстра-дешёвые 8-битные SDR-свистки — это произвело переворот! Автор включил их в поддержку железа и сервер стал практически универсальным. Следует понимать, что сервер никак не связан с тем, какой диапазон вы хотите транслировать. Диапазон принимаемых частот зависит только от железа SDR-приёмника. Сервер занимается только обработкой IQ потока.
Для обеспечения бесперебойной работы для большого количества подключающихся пользователей (клиентов) со всего мира необходимо соблюсти 2 условия: наличие мощного компьютера и широкополосного скоростного интернета с «белым» IP-адресом. Если вы хотите сделать свой личный приватный сервер WebSDR или сервер для друзей, то требования к железу и интернету существенно упрощаются. Нагрузка на компьютер складывается из количества подключившихся к серверу клиентов и применяемого (применяемых) SDR-приёмников.
📋 Рассмотрим следующие варианты реализации компьютерного железа:
-
Построение производительного WebSDR-сервера для общего применения
На базе нескольких SDR-приёмников с полосой до 2МГц:- Компьютер с процессором не ниже i5 или i7 последних поколений с 8 или 16Гб памяти
- Максимально скоростной, желательно оптический интернет с белым IP-адресом
Результат: Такой сервер позволит подключаться к приёмнику неограниченному количеству клиентов со всего мира.
-
Построение среднего WebSDR-сервера для общего применения
На базе нескольких SDR-приёмников с полосой до 2МГц:- Компьютер с процессором не ниже i3, i5 или i7 из 2…6 поколений с 8 или 16Гб памяти
- Максимально скоростной LAN-интернет с белым IP-адресом
Результат: Такой сервер позволит подключаться к приёмнику многим клиентам со всего мира в количестве 30…60 человек.
-
Построение слабого WebSDR-сервера для индивидуального применения
Для ближайших друзей на базе нескольких или одного SDR-приёмника с полосой до 2МГц:- Компьютер с процессором не ниже 2-х ядерного Celeron или, лучше, i3/i5/i7 из 1 или 2 поколений i-core с 2, 4 или 8Гб памяти
- Скоростной LAN-интернет 10…50Мбит/с, желательно с белым IP-адресом, но можно и без белого IP. Для крайних случаев подойдёт модем с 4G интернетом
Результат: Такой сервер позволит подключаться к приёмнику вам или вашим друзьям со всего мира в количестве 1…30 человек.
-
Построение простейшего WebSDR-сервера для индивидуального применения
Для ближайших друзей на базе одного SDR-приёмника с полосой до 1МГц или пары SDR-приёмников полосой 96…256кГц:- Микрокомпьютер Raspberry Pi 3 или 4 в максимальной конфигурации
- Скоростной LAN-интернет 10…50Мбит/с, желательно с белым IP-адресом, но можно и без белого IP. Для крайних случаев подойдёт модем с 4G интернетом
Результат: Такой сервер позволит подключаться к приёмнику вам или вашим друзьям со всего мира в количестве 1…10 человек.
📡 Поддерживаемые приёмники
- Любые классические SDR-приёмники, любого диапазона на базе применения звуковых карт. Главным критерием должна быть поддержка звуковой карты в Linux. Полоса сервера — до 196кГц.
- SDR-приёмники на базе R820T(T2)+RTL2832. Полоса сервера — до 2МГц.
- SDR-приёмник Afedri. Полоса сервера – до 768кГц.
- SDR-приёмники на базе клонов SDRPlay. (Пока не опробовано, но пишут, что до полосы 2МГц тоже работает)
- Любой другой SDR или DDC приёмник с IQ выводом данных в звуковом или TCP-виде. (Тема отдельных исследований и экспериментов)
Таким образом, вы можете легко собрать свой собственный сервер на базе дешёвых SDR-свистков для себя любимого как в пределах внутренней домашней (или не домашней, а на работе) сети или с выходом в «большой веб». Свой собственный сервер вы можете не светить в общей сети и/или на сайте-агрегаторе автора, достаточно правильно сконфигурировать сервер.




