Программа была написана Matti Aarnio (OH2MQK) в 2007 году. APRX может быть шлюзом из эфира или дигипитером, dprs шлюзом и т.д. Имеет всего один конфигурационный файл и легко настраивается.
Программа работает только с TNC контроллерами (звуковая карта не поддерживается). Главные отличия APRX от других аналогичных программ:
APRX поддерживает только TNC в режимах KISS, SMACK, FLEXNET, TNC2, XKISS и может работать с ними напрямую (через UART порт или через адаптер USB-COM) или удалённо, через TCP/IP сеть.
Благодаря мизерным ресурсам требующимся для программы, устанавливать её разумно на уже имеющиеся системы. Например, если у вас уже работает SvxLink на Raspberry_Pi, установка APRX добавит функционал и расширит возможности вашей локальной радиосети.
Собирать из исходников aprx нет необходимости, так как программа давно не обновлялась и в deb находится последняя версия 2.9. Работает APRX стабильно и надёжно, а все возможности хорошо документированы в мануале.
Есть два популярных проекта, которые заменяют TNC, это MicroModem и Mobilinkd (arduino kiss tnc). Оба проекта работают на плате Arduino, которая эмулирует TNC работающий в KISS режиме. С программой APRX, получается недорогой комплект для локальной aprs сети.
Устанавливаем deb-пакет APRX на Raspberry_Pi, командой:
sudo apt-get install aprx -yПодключаем к Raspberry_Pi переходник USB-COM и смотрим как он определился, это название и впишем в конфигурационный файл:
dmesg | grep ttyПереводим TNC в режим KISS. У меня Kantronics KPC-3plus, для его перевода, нужно набрать команду IN KISS и RESET (выход из KISS: alt+192 alt+255 alt+192). Открываем и редактируем единственный файл конфигурации:
sudo nano /etc/aprx.confЗапускаем в консоли и внимательно смотрим на ошибки, исправляем их редактируя aprx.conf:
aprx -dОбычно, ошибки связанны с правами записи в директории /var/log/, /var/run/ и неправильным подключением TNC. После исправления ошибок, запускаем в режиме демона:
aprxПри следующей перегрузке Raspberry_Pi, aprx запустится автоматически. Для ручного управления, используем команды:
sudo /etc/init.d/aprx start sudo /etc/init.d/aprx restart sudo /etc/init.d/aprx stopЧтобы видеть (в реальном времени) работу программы, используем команду:
tail -f /var/log/aprx/aprx-rf.log
Подключение к UART порту
На платах роутеров и микрокомпьтеров есть встроенный порт UART, который нужен для прямого подключения к консоли. Мы его можем использовать для подключения TNC контроллера.
Как это сделать в Raspberry_Pi читайте в статье
Disable Linux serial console.
Важно понимать! Если ваш TNC требует полноценного RS232, нужно добавить преобразователь уровней на микросхеме MAX232, между uart и tnc, как показано на картинке выше.
Скорость порта устанавливаем 9600, это стандартный параметр для TNC2 контроллеров расчитанных на 300/1200бод в эфире.
Уровень девиации радиостанции, лучше настроить из консоли TNC, а затем переключить контроллер в режим KISS. Это связано с тем, что большинство настроек TNC изменить из режима KISS не получится и их нужно сделать заранее.
Конфигурацию в файле aprx.conf лучше создать самую простую и убедившись что всё работает, усложнять, до необходимого уровня.
mycall UA6HJQ-1 myloc lat ddmm.mmN lon dddmm.mmE <aprsis> login $mycall passcode 689321 server russia.aprs2.net </aprsis> <logging> pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log aprxlog /var/log/aprx/aprx.log </logging> <interface> serial-device /dev/ttyUSB0 9600 8n1 KISS callsign $mycall tx-ok true </interface> <beacon> beaconmode radio cycle-size 20m beacon symbol "I&" $myloc comment "Rx iGate" </beacon> <digipeater> transmitter $mycall <source> source $mycall </source> </digipeater>Показанная конфигурация может, ретранслировать чужие маяки в эфире (с учётом парадигмы), выводить маяки на карту, передавать свой маяк.
Возможности программы APRX на этом не заканчиваются! Очень гибкие настройки в секции <digipeater> позволяют создавать много канальные aprs дигипитеры или шлюзы с фантастическими возможностями. Функциональность раздела <beacon>, также радует.
Соберем простую метеостанцию на ардуино (которая будет измерять температуру, давление, влажность) и подключим её к APRX. Предлагаемая конструкция может работать автономно или в составе aprs-дигипитера.
Для этого нам потребуются:
- плата Arduino Pro Micro (ATMega32u4),
- датчик BME/BMP280 I2C,
- OLED-дисплей I2C.
Делаем соединения как на картинке. Прошиваем в плату ардуино готовый скетч meteo_3_detali.ino и подключаем к Raspberry_Pi, на которой установлена программа APRX. Питание метеостанции берёт от USB-порта, отдельный источник не нужен.
Блок-схема обмена данными, выглядит так:
Подробную конфигурацию и все файлы, смотрите на картинке. Данные в файл считывает скрипт. Он запускается из crontab, каждый час. В моей тестовой конфигурации svxlink и aprx работают на одной Raspberry_Pi, но с разными радиостанциями и независимо друг от друга.
Показанная конфигурация не передаёт погоду в формате WX, а лишь дополняет информационную строку aprs-маяка метео данными, что (иногда) более удобно.
Вариант 2
Если не предполагается автономная работа метеостанции, можно подключить датчик BME280 I2C к Raspberry_Pi без arduino и экрана. Как это сделать показано на картинке.
Такой вариант проще и дешевле. Конфигурация маяка, как в предыдущей конфигурации. Для организации передачи данных, выполните следующие команды:
wget http://kavkaz.qrz.ru/aprs/bme280_ua6hjq.tgz sudo tar xvf bme280_ua6hjq.tgz -C /usr/local/bin/ sudo nano /usr/local/bin/bme280_ua6hjq.shПоследняя команда открывает редактор, для того чтобы вы могли указать свои координаты для маяка. В crontab-е добавляем строку, которая считывает показания с датчика в 55 минут каждого часа.
55 * * * * bme280_ua6hjq.shДалее запускаем APRX как обычно. Если вы хотите отправлять маяки в WX-формате, нужно сделать по другому.....
Aprx Digipeater Software (сайт программы)
Aprx manual
Mobilinkd (arduino kiss tnc можно подключить к uart)
MicroModem +
WT4Y +
OM7TEK (работает через usb-порт)
APRS шлюз за 600 рублей на роутере
DIR-620 - роутер для радиолюбителя
DIR-300 - WI-FI и APRS роутер
APRX - шлюз и ретранслятор для aprs
модификация bash-скрипта от r6hacn
R7HJ