Известно, что для хорошего приёма важно выбрать правильную антенну и оптимально её расположить. Без этого даже очень хороший приёмник не сможет поймать слабые сигналы.

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

В любом из этих случаев может возникнуть проблема — антенна будет находиться слишком далеко от приёмника. 

Для приёмника RTL-SDR сразу напрашивается два решения — использовать длинный фидер в виде коаксиального кабеля между антенной и приёмником или включить удлинитель USB между приёмником и компьютером.

К сожалению, длинный коаксиальный кабель вносит заметное затухание, ослабляя сигнал на входе приёмника. Например, кабель RG-58 вносит затухание примерно 10,8 дБ/100 м на 50 МГц, а более дорогой кабель LMR-400 — 2,2 дБ/100 м при 30 МГц и 8,9 дБ/100 м при 450 МГц.

Максимальная длина обычного удлинителя USB составляет всего лишь 5 м. Длина оптоволоконных удлинителей USB может достигать 100 м, однако их стоимость довольно высока.

Между тем есть ещё одно решение — разместить приёмник RTL-SDR рядом с антенной и подключить к микрокомпьютеру, такому как Raspberry Pi, расположенному недалеко от антенны. 

Микрокомпьютер, в свою очередь, подключается к домашней локальной сети с помощью кабеля Ethernet или через Wi-Fi. При этом он будет шлюзом между приёмником RTL-SDR и локальной сетью.

Это решение не только позволяет избавиться от длинного антенного фидера и удлинителя USB, но и предоставляет доступ к приёмнику из любого места вашего дома. А при соответствующей настройке можно сделать доступ к приёмнику и через интернет. 

Схема подключения приёмника RTL-SDR к шлюзу

На рис. 1 показана структурная схема подключения приёмника RTL-SDR к антенне и ноутбуку с применением микрокомпьютера Raspberry Pi в качестве шлюза.

Рис. 1. Подключение приёмника RTL-SDR через микрокомпьютер Raspberry Pi
Рис. 1. Подключение приёмника RTL-SDR через микрокомпьютер Raspberry Pi

На этой схеме к антенне подключен фильтр, за которым идёт малошумящий радиочастотный усилитель. Эти устройства необязательны, однако фильтр заметно уменьшает помехи, а усилитель — увеличивает уровень сигнала на входе приёмника.

Включать нужно именно в такой последовательности — сначала фильтр, а за ним усилитель. Если включить наоборот, то будут усилены не только сигнал, но и помехи.

Микрокомпьютер нужно разместить рядом с приёмником SDR и подключить к приёмнику коротким кабелем USB. Но можно и просто вставить приёмник в разъем USB микрокомпьютера (рис. 2).

Рис. 2. Подключение RTL-SDR blog V4 к Raspberry Pi через USB
Рис. 2. Подключение RTL-SDR blog V4 к Raspberry Pi через USB

Микрокомпьютер, в свою очередь, следует сделать доступным из вашей локальной сети. Самый надёжный результат получится при использовании проводной сети Ethernet, однако можно настроить и Wi-Fi.

