Наверное, всем известен популярный сервис в интернете, веб-сдр приёмник: WEBSDR.ORG
На сегодняшний день этот сервис включает 169 официальных приёмников по всему миру и неизвестное количество не зарегистрированных приёмников. Обусловлено это тем, что автор этого, поистине бесценного произведения искусства PA3FWM, Питер-Тьерк де Бур, являющийся доцентом голландского университета Твенте сильно ограничил распространение ядра приёмника.
Требования Питера понятны. Запуская сервер веб-сдр на своём компьютере, было бы крайне желательно обеспечить его бесперебойную работу для большого количества подключающихся пользователей (клиентов) со всего мира. Для этого необходимо было иметь мощный компьютер и довольно быстрый интернет. Этот принцип заложен был в изначальное требование к тому, кому Питер раздавал приёмники. Напомню, эти требования были актуальны в конце 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 или i-OS.
Изначально, автор максимально упростил оформление и долгое время оформление страниц у большинства приёмников было по авторский серым и минималистичным.
Но, когда среди радиолюбительского сообщества нашлись мастера веб-дизайна, некоторые страницы веб-приёмников преобразились до неузнаваемости и стали по-своему прекрасными!
ТРЕБОВАНИЯ И ВОЗМОЖНОСТИ В ОТНОШЕНИИ КОМПЬЮТЕРНОГО ЖЕЛЕЗА
На заре развития 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-х ядерного Целерона или, лучше, 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-сервер на базе Paspberry Pi Zero. Он более-менее сносно позволял прослушивать на одном SDR-свистке УКВ-диапазон полосой 256кГц 10-и человекам. Так же, был опробован вариант сервера на базе нетбука HP х360 c процессором Celeron N2840. Он более-менее сносно позволял прослушивать на 3х SDR-свистках разные УКВ-диапазоны полосой по 1МГц 20-и человекам.
Примечание 2: Не рекомендуется применение компьютеров на базе процессоров поколения ниже i-core, т.е. всяких Core 2 Duo и, тем более, всяких Целеронов предыдущих поколений.
Поддерживаемые приёмники:
1) Любые классические SDR-приёмники, любого диапазона на базе применения звуковых карт. Главным критерием должна быть поддержка звуковой карты в Linux. Полоса сервера — до 196кГц.
2) SDR-приёмники на базе R820T(T2)+RTL2832. Полоса сервера — до 2МГц.
3) SDR-приёмник Afedri. Полоса сервера – до 768кГц.
4) SDR-приёмники на базе клонов SDRPlay. (Пока не опробовано, но пишут, что до полосы 2МГц тоже работает)
5) Любой другой SDR или DDC приёмник с IQ выводом данных в звуковом или TCP-виде. (Тема отдельных исследований и экспериментов)
Т.о. вы можете легко собрать свой собственный сервер на базе дешёвых SDR-свистков для себя любимого как в пределах внутренней домашней (или не домашней, а на работе) сети или с выходом в «большой веб». Свой собственный сервер вы можете не светить в общей сети и/или на сайте-агрегаторе автора, достаточно правильно сконфигурировать сервер.
Большой материал, о том, что и как, а так же из чего состоит websdr, как установить и настроить, Вы можете узнать из большого материала.