Как работает сервер WebSDR

ЭТО ИНТЕРЕСНО

📻 WebSDR — Универсальный приёмник в вашем браузере

Как работает популярный сервис и как создать свой сервер

Наверное, всем известен популярный сервис в интернете, веб-SDR приёмник: WEBSDR.ORG

На сегодняшний день этот сервис включает 169 официальных приёмников по всему миру и неизвестное количество незарегистрированных приёмников. Обусловлено это тем, что автор этого, поистине бесценного произведения искусства PA3FWM, Питер-Тьерк де Бур, являющийся доцентом голландского университета Твенте, сильно ограничил распространение ядра приёмника.

WebSDR интерфейс

Требования Питера понятны. Запуская сервер веб-SDR на своём компьютере, было бы крайне желательно обеспечить его бесперебойную работу для большого количества подключающихся пользователей (клиентов) со всего мира. Для этого необходимо было иметь мощный компьютер и довольно быстрый интернет. Этот принцип заложен был в изначальное требование к тому, кому Питер раздавал приёмники. Напомню, эти требования были актуальны в конце 00-ых, начале 10-ых годов, когда похвастаться подобными ресурсами могли не все.

Но время идёт. На сегодняшний день, компьютер, который может с лёгкостью обрабатывать хоть несколько SDR-приёмников и иметь широкополосный скоростной интернет в больших городах (и даже в сёлах) если есть не у каждого радиолюбителя, то у каждого третьего – это точно. К тому же, как говорят слухи, автор уже как года 2 перестал поддерживать этот проект и не обновляет его.

Именно по данной причине, я решил написать статью для всех интересующихся данной тематикой и описать в подробностях, как работает этот сервис.

🖥️ КАК РАБОТАЕТ СЕРВЕР WEBSDR

Как именно работает сам сервер практически никому не известно, т.к. автор все исходные коды сервера держит всё это время в секрете, чем сильно ограничивает его развитие. Для людей, разбирающихся глубоко в ЦОС, наверное, нет секретов, но для большинства это и не важно. Важно понимание самого принципа работы всей системы.

Сервер собой представляет скомпилированную т.н. сервер Java-машину, которая обрабатывает входящий IQ-поток данных от физического приёмника (или нескольких приёмников) и создаёт свой индивидуальный виртуальный приёмный канал с заданными свойствами (модуляция/полоса/громкость/индикация уровня сигнала) для каждого вновь подключившегося клиента + для всех имеется одинаковый водопад или спектр с оптимальными свойствами для низкоскоростных соединений к серверу извне.

Для каждого клиента данные с приёмника упаковываются в TCP пакеты и отправляются на удалённый компьютер. На открытой странице приёмника эти данные обрабатываются. Вы видите панораму, управляете приёмником, слышите звук. При этом сетевой трафик получается минимальным, а нагрузка на компьютер, в отличии от реального SDR-приёмника – ничтожна!

💡 Важно: Долгое время обработкой графики и звука делалось на Java, встроенном в интернет-браузер. Сегодня, это всё делается на базе новой технологии HTML-5. Обработчик вы можете выбирать сами на странице приёмника, но по соображениям безопасности, лучше применять именно HTML-5.

Сам сервер «крутится» на базе ОС Linux. Для этого подходит всё семейство ОС Ubuntu или Debian или их ответвления. Подходят даже самые минималистические образы систем. Лишь бы работало Ядро ОС и сетевое оборудование. Все настройки сервера и старт осуществляются из командной строки. Для удобства, конечно, можно использовать и ОС с графической оболочкой, но в самых крайних вариантах со слабым железом, описанных ниже желательно использовать минимальный консольный вариант ОС.

Как было сказано выше, сервер WebSDR-приёмника – это совсем крошечное ядро на Java. Всё остальное представление WebSDR-страницы является надстройкой к этой Java-машине и представлено в виде HTML-кода и JavaScript-кода. В этом коде описано, как страница выглядит, начальные настройки страницы, состояние приёмника и точки входа управления приёмником.

Кроме того, реализована возможность слушать WebSDR-приёмник на любом более-менее современном телефоне на базе Android или iOS.

Изначально, автор максимально упростил оформление и долгое время оформление страниц у большинства приёмников было по-авторски серым и минималистичным.

WebSDR старый интерфейс

Но, когда среди радиолюбительского сообщества нашлись мастера веб-дизайна, некоторые страницы веб-приёмников преобразились до неузнаваемости и стали по-своему прекрасными!

⚙️ ТРЕБОВАНИЯ И ВОЗМОЖНОСТИ В ОТНОШЕНИИ КОМПЬЮТЕРНОГО ЖЕЛЕЗА

На заре развития WebSDR-сервера в качестве физического приёмника закладывалось применение простых приёмников типа SoftRock, работающих со звуковой картой компьютера. На начальном этапе приёмники имели полоску 48/96/192кГц и поддерживали только КВ-участки.