Также вам потребуется настольный компьютер или ноутбук, работающий в той же сети, что и микрокомпьютер. Установите на него программу SDRSharp (SDR#). Я рассказал о том, как это сделать в статье «Этот увлекательный мир радиоприёмников».

Для прослушивания принятых радиосигналов используйте наушники или колонки, подсоединив их к компьютеру.

Настраиваем Raspberry Pi 3 B+

В этой статье я расскажу, как сделать описанный выше шлюз с помощью приёмника RTL-SDR Blog V4 и микрокомпьютеров Raspberry Pi 3 B+, Orange Pi 3B, Repka Pi. Вместо Raspberry Pi 3 B+ можно настроить шлюз на базе более мощных Raspberry Pi 4 и Raspberry Pi 5.

Установка Raspberry Pi OS Lite

Для использования микрокомпьютера Raspberry Pi 3 B+ в качестве шлюза между приёмником RTL-SDR V4 и программой SDRSharp будем использовать программу rtl-sdr. Но сначала установим на Raspberry Pi 3 B+ операционную систему (ОС).

Загрузка файла образа ОС

Откройте страницу загрузки ОС для Raspberry Pi и скачайте файл образа 32-разрядной версии Raspberry Pi OS (Legacy) Lite, совместимый с Raspberry Pi 3 B+. Имя файла должно быть таким как 2025-05-06-raspios-bullseye-armhf-lite.img.xz.

С помощью программы balenaEtcher запишите файл этого образа на SD-карту. 

Подключение оборудования и включение питания 

Подключите к Raspberry Pi 3 B+ монитор, клавиатуру, блок питания, локальную сеть через Ethernet, а также приёмник RTL-SDR Blog V4. Подберите достаточно мощный блок питания, лучше всего специально предназначенный для Raspberry Pi 3.

Вставьте в микрокомпьютер SD-карту и включите питание. Начнется процесс инициализации ОС. Вам будет предложено выбрать раскладку клавиатуры, задать имя пользователя и пароль.

Настройка доступа через SSH

Все команды можно выдавать через клавиатуру, подключенную к микрокомпьютеру, наблюдая результаты их выполнения на мониторе. Однако гораздо удобнее работать через SSH, используя такие программы, как PuTTY или MobaXterm.

Чтобы можно было устанавливать и настраивать необходимое программное обеспечение (ПО) через SSH, запустите с консоли команду:

sudo raspi-config

Выберите из меню строку 3. Interfacing options (рис. 3), а затем строку I12 SSH (рис. 4). 

Рис. 3. Строка 3. Interfacing options
Рис. 3. Строка 3. Interfacing options
Рис. 4. Строка I12 SSH
Рис. 4. Строка I12 SSH

Далее выберите строку Yes для включения доступа через SSH.

Настройка региона для Wi-Fi

Если планируете использовать Wi-Fi, выберите строку 5. Localization Option (рис. 5) и затем L4 WLAN Country Set (рис. 6). 

Рис. 5. Строка 5. Localization Option
Рис. 5. Строка 5. Localization Option
Рис. 6. Строка L4 WLAN Country Set
Рис. 6. Строка L4 WLAN Country Set

Для России укажите RU Russia. В меню L2 Timezone выберите Europe и затем Moscow (если вы в Москве).

После настройки этих параметров завершите работу программы raspi-config с помощью строки Exit.

Определение текущего адреса IP

Убедитесь, что ваш микрокомпьютер подключен к локальной сети. Теперь с помощью команды ip с параметром a, выданной с консоли, определите адрес IP, выделенный вашему микрокомпьютеру через DHCP:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:21:41:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.18/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
       valid_lft 85763sec preferred_lft 74963sec
    inet6 fe80::b0b6:2335:d639:ff80/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:74:14:c1 brd ff:ff:ff:ff:ff:ff

В данном случае микрокомпьютеру выделен адрес 192.168.0.18, у вас он будет другой.

Установка драйвера RTL-SDR Blog V4

Чтобы микрокомпьютер смог работать с приёмником RTL-SDR Blog V4, нужно установить соответствующий драйвер. Для этого подключитесь через SSH, обновите ОС и установите необходимые пакеты:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git cmake build-essential libusb-1.0-0-dev pkg-config

Сразу после установки ОС в её составе будет старый драйвер DVB-драйвер, который нужно отключить и заменить новым, с поддержкой RTL-SDR Blog V4.

Сначала отмените автоматическую загрузку модуля драйвера vb_usb_rtl28xxu и перезагрузите ОС:

echo 'blacklist dvb_usb_rtl28xxu' | sudo tee /etc/modprobe.d/blacklist-rtl.conf
sudo reboot

Далее установите новый драйвер rtl-sdr-blog для RTL-SDR Blog V4:

git clone https://github.com/rtlsdrblog/rtl-sdr-blog
cd rtl-sdr-blog
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig

Нужные нам программы rtl_test и rtl_tcp будут записаны в каталог /usr/local/bin/.

Проверка конфигурации

С помощью программы rtl_test проверьте, обнаруживается ли RTL-SDR приёмник системой и корректно ли он работает, выполняя тест захвата данных с устройства:

sudo /usr/local/bin/rtl_test

Если все хорошо, на консоли должны появится такие строки:

Found 1 device(s):
  0:  RTLSDRBlog, Blog V4, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R828D tuner
RTL-SDR Blog V4 Detected
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
Sampling at 2048000 S/s.
Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.
Reading samples in async mode...
lost at least 68 bytes

Чтобы прервать тест, воспользуйтесь комбинацией клавиш <Ctrl +C>.

Запуск трансляции через rtl_tcp

После успешного выполнения теста запустите трансляцию командой rtl_tcp:

/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16

Команда rtl_tcp запускает TCP-сервер для RTL-SDR, принимающий радиосигнал с устройства с частотой дискретизации 1,024 МГц и глубиной буфера 16 КБ. Этот сервер будет доступен по сети на всех интерфейсах (0.0.0.0) через порт 1234.

Параметр a задает IP-адрес устройства для подключения к серверу. Адрес 0.0.0.0 означает, что к серверу можно подключиться на всех доступных интерфейсах. Помимо адреса нужно задать номер порта p, на котором будет работать наш сервер.

С помощью параметра s задается частота дискретизации в Гц. По умолчанию используется значение 2 048 000 Гц. При передаче данных через Wi-Fi и при работе на «слабых» микрокомпьютерах приходится снижать эту частоту для получения устойчивой работы.

Также при передаче данных через Wi-Fi возможно потребуется увеличить количество промежуточных буферов b до 32.

Параметры f и g позволяют задавать частоту начальной настройки в Гц и также усиление, соответственно.

Полное описание параметров можно найти, например, в справочном руководстве (man-page) Ubuntu.

После запуска программы rtl_tcp на консоли появится информация о найденном устройстве и его режиме работы: 

sudo /usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16
Found 1 device(s):
  0:  RTLSDRBlog, Blog V4, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R828D tuner
RTL-SDR Blog V4 Detected
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl_tcp=0.0.0.0:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).

Если программа находится в режиме приёма listening, трансляция работает и можно приступать к настройке SDRSharp, запущенной на компьютере или ноутбуке.

Настройка SDRSharp

Запустите программу SDRSharp и выберите в выпадающем меню устройств Source строку RTL-SDR (TCP). Далее задайте в настройках параметры:

  • Host: адрес IP вашего микрокомпьютера Raspberry Pi (например 192.168.0.16)

  • Port: 1234

  • Sample Rate: 2048000

  • Gain: начальное усиление. Установите движок примерно в среднее положение

Настроив параметры, щёлкните мышью кнопку в виде треугольника для запуска проигрывания. Настроив приёмник на частоту радиостанции, вы должны услышать принятые сигналы, увидеть спектр и «водопад» (рис. 7). 

Рис. 7. Программа SDR# работает с приёмником SDR-RTL через сеть и Raspberry Pi
Рис. 7. Программа SDR# работает с приёмником SDR-RTL через сеть и Raspberry Pi

Обратите внимание на большое количество помех в виде «шпилек». Далее я перенесу приёмник с антенной и микрокомпьютером на балкон в другую комнату, и помех станет намного меньше.

Настройка автозапуска

Чтобы после загрузки Raspberry Pi программа rtl_tcp запускалась автоматически, подготовим для systemd Unit-файл /etc/systemd/system/rtl_tcp.service:

sudo nano /etc/systemd/system/rtl_tcp.service

Запишите в этот файл следующие строки:

[Unit]
Description=RTL-SDR TCP Server
After=network.target

[Service]
ExecStart=/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Обратите внимание на строку ExecStart — в ней находится только что рассмотренная команда запуска программы rtl_tcp.

Активируйте и запустите сервис:

sudo systemctl enable rtl_tcp
sudo systemctl start rtl_tcp

Для проверки состояния сервиса используйте такую команду:

systemctl status rtl_tcp

После перезагрузки Raspberry Pi сервис rtl_tcp запустится автоматически.

Подключение через Wi-Fi

Как я уже говорил, для подключения Raspberry Pi к локальной сети лучше всего использовать Ethernet. Однако если по каким-то причинам это невозможно или неудобно, настройте Wi-Fi. 

Для запуска подключения через Wi-Fi с помощью редактора nano приведите файл /etc/wpa_supplicant/wpa_supplicant.conf к такому виду:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RU
network={
    ssid="******"
    psk="******"
}

В качестве параметров ssid и psk задайте идентификатор вашей сети Wi-Fi и пароль, полученные от провайдера интернета.

После сохранения файла перезагрузите интерфейс Wi-Fi и проверьте подключение:

sudo wpa_cli -i wlan0 reconfigure
iwconfig wlan0

Если все работает, на консоли появится такая информация:

