home.social
  1. Сегодня день Радио, поздравляю всех причастных 😀

    Жутко хочу освободить время и вкатиться в эту тему, это интереснейшее занятие (как мне видится со стороны)

    Недавно решил поковырять RDS

    Немного справки (для тех кто знает - пропускайте)
    Если вы когда-нибудь видели на автомагнитоле название станции вроде ROCK FM, бегущую строку с текстом песни или автоматическую установку времени, значит вы уже пользовались RDS, просто не задумывались об этом

    Через RDS станция может передавать:

    • PS - короткое имя станции
    • RT - радиотекст
    • PI - код станции
    • CT - время станции

    Для исследовательского или радиолюбительского проекта это уже набор наблюдаемых цифровых признаков:

    • на какой частоте что реально вещает
    • как называется станция
    • какой у неё PI-код
    • передаёт ли она радиотекст
    • насколько корректно у неё выставлено RDS-время
    • как это всё меняется в разных местах

    Что значит я сделал

    1. rds.2big.cc - это веб-приложение для отображения таких наблюдений

    Идея простая:

    1. Устройство сканирует FM-диапазон
    2. Ловит станции и читает RDS
    3. Прикладывает к observation своё местоположение в виде QTH/Maidenhead
    4. Отправляет observation в backend
    5. Backend складывает всё в PostgreSQL
    6. Frontend показывает локаторы на карте и даёт посмотреть последние приёмы и историю

    Итог - получается живая карта наблюдений по локаторам, а не просто поток сырых логов

    Почему здесь именно QTH/Maidenhead


    Проект не использует точечные координаты как основной индекс отображения. Вместо этого observations группируются по Maidenhead-локаторам

    Это даёт несколько практических преимуществ:

    • визуализация на карте остаётся простой
    • можно легко сравнивать районы, а не отдельные GPS-точки
    • locator хорошо знаком радиолюбителям
    • анонимность++


    Как устроен сканер


    Железная часть проекта - это устройство на ESP8266 + SI4703, которое последовательно сканирует FM-частоты и читает RDS

    Что делает устройство:

    • проходит по диапазону FM
    • измеряет RSSI
    • ждёт стабилизации RDS-данных
    • собирает лучшие кандидаты для PI, PS, RT, CT
    • формирует observation
    • отправляет его в backend (mqtt/rest)

    Вообще изначально была идея увидеть какие станции передают время и насколько оно точно отдаётся

    Так же, была попытка запуститься на ESP32 + RDA5807M, но нет - похоже библиотека, которая работает с радио не очень хорошо обрабатывает RDS и часто получал пургу

    Почему ESP8266 не использует отдельный GPS-модуль


    Можно было бы поставить на сканер внешний GPS-модуль, но для такой задачи это часто избыточно:

    • лишняя плата
    • лишнее питание
    • лишняя антенна
    • лишняя сложность

    Вместо этого проект использует компаньон на Android

    Android-компаньон GPSCaster


    ndroid-приложение на Kotlin. Оно работает как локальный GPS-ретранслятор для устройств в той же Wi-Fi сети

    Что делает GPSCaster:

    • получает положение телефона через FusedLocationProviderClient
    • запускает foreground service
    • держит в памяти последний валидный fix
    • шлёт UDP broadcast в LAN
    • слушает UDP-запросы GET_GPS
    • шлёт GPS в BLE (тут кстати, отдельная идея - в принципе рассылать GPS через BLE advertisement)
    • отвечает пакетом:


    GPS,<unix_timestamp_seconds>,<lat>,<lon>,<accuracy_meters>

    Порт протокола: 45454

    То есть телефон фактически выступает как "сетевой GPS и источник времени" для ESP8266

    Это удобная идея:

    • телефон и так уже знает точные координаты
    • не нужно ставить отдельный GNSS-модуль на каждое устройство
    • можно быстро развернуть систему в машине или в полевых условиях


    Как связаны ESP8266 и GPSCaster


    Связка работает так:

    1. GPSCaster периодически рассылает в локальную сеть UDP-пакеты с координатами и временем
    2. ESP8266 слушает порт 45454
    3. Если свежих GPS-данных нет, ESP8266 может сам отправить GET_GPS,<device_id>
    4. GPSCaster отвечает текущим fix
    5. ESP8266 получает:
      • время
      • latitude
      • longitude
      • accuracy


    6. По координатам прошивка вычисляет qth
    7. По времени ставит ts

    Если GPS-время не удалось получить:

    • прошивка пробует NTP
    • если NTP тоже не дал времени, идёт локальный счётчик от последней успешной синхронизации

    Это не полноценный GPS-ресивер, но для задачи сбора подобной информации, более чем подходит

    Будет желание - заходите


    Если будет интересно - заходите, будем вместе собирать данные - выложу исходники прошивки и протокол передачи данных

    #проекты #деньрадио #esp8266 #rds

  2. Сижу в сервис StarLine, жду когда подключат брелок, для удалённого запуска (сейчас есть только запуск с телефона, но ввиду того, теперь ни везде работает интернет, решил перестраховаться)
    У меня установлен StarLine S96, в котором есть bluetooth, а следующая версия S97, уже с LoRa, это же получается, на той же частоте, что и Meshtastic работает

    #starline #lora

  3. Если вы не знали, как выглядит вход в ЦОД Бункер в г. Королёве, то он выглядит так:

    Чтобы отвезти сервер пришлось проехать 3 кордона охраны, на которых проверяли машину на био-, радиозаражение, наличие взрывчатых веществ и зеркалом смотрели днище (не согласились показать, я хотел увидеть много ли там ржавчины)

    На одном кордоне, никого не оказалось, поэтому я пошёл гулять с пропуском внутрь здания, где выбежал охранник и планировал положить харей в пол со словами - ТЫ КАК СЮДА ПРОШЁЛ

    Притом, обратный путь был такой же - разве, что не проверяли на заражение (проверили багажник, а не увожу ли цистерну гептила)

    Немного истории


    В конце 90ых, когда в стране можно было купить, что угодно, ребята из mtw.ru подсуетились и смогли купить/арендовать бункер, в котором и создали ЦОД. Электричества завались - рядом стоят такие предприятия как ЦНИИМаш, РКК Энергия и т.д., а так же проходит ЛЭП и своя электростанция. Есть ощущение, что невысокий ценник у провайдера обусловлен тем, что предприятия стали потреблять намного меньше электричества, но его надо куда-то девать, поэтому по дешёвке продают компаниям

    На Яндекс.Картах, это место заблюрено - yandex.ru/maps/-/CLaJ6Dyn

    Но в целом, это территория предприятия АО Композит, где в лучшие годы производители материалы для космической промышленности

    А как уроженец Королёва, могу сказать, что очень обидно за всю космическую промышленность, вернее за её последние вздохи

    По поводу провайдера - mtw.ru красавчики, всего за 5к в месяц размещают 1U сервер, дают постоянный KVM, 1 Gbit/s и не требуют рельсы для сервера

    #colocation #mtw #Королёв

  4. Впервые вижу, чтобы на коне нельзя было в тренажерный зал

    #DDX #DDXFitness #спорт

  5. Немного аэропортного

    Порадовала Testland

    Не порадовала задержка почти на 12 часов (не у меня)

    Но порадовала лапшичная

    #аэропорт #AYT

  6. Давно не ездил на каршеринге

    Сегодня взял в аренду Exeed LX - премиальный кроссовер

    По ощущениям, это Audi Q7, которую заказали на АлиЭкспресс

    Она большая, ощущаются прям габариты

    Но! Пробег 54к, это в принципе не очень много, но досталось ему знатно в каршеринге - двигатель вибрирует сильно, коробка дёргает, при перестроении машину начинает вилять, подушки безопасности не работают, маленькие зеркала

    Очень порадовал компухтер в машине, её размеры

    Если решу покупать китайца в ближайшие пару лет - дайте мне леща

    Я канеш не авто эксперт и моя работа не связана никаким образом с ааааавтомобилями, но не выразить свои ощущения, я не мог 😁

    #каршеринг #belka

  7. @Alex0007

    У меня через пару дней после установки Mi Fitness он внезапно начал импортировать

    #MiBand #ZeppLife #review

  8. Ну всё, наконец-то решили как будет выглядеть МЦД-5

    Придется рыть тоннель в 20км под Москвой

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

    Ощущаю вливания таких размеров, что страшно представить

    #МЦД #Транспорт #Мск