Когда в широкую продажу зашли из Китая экстра-дешёвые 8-битные SDR-свистки — это произвело переворот! Автор включил их в поддержку железа и сервер стал практически универсальным. Следует понимать, что сервер никак не связан с тем, какой диапазон вы хотите транслировать. Диапазон принимаемых частот зависит только от железа SDR-приёмника. Сервер занимается только обработкой IQ потока.

⚠️ Ограничение: Автор зачем-то заложил ограничение в полосу принимаемого потока до 2МГц (чем в очередной раз очень сильно ограничил возможности и сферу применения сервера). Сам он, на своём авторском сервере использует всю доступную ему полосу в 30МГц и делиться подобным решением, по отзывам, категорически отказывается.

Для обеспечения бесперебойной работы для большого количества подключающихся пользователей (клиентов) со всего мира необходимо соблюсти 2 условия: наличие мощного компьютера и широкополосного скоростного интернета с «белым» IP-адресом. Если вы хотите сделать свой личный приватный сервер WebSDR или сервер для друзей, то требования к железу и интернету существенно упрощаются. Нагрузка на компьютер складывается из количества подключившихся к серверу клиентов и применяемого (применяемых) SDR-приёмников.

📋 Рассмотрим следующие варианты реализации компьютерного железа:

  1. Построение производительного WebSDR-сервера для общего применения
    На базе нескольких SDR-приёмников с полосой до 2МГц:
    • Компьютер с процессором не ниже i5 или i7 последних поколений с 8 или 16Гб памяти
    • Максимально скоростной, желательно оптический интернет с белым IP-адресом

    Результат: Такой сервер позволит подключаться к приёмнику неограниченному количеству клиентов со всего мира.

  2. Построение среднего WebSDR-сервера для общего применения
    На базе нескольких SDR-приёмников с полосой до 2МГц:

    • Компьютер с процессором не ниже i3, i5 или i7 из 2…6 поколений с 8 или 16Гб памяти
    • Максимально скоростной LAN-интернет с белым IP-адресом

    Результат: Такой сервер позволит подключаться к приёмнику многим клиентам со всего мира в количестве 30…60 человек.

  3. Построение слабого WebSDR-сервера для индивидуального применения
    Для ближайших друзей на базе нескольких или одного SDR-приёмника с полосой до 2МГц:

    • Компьютер с процессором не ниже 2-х ядерного Celeron или, лучше, i3/i5/i7 из 1 или 2 поколений i-core с 2, 4 или 8Гб памяти
    • Скоростной LAN-интернет 10…50Мбит/с, желательно с белым IP-адресом, но можно и без белого IP. Для крайних случаев подойдёт модем с 4G интернетом

    Результат: Такой сервер позволит подключаться к приёмнику вам или вашим друзьям со всего мира в количестве 1…30 человек.

  4. Построение простейшего WebSDR-сервера для индивидуального применения
    Для ближайших друзей на базе одного SDR-приёмника с полосой до 1МГц или пары SDR-приёмников полосой 96…256кГц:

    • Микрокомпьютер Raspberry Pi 3 или 4 в максимальной конфигурации
    • Скоростной LAN-интернет 10…50Мбит/с, желательно с белым IP-адресом, но можно и без белого IP. Для крайних случаев подойдёт модем с 4G интернетом

    Результат: Такой сервер позволит подключаться к приёмнику вам или вашим друзьям со всего мира в количестве 1…10 человек.

📌 Примечание 1: Автором этих строк был опробован WebSDR-сервер на базе Raspberry Pi Zero. Он более-менее сносно позволял прослушивать на одном SDR-свистке УКВ-диапазон полосой 256кГц 10-и человекам. Так же, был опробован вариант сервера на базе нетбука HP x360 c процессором Celeron N2840. Он более-менее сносно позволял прослушивать на 3х SDR-свистках разные УКВ-диапазоны полосой по 1МГц 20-и человекам.
Примечание 2: Не рекомендуется применение компьютеров на базе процессоров поколения ниже i-core, т.е. всяких Core 2 Duo и, тем более, всяких Celeron предыдущих поколений.

📡 Поддерживаемые приёмники

  1. Любые классические SDR-приёмники, любого диапазона на базе применения звуковых карт. Главным критерием должна быть поддержка звуковой карты в Linux. Полоса сервера — до 196кГц.
  2. SDR-приёмники на базе R820T(T2)+RTL2832. Полоса сервера — до 2МГц.
  3. SDR-приёмник Afedri. Полоса сервера – до 768кГц.
  4. SDR-приёмники на базе клонов SDRPlay. (Пока не опробовано, но пишут, что до полосы 2МГц тоже работает)
  5. Любой другой SDR или DDC приёмник с IQ выводом данных в звуковом или TCP-виде. (Тема отдельных исследований и экспериментов)

Таким образом, вы можете легко собрать свой собственный сервер на базе дешёвых SDR-свистков для себя любимого как в пределах внутренней домашней (или не домашней, а на работе) сети или с выходом в «большой веб». Свой собственный сервер вы можете не светить в общей сети и/или на сайте-агрегаторе автора, достаточно правильно сконфигурировать сервер.

Оцените статью
( Пока оценок нет )
22DX.RU
Добавить комментарий