wlan0     IEEE 802.11  ESSID:"******"
          Mode:Managed  Frequency:2.412 GHz  Access Point: 78:96:82:66:6A:34
          Bit Rate=24 Mb/s   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=46/70  Signal level=-64 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:69  Invalid misc:0   Missed beacon:0

Команда ip с параметром a покажет вам адрес IP, выделенный интерфейсу wlan0 для подключения через Wi-Fi:

ip a
…
wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:74:14:c1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.17/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
       valid_lft 77198sec preferred_lft 66398sec
    inet6 fe80::2e43:b20d:1a5f:12b6/64 scope link
       valid_lft forever preferred_lft forever

Для настройки статического адреса IP соединения Wi-Fi добавьте в конец файла /etc/dhcpcd.conf такие строки:

interface wlan0
static ip_address=192.168.0.60/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Укажите здесь нужный вам адрес IP, адрес шлюза и сервера DNS.

После редактирования перезагрузите ОС.

Если качество соединения Wi-Fi не очень высокое, возможны задержки и пропуски пакетов данных. Для получения более стабильных результатов работы шлюза уменьшите для программы rtl_tcp параметр s и увеличьте количество буферов b. Для этого отредактируйте файл /etc/systemd/system/rtl_tcp.service следующим образом:

[Unit]
Description=RTL-SDR TCP Server
After=network.target

[Service]
ExecStart=/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 100000000 -b 64
Restart=always
User=root

[Install]
WantedBy=multi-user.target

После редактирования обновите и перезапустите сервис:

sudo systemctl daemon-reload
sudo systemctl stop rtl_tcp
sudo systemctl start rtl_tcp

Также уменьшите Sample rate в программе SDRSharp.

Если это не поможет, возможно уровень сигнала Wi-Fi в месте установки Raspberry Pi слишком низкий. Как вариант, можно использовать для Raspberry Pi 3 адаптер USB Wi-Fi с разъёмом для антенны и подключить внешнюю более эффективную антенну.

Проверка блока питания

Собирая схему, используйте для микрокомпьютера достаточно мощный блок питания — к нему будет подключен ещё и приёмник RTL-SDR blog V4.

Проверьте, не появляются ли в системном журнале Raspberry Pi сообщения о слишком низком напряжении питания:

sudo dmesg -T | grep hwmon

Если есть сообщения, показанные ниже, подберите более мощный блок питания:

hwmon hwmon1: Undervoltage detected!

При нормализации напряжения появляется такое сообщение:

hwmon hwmon1: Voltage normalized

Переносим антенну и Raspberry Pi на балкон

После настройки Wi-Fi и запуска программы rtl_tcp я попробовал улучшить качество приёма переносом RTL-SDR Blog V4 из комнаты, перегруженной компьютерами и другими приборами, на балкон. Результат показан на рис. 8.

Рис. 8. Уменьшение помех после переноса антенны на балкон
Рис. 8. Уменьшение помех после переноса антенны на балкон

Сравните это с рис. 7. Как видите, уровень сигнала сильно увеличился, а помехи в виде торчащих «шпилек» практически исчезли. И это без применения дополнительных фильтров и усилителей, включенных между антенной и приёмником.

Таким образом, применение шлюза вполне себя оправдало. Антенна и приёмник находятся на балконе в одной комнате, а компьютер с программой RTLSharp — в другой, расположенной довольно далеко от антенны. В качестве сети использована Wi-Fi. Никаких длинных антенных фидеров или удлинителей USB не потребовалось.

Для надежной работы вы можете перевести файловую систему на SD-карте в режим “только чтение”. Этот и другие советы вы можете найти в статье «Малиновый Прог против Интернета Кирпичей, или Raspberry Pi с графикой на read-only microSD».

Настраиваем Orange Pi

Аналогичным образом можно сделать шлюз между приёмником RTL-SDR Blog V4 и сетью с помощью микрокомпьютера Orange Pi 3B (рис. 9).

Рис. 9. Микрокомпьютер Orange Pi 3B с антенной Wi-Fi
Рис. 9. Микрокомпьютер Orange Pi 3B с антенной Wi-Fi

Установка Ubuntu Server

Загрузите файл образа ОС ubuntu-24.04-preinstalled-server-arm64-orangepi-3b.img.xz со страницы https://joshua-riek.github.io/ubuntu-rockchip-download/boards/orangepi-3b.html. Запишите загруженный образ на SD-карту через Balena Etcher.

Подключите к Orange Pi 3B монитор, клавиатуру, сеть Ethernet, блок питания и приёмник RTL-SDR Blog V4. Далее включите питание и загрузите ОС. 

После загрузки введите с консоли логин ubuntu и пароль ubuntu. При первой загрузке нужно будет сменить пароль. Задайте новый пароль для root.

Чтобы получить доступ через SSH, отредактируйте файл /etc/ssh/sshd_config. Добавьте в него такие строки:

PermitRootLogin yes
PasswordAuthentication yes

После этого перезапустите сервис ssh:

service ssh restart

Установка драйвера RTL-SDR Blog V4

Загрузите обновления и перезапустите ОС, установите зависимости для сборки свежего драйвера RTL-SDR Blog V4:

sudo apt update && sudo apt upgrade -y
sudo reboot
sudo apt install -y git cmake build-essential libusb-1.0-0-dev pkg-config

Перед установкой нового драйвера отключите встроенный драйвер DVB-T. Но сначала проверьте, загружены ли модули RTL2832/DVB-T:

lsmod | grep rtl
btrtl                  20480  1 hci_uart
rtl2832_sdr            32768  0
rtl2832                28672  1
dvb_usb_rtl28xxu       32768  1
dvb_usb_v2             36864  1 dvb_usb_rtl28xxu

Если в списке есть dvb_usb_rtl28xxu, добавьте его в «черный список» и перезагрузите ОС:

echo 'blacklist dvb_usb_rtl28xxu' | sudo tee /etc/modprobe.d/blacklist-rtl.conf
sudo reboot

Далее скачайте и соберите новый драйвер:

git clone https://github.com/rtlsdrblog/rtl-sdr-blog
cd rtl-sdr-blog
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig

После установки программы rtl_test и rtl_tcp будут записаны в каталог /usr/local/bin/.

Настройка доступа без sudo

Создайте правило udev, чтобы использовать RTL-SDR без прав суперпользователя:

sudo wget -O /etc/udev/rules.d/rtl-sdr.rules 
https://raw.githubusercontent.com/osmocom/rtl-sdr/master/rtl-sdr.rules

Перезагрузите правила и примените их:

sudo udevadm control --reload-rules
sudo udevadm trigger

Отключите и снова подключите приёмник к USB. Затем проверьте работу:

/usr/local/bin/rtl_test

Запуск трансляции через rtl_tcp

Для запуска передачи потока RTL-SDR по сети введите команду:

/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16

Чтобы трансляция запускалась автоматически при загрузке ОС, создайте сервис rtl_tcp.service . Запишите в файл /etc/systemd/system/rtl_tcp.service такие строки:

[Unit]
Description=RTL-SDR TCP Server (Blog V4)
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16
User=root
Restart=always
KillMode=process
TimeoutStopSec=5
StandardOutput=null
StandardError=null

[Install]
WantedBy=multi-user.target

С помощью следующих команд вы можете активировать и запустить сервис, а также проверить его состояние:

sudo systemctl daemon-reload
sudo systemctl enable rtl_tcp
sudo systemctl start rtl_tcp
sudo systemctl status rtl_tcp

Настройка Wi-Fi

Перед настройкой Wi-Fi проверьте доступность интерфейса wlan0:

ip link show

Если интерфейс есть, обновите пакеты и установите нужное ПО:

sudo apt update
sudo apt install -y wireless-tools wpasupplicant net-tools

Добавьте к файлу /etc/netplan/50-cloud-init.yaml блок wifis, указав в нём свой идентификатор сети Wi-Fi и пароль:

network:
  version: 2
  ethernets:
    zz-all-en:
      match:
        name: "en*"
      optional: true
      dhcp4: true
    zz-all-eth:
      match:
        name: "eth*"
      optional: true
      dhcp4: true
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "****":
          password: "****"

Примените изменения:

sudo netplan apply

Проверьте, что интерфейсу wlan0 выделен адрес IP:

ip a show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether e0:51:d8:20:e3:e4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.20/24 metric 600 brd 192.168.0.255 scope global dynamic wlan0
       valid_lft 86299sec preferred_lft 86299sec
    inet6 fe80::e251:d8ff:fe20:e3e4/64 scope link
       valid_lft forever preferred_lft forever

