Считается что я пишу для тех кто "в теме". Поэтому когда я произнесу "APRS" то в обморок никто не упадёт. В крайнем случае спросят у Гугла про детали которых не знали. Надо сказать, что парой постов назад я как раз писал про то что даже в Славутиче это уже работает и можно посылать через неё короткие сообщения, реплики и наблюдать передвижение подвижных объектов на карте в интернете. Будь то машина или пешеход с Baofeng и мобилой. А поскольку эти фишки используют канал не каждые 20 секунд, появляется возможность в этот же канал "заряжать" данные телеметрии репитеров, данные погодных станций и т.д. Даже если у вас нет радиостанции, APRS на вашем компьютере сделает своё дело и ваши погодные данные появятся на карте в интернете. То есть из оборудования достаточно одного RTL свистка. Так как репитера у нас в городе нет, а метеостанций только вокруг моего дома принимается штук пять ( как принимать то что работает вокруг вас - см. "Свисток. Еще одна жизнь"), я решил попробовать подключить к своему APRS диджипитеру еще и метеостанцию. Покупать для этого метеостанцию было не обязательно, у соседей их навалом :-) 2-х часовое наблюдение за датчиками соседей показало что:
а) Датчиков одной фирмы и соответственно протокола может быть несколько. Нужно принимать от таких еще и ID чтобы понимать кто мне нужен.
б) Передатчики всех этих устройств бегают по частоте как хотят и мешают друг другу настолько что некоторые устройства пропадают с экрана на часы
в) Барометры популярностью не пользуются, вокруг ни одного который бы передавал значение атмосферного давления;
г) у половины датчики температуры не калиброваны (а может стоят в погребе или у батареи - врут безбожно;
д) датчик атмосферных осадков только один и настроен на передачу данных один раз в час; * И у каждого свой подход: уровень то в мм, но у кого-то в день, а у кого-то за месяц...
С учётом этого план был такой: принимать данные с датчиков соседей, температуру усреднять, влажность усреднять, датчиком осадков пренебречь так же как и датчиком давления (ну потому что у соседей нету :-), передавать полученное в APRS канал один раз в пять минут. Но, как все хорошо знают, легко в учёбе.
Как это работает. APRS клиент имеет возможность создавать внутри себя объекты. Например встроенную метеостанцию. Она с указанным при создании интервалом времени (у меня 5 минут) просматривает файл wxnow.txt и если он обновился, передаёт строку с данными в канал связи. Это может быть интернет или пакетрадио канал. Для этого выбираем пункт меню Configure- Objects-New Weather. Там ставим галки Enable, Via-IS(интернет), Via RF(радиоканал), выставляем время Interval 5 минут, прописываем алиас станции (объекта) UY2RA-13 и выбираем значок для отображения на карте. Алиса по умолчанию всегда -13 а значок - WX. После Accept ваш клиент первый раз передаст сводку погоды из файла wxnow.txt
Как это работает. APRS клиент имеет возможность создавать внутри себя объекты. Например встроенную метеостанцию. Она с указанным при создании интервалом времени (у меня 5 минут) просматривает файл wxnow.txt и если он обновился, передаёт строку с данными в канал связи. Это может быть интернет или пакетрадио канал. Для этого выбираем пункт меню Configure- Objects-New Weather. Там ставим галки Enable, Via-IS(интернет), Via RF(радиоканал), выставляем время Interval 5 минут, прописываем алиас станции (объекта) UY2RA-13 и выбираем значок для отображения на карте. Алиса по умолчанию всегда -13 а значок - WX. После Accept ваш клиент первый раз передаст сводку погоды из файла wxnow.txt
Первое что вышло легко - заменить Linux cron планировщиком задач в Windows. Пришлось написать командный (bat) файл чтобы им запускать специфическую строку запуска rtl_433 и Perl скрипт для обработки данных полученных от метеостанций по соседству и уложения результата в файл wxnow.txt который и использует сам APRS клиент.
Допустим мы указали APRS метеостанции передавать сводку раз в пять минут. Тогда файл wxnow.txt должен обновляться один раз за пять минут. В эти пять минут надо получить данные из радиоканала как минимум от двух датчиков, посчитать Цельсий-Фаренгейт, влажность, сформировать текст, передать его APRS клиенту и обнулить исходные строки полученные от приёмника-декодера rtl_433 для того чтобы в следующие пять минут "мозги" были пустые. Но формат данных разный, поэтому нужно еще и помудрить с форматированием строк. За день сложился алгоритм:
Первое. Запускать rtl_433.exe один раз в пять минут, ждать получения строки от датчика погоды, записать данные в строке в файл и по окончанию выйти, так как если не закрыть программу дочерние файлы обрабатывать будет нельзя. Всё это делаем в строке запуска программы. Она же будет первой строкой нашего командного bat файла который мы будем запускать раз в пять минут планировщиком Windows/
rtl_433.exe -R57 -R42 -F csv:log.csv -E
Ключи -R57 и -R42 означают принимать пакеты данных только от двух метеостанций (для надёжности, так как одна или обе могут пропадать надолго) HIDEKI и Kedsum (то что слышно на мою антенну в ближайшем окружении).
Ключ -F csv:log.csv указывает что полученные строки записывать в формате csv (Excel) во временный файл log.csv. Этому файлу нужно дать права (разрешения) как временному - писать в него и читать из него можно всем программам.
Ключ -Е сообщает программе что как только данные благополучно запишутся в файл, работу программы rtl_433.exe надо прекратить, чтобы можно было прочесть оттуда данные скрипту на Perl, после чего файл очистить. При запуске этой строки в работу на экране будет отражаться состояние запуска.
В папке rtl_433 появиться файл log.csv в котором будет одна или две строки типа
2018-04-25 22:55:30,HIDEKI TS04 sensor,2,1,OK,15.500,53,,,,
где 15.500 это температура в градусах Цельсия, а 53 - влажность в процентах. Дата, марка станции и проч. без перевода :-)
А в DOS окне промелькнёт строка запуска скрипта Perl (об этом позже) и окно погаснет.
Это значит скрипт своё отработал и в файле wxnow.txt появилась две нужные строки
Apr 25 2018 23:00
.../...g...t059r...p...P...h53b.....
Для красоты (windows интерфейс) я рекомендую Dwimperl Padre - https://code.google.com/archive/p/dwimperl/downloads После установки образуется стандартный виндовозный интерфейс среды программирования в котором можно создавать скрипты любой сложности. Наш - простой, поэтому я приведу написанный руками с ноля текст в качестве образца. Вы сможете модифицировать его под свои метеостанции и APRS клиент.
Продолжение: Помощь National Geografic