Обычно для декодирования WSPR сигналов используется программа WSJT, но что делать, если хочется использовать одноплатный компьютер без какого-либо окружения рабочего стола? Оказывается, существует консольная утилита wsprd, которая позволяет декодировать WSPR сигналы прямо из консоли Linux.
Я уже писал про мониторинг WSPR сигналов. Для этих целей хотелось бы иметь максимально простой комплект — антенна, приемник и самый простой одноплатный компьютер. Всё должно автоматически стартовать, и при наличии интернет соединения отсылать каждые 2 минуты споты в интернет (wsprnet.org). Один из вариантов — использовать Raspberry Pi с установленной Desktop версией ОС. Это позволит запустить привычный интерфейс WSJT и использовать практически любой приемник (в том числе и SDR).
Единственный минус — Raspberry Pi не самый дешевый одноплатник на рынке. Помимо этого, для декодирования WSPR нужен рабочий стол и его окружение. Поэтому мне хотелось решить ту же задачу более простым и дешевым способом.
Про одноплатники уже была заметка. Добавлю только, что есть еще сравнимый по цене NanoPi neo, который я и использовал в этом проекте.
В качестве простого и дешевого приемника подойдет PicoRX — он подключается всего по одному USB кабелю и имеет встроенную звуковую карту (только один канал) и может управляться с помощью CAT команд по протоколу Kenwood.
Консольная программа wsprd умеет декодировать только из звукового файла определенного формата, то есть напрямую эфир она декодировать не умеет. Поэтому для начала нужно записать звуковой файл длительностью 112 секунд (старт записи должен приходиться на каждую четную минуту).
WAV-файл должен иметь определенное имя, в котором присутствует текущая дата и время начала записи. После декодирования утилита wsprd запишет всё, что смогла распознать в файл ALL_WSPR.TXT, который расположен в каталоге, откуда была запущена команда.
Отправить споты на wsprnet.org можно с помощью команды:
curl -s https://wsprnet.org/post -F "call=YOUR_CALLSIGN" -F "grid=YOUR_GRID" -F "email=YOUR_EMAIL" -F "allmept=@/path/to/ALL_WSPR.TXT"
В результате получилась довольно компактная и простая система — NanoPi Neo + PicoRX.
Алгоритм работы системы следующий:
1. За 5 секунд до начала четной минуты отправляем CAT команду в приемник на изменение частоты и вида модуляции (верхняя боковая полоса, USB).
2. Ровно в начале четной минуты запускаем запись звука с аудио карты приемника (с помощью консольной утилиты arecord).
3. Через 90 секунд удаляем предыдущий звуковой файл, он нам больше не нужен и отправляем споты на wsprnet.org
4. Через 112 секунд после начала заканчиваем запись и запускаем декодирование через wsprd в фоновом режиме. Так как если будет много сигналов декодирование может занять около 1 минуты, а нам нельзя занимать систему так на долго. У нас всё по строгому графику.
5. И далее переход к п. 1.
Таким образом получилось реализовать автоматическую смену диапазонов по графику WSJT (каждые 2 минуты). Споты можно посмотреть на различных ресурсах, которые обрабатывают данные с wsprnet.org. Например, на wspr.rocks. Это удобно и красиво, но все равно хотелось бы иметь возможность посмотреть на то, что принял твой приемник, не заходя каждый раз в консоль одноплатного компьютера. Поэтому я добавил простой web-интерфейс, который отображает споты за последние 24 часа и позволяет скачать весь файл ALL_WSPR.TXT для более глубокого анализа.
Web-интерфейс моего приемника доступен по адресу — http://websdr.ra0sms.com:8082/
В создании скриптов и web-интерфейса мне помогал ИИ, поэтому я не публикую исходные коды этой системы. Каждый желающий может повторить это самостоятельно, алгоритм работы описан выше.
А какая практическая польза от всех этих спотов и WSPR приемников? На самом деле, если приемник запущен постоянно в течение длительного времени, то он позволяет довольно точно прогнозировать прохождение в вашем QTH. Например, для себя я отметил, что если число спотов за сутки более 1200 — значит прохождение на диапазонах выше среднего и можно надеяться на интересные QSO. А если число спотов падает ниже 1000 за сутки — значит ничего хорошего на диапазонах ждать не приходится.