Для настройки статического адреса IP создайте файл /etc/netplan/99-wifi.yaml:

network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      addresses:
        - 192.168.0.60/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1]
      access-points:
        "SSID_WIFI":
          password: "PASSWORD_WIFI"

Настройте нужные права доступа к файлу и примените изменения:

sudo chmod 600 /etc/netplan/99-wifi.yaml
sudo netplan apply

Теперь интерфейсу wlan0 будут заданы два адреса IP:

ip a show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether e0:51:d8:20:e3:e4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.60/24 brd 192.168.0.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet 192.168.0.20/24 metric 600 brd 192.168.0.255 scope global secondary dynamic wlan0
       valid_lft 86335sec preferred_lft 86335sec
    inet6 fe80::e251:d8ff:fe20:e3e4/64 scope link
       valid_lft forever preferred_lft forever

На этом настройка Wi-Fi завершена, и можно провести тестирование приёмника на балконе или на крыше вашего дома.

Настраиваем Repka Pi

Вместо Raspberry Pi и Orange Pi в качестве шлюза можно использовать микрокомпьютер российской сборки Repka Pi 4 (рис. 10) или предыдущую модель Repka Pi 3.

Рис. 10. Микрокомпьютер Repka Pi 4
Рис. 10. Микрокомпьютер Repka Pi 4

Установка ОС Debian на Repka Pi 4

Для Repka Pi 4 загрузите минимальный образ Debian на странице https://repka-pi.ru/#operation-system-anchor. Далее с помощью программы BalenaEtcher запишите этот образ на SD-карту. Я проводил эксперименты с файлом debian-12-minimal-repka-pi4.img.

Подключите к Repka Pi 4 монитор, клавиатуру, сеть Ethernet, блок питания, способный выдавать ток не менее 3 А, а также приёмник RTL-SDR Blog V4.

Вставьте в микрокомпьютер SD-карту и включите питание. Через некоторое время загрузится ОС, и вы сможете подключиться с помощью консоли как пользователь «root» с паролем «123». 

Для получения доступа через SSH отредактируйте файл /etc/ssh/sshd_config. Добавьте в него такие строки:

PermitRootLogin yes
PasswordAuthentication yes

После этого перезапустите сервис ssh:

service ssh restart

Теперь вы можете подключиться к Repka Pi4 через SSH и работать со своего компьютера.

Установка нового драйвера RTL-SDR Blog V4

Обновите ОС и установите необходимые пакеты с помощью следующих команд:

sudo apt update
sudo apt install -y git cmake build-essential libusb-1.0-0-dev 
pkg-config wireless-tools wpasupplicant dhcpcd5

Удалите старые драйверы:

sudo apt remove --purge rtl-sdr librtlsdr* rtl-sdr-dbg
sudo rm -rf /etc/udev/rules.d/rtl-sdr.rules

Запустите установку нового драйвера для RTL-SDR Blog V4:

cd ~
git clone https://github.com/rtlsdrblog/rtl-sdr-blog
cd rtl-sdr-blog
mkdir build && cd build
cmake .. -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make -j4
sudo make install
sudo ldconfig

Измените правила udev, чтобы устройство доступно без прав root:

sudo cp ../rtl-sdr.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

Тестирование и запуск трансляции

Запустите тестирование при помощи команды rtl_test. Если тестирование завершилось успешно, запустите трансляцию:

/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16

Проверьте, что программа SDRSharp может подключится к трансляции. Далее настройте автоматический запуск трансляции, подготовив Unit-файл для systemd:

[Unit]
Description=RTL-SDR TCP server
After=network.target

[Service]
ExecStart=/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Активируйте и запустите сервис rtl_tcp с помощью следующих команд:

sudo systemctl daemon-reexec
sudo systemctl enable rtl_tcp
sudo systemctl start rtl_tcp

Настройка Wi-Fi

Для настройки доступа через Wi-Fi создайте файл конфигурации /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RU

network={
    ssid="ВАШ_SSID"
    psk="ВАШ_ПАРОЛЬ"
    key_mgmt=WPA-PSK
}

Чтобы Wi-Fi запускался при загрузке ОС, создайте Unit-файл /etc/systemd/system/wifi-connect.service:

[Unit]
Description=Wi-Fi Connect via NetworkManager
After=NetworkManager.service
Wants=NetworkManager.service
# Ждем пока NetworkManager запустится и будет готов
After=network-online.target
Wants=network-online.target
# Ждем пока WiFi устройство будет доступно
After=sys-subsystem-net-devices-wlan0.device
BindsTo=sys-subsystem-net-devices-wlan0.device

[Service]
Type=oneshot
RemainAfterExit=yes
# Ждем дополнительно 10 секунд после NetworkManager
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/nmcli connection up "RT-WiFi_6A75"
ExecStop=/usr/bin/nmcli connection down "RT-WiFi_6A75"
# Повторяем попытку если не удалось
Restart=on-failure
RestartSec=10
TimeoutStartSec=30

[Install]
WantedBy=multi-user.target

Создайте соединение:

nmcli dev wifi connect "ВАШ_SSID" password "ВАШ_ПАРОЛЬ"

Активируйте и запустите сервис:

systemctl start wifi-connect
systemctl enable wifi-connect

Проверьте, что интерфейсу wlan0 был выделен адрес IP:

ip a
…
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 54:78:c9:95:5e:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.25/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
       valid_lft 86396sec preferred_lft 86396sec
    inet6 fe80::f181:3f62:f810:2a85/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Если нужно задать фиксированный адрес, запишите в конец файла /etc/dhcpcd.conf такие строки:

interface wlan0
static ip_address=192.168.0.60/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Укажите здесь правильный адрес IP, адрес шлюза и адреса серверов DNS, соответствующие вашей локальной сети. 

Особенности настройки Repka Pi 3

Настройка Repka Pi 3 (рис. 11) во многом аналогична настройке Repka Pi 4.

Рис. 11. Микрокомпьютер Repka Pi 3 в корпусе
Рис. 11. Микрокомпьютер Repka Pi 3 в корпусе

Найдите и загрузите подходящий образ RepkaОС на странице https://repka-pi.ru/#operation-system-anchor. Я проводил эксперименты с образом из файла arm64_ubuntu_20.04.6_desktop_22.04.24_1.2GHz.img.

Обновите пакеты и установите необходимое ПО:

sudo apt update
sudo apt install -y git cmake build-essential libusb-1.0-0-dev 
pkg-config wireless-tools wpasupplicant dhcpcd5

Удалите старые драйверы:

sudo apt remove --purge rtl-sdr librtlsdr* rtl-sdr-dbg
sudo rm -rf /etc/udev/rules.d/rtl-sdr.rules

Установите новый драйвер для RTL-SDR Blog V4:

cd ~
git clone https://github.com/rtlsdrblog/rtl-sdr-blog
cd rtl-sdr-blog
mkdir build && cd build
cmake .. -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make -j4
sudo make install
sudo ldconfig

Запустите тест:

# rtl_test -t

Если тест завершился успешно, запустите трансляцию:

/usr/local/bin/rtl_tcp -a 0.0.0.0 -p 1234 -s 1024000 -b 16

Приёмник с Web-интерфейсом OpenWebRX+

Теперь вы знаете, как получить удалённый доступ к приёмнику RTL-SDR Blog V4 с помощью микрокомпьютера и программы SDRSharp. Но есть и ещё одна интересная возможность — предоставить доступ к этому приёмнику через интернет и обычный браузер. В этом нам поможет Web-приёмник с открытым исходным кодом OpenWebRX+ (рис. 12).

Рис. 12. Приёмник с открытым исходным кодом OpenWebRX работает в браузере
Рис. 12. Приёмник с открытым исходным кодом OpenWebRX работает в браузере

Приёмник OpenWebRX+ позволяет получать доступ к SDR-устройствам (RTL-SDR, Airspy, HackRF и другим) через браузер без установки дополнительного ПО. В программе есть анализатор спектра и «водопад», фильтрация шумов, автоматическая регулировка усиления, запись принятых сигналов в файл и другие возможности. 

В OpenWebRX есть поддержка модуляции различных видов — от WFM до цифровых протоколов вроде DMR, D-STAR, NXDN, TETRA и других. Благодаря этому OpenWebRX+ подходит не только для прослушивания радиостанций, но и для изучения радиосигналов.

Я кратко расскажу, как установить OpenWebRX+ на Raspberry Pi 3 B+ для RTL-SDR Blog V4 с помощью готового образа SD-карты, а также на Orange Pi 3B из пакетов. 

Установка OpenWebRX+

Для установки скачайте готовый образ SD-карты для Raspberry Pi нужной разрядности процессора. Имя файла для Raspberry Pi 3 B+ с 32-разрядным процессором будет такое: image_2025-04-10-OpenWebRX+-32bit-v1.2.82.zip.

Распакуйте загруженный образ и запишите его на SD-карту программой balenaEtcher. Вставьте карту в Raspberry Pi 3B+ и повторите процедуры, описанные ранее в этой статье, имеющие отношение к настройке доступа через SSH.

После перезагрузки ОС откройте в браузере страницу по адресу вида http://192.168.0.16:8073/, указав адрес IP вашего микрокомпьютера. Щёлкните в окне браузера ссылку Start OpenWebRX+, и вы увидите окно, показанное на рис. 12.

Добавление пользователя

Но прежде, чем вы сможете «поймать» сигналы из эфира, нужно добавить пользователя и профиль для RTL-SDR Blog V4.

Для добавления пользователя подключитесь к Raspberry Pi через SSH и введите команду, указав имя добавляемого пользователя:

sudo openwebrx admin adduser имя_пользователя

Введите пароль нового пользователя и подтвердите его.

Добавление профиля RTL-SDR Blog V4

Чтобы добавить профиль RTL-SDR Blog V4, щёлкните на странице программы (рис. 12) ссылку Settings. Введите имя только что добавленного пользователя и его пароль.

Вы увидите в браузере страницу настроек Settings (рис. 13).

Рис. 13. Страница настроек Settings
Рис. 13. Страница настроек Settings

Щелкните здесь ссылку SDR devices and profiles. Появится страница со списком устройств SDR, где вам нужно воспользоваться ссылкой RTL-SDR.

Далее создайте новый профиль для приема FM-радио с помощью ссылки New profile, заполнив поля, как это показано на рис. 14.

Рис. 14. Заполнение полей профиля для приёма FM-радио
Рис. 14. Заполнение полей профиля для приёма FM-радио

Сохраните созданный профиль кнопкой Apply and save.

Теперь выберите созданный профиль в блоке Receiver, расположенном в правом нижнем углу, и настраивайтесь на нужную вам станцию.

Web-радиоприёмник заслуживает отдельной статьи. Пока я ещё не подготовил такую статью, вы можете почитать описание OpenWebRX+.

Установка OpenWebRX+ на Orange Pi

Чтобы установить OpenWebRX+ на Orange Pi, сначала установите Ubuntu Server и драйвер RTL-SDR Blog V4, как я это описывал выше. При необходимости настройте доступ к сети через Wi-Fi.

Затем выполните такие команды:

curl -s https://luarvique.github.io/ppa/openwebrx-plus.gpg | sudo gpg --yes --dearmor -o /etc/apt/trusted.gpg.d/openwebrx-plus.gpg
sudo tee /etc/apt/sources.list.d/openwebrx-plus.list <<<"deb [signed-by=/etc/apt/trusted.gpg.d/openwebrx-plus.gpg] https://luarvique.github.io/ppa/noble ./"
sudo apt update
sudo apt install openwebrx

Теперь можно открывать Web-приёмник в браузере и пробовать!

Достоинством Orange Pi 3B можно считать наличие внешней антенны Wi-Fi, увеличивающей надёжность передачи данных.

Идем дальше

Из этой статьи вы узнали, как на базе приёмника RTL-SDR Blog V4 сделать сервер, позволяющий прослушивать радиопередачи через SDRSharp и обычный браузер. 

Надеюсь, у вас всё получилось, и вы смогли настроить удалённый доступ к RTL-SDR Blog V4 по сети. Это позволит вам выбрать правильное расположение для антенны и удобное — для компьютера, причём без использования длинного антенного фидера или удлинителя USB.

В следующих статьях я планирую рассказать про радиочастотные фильтры и малошумящие усилители, с помощью которых можно снизить уровень помех на входе приёмника, про распространение радиоволн, про настройку SDRSharp для приема слабых сигналов и затронуть другие темы, связанные с радио. Пишите в комментариях, о чём вам было бы интереснее всего узнать.

Автор @AlexandreFrolov


НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (0)