Raspberry Pi

Русский сайт по микрокомпьютеру Raspberry Pi

Вход








Регистрация | Забыли пароль?

Поиск



По всему сайту
По тэгам
По тэгам и заголовкам

Рубрики

  • Проекты и статьи
  • Модели
  • Мысли
  • Облако тэгов

    raspberry pi 3, raspbian, raspberry pi zero w, windows 10, osmc, python, windows, ubuntu, raspberry pi zero, установка ос, raspberry pi 2, ос, libreelec, dietpi, fedora, freebsd, risc, volumio, telegram, lua, медиацентр, фоновая подсветка, ambilight, livolo, siri

    Форум

    RSS-канал
    Карта сайта
    Обратная связь
    Пользователи


    Top.Mail.Ru

    Как следить за опознанными летающими объектами при помощи Raspberry Pi

    А вы знали, что при помощи Raspberry Pi можно следить за опознанными летающими объектами? Вы можете настроиться на радио-сигналы самолетов на расстоянии до 400 км от вас и отслеживать все рейсы. Для этого вам достаточно найти дешевый USB TV и пару свободных минут.



    Изображение: dump1090 — тестирую антенну FlightAware против четвертьволновой гибкой антенны и антенны из банки.

    В этой статье вы найдете краткое введение в отслеживание рейсов: обзор софта, аппаратуры и — самое главное — необходимой терминологии и жаргонных выражений. Также я покажу, как Docker и технология контейнеризации помогут управлять софтом в IoT-проектах.

    На сайтах типа FlightAware.com можно отслеживать десятки тысяч самолетов при помощи краудсорсинга: задачу выполняют люди по всему миру с помощью своих компьютеров Raspberry Pi (цена вопроса — $35) и дешевых USB TV тюнеров.

    Можно следить за рейсами исключительно в личных целях, а можно внести свою маленькую лепту на таких сайтах, как FlightAware.com, FlightRadar24, PlaneFinder.net и получить взамен детальные показатели — данные радаров и другие ништяки.



    Изображение: FlightRadar показывает самолеты в воздушном пространстве Великобритании.

    Зачем отслеживать рейсы?

    Вот несколько доводов:

    Это супер-дешевое приложение, которое можно применить на практике к вашему старенькому Raspberry Pi в пыльной кладовке.
    Можно стать местным лидером по отслеживанию рейсов, если передавать эту информацию в онлайн-трекеры.
    Можно собрать детальную статистику и подобрать лучшую антенну и место, где ее разместить.
    Можно не только собирать данные для своих программных проектов, но и одновременно узнать много интересного об авиации.

    И самое главное — это просто веселый проект, который можно провернуть при помощи своего Pi и получить моментальное удовлетворение от каждого кусочка. При этом затраты на него стремятся к нулю.

    Что нам понадобится



    Raspberry Pi, SD-карта с Raspbian Lite

    Лучше используйте Raspberry Pi 2 или 3, потому что у них больше памяти и они лучше подходят для многозадачности.

    Если вы пытаетесь установить несколько приемников и сэкономить, то Pi Zero тоже вполне подойдет.

    USB TV Tuner — цена вопроса от 8 до 30 долларов.

    FlightAware Pro Stick от ModMyPi — самый крутой вариант со встроенным шумовым фильтром, SMA-разъемом. Антенну на 1090 МГц надо покупать отдельно.
    Generic DVB-T USB tuner from Pimoroni — мне прислали образец для тестирования. Работает хорошо, чипсет правильный, но телескопическую антенну надо установить в самый маленький разъем.
    NESDR Smart Premium SDR — включает 3 антенны, толстый SMA-кабель и встроенный шумовой фильтр для городской среды.
    Если вы хотите сэкономить, то на eBay полно гораздо более дешевых вариантов, но при выборе будьте внимательны: прибор должен работать на чипсете R820T.


    Если нужен результат, лучше покупайте технику (DVB-T sticks) известных брендов. Представленные выше ссылки — не пиар по партнерке.

    Антенны

    К большинству DVB-T тюнеров прилагаются антенны, которые скорее ловят сигналы TV на суше, а не нужные нам сигналы ADS-B на частоте 1090 мГц.

    Если вам нужна антенна на 1090 мГц, можете купить домашнюю версию 3 dBi с функцией SMA. Антенна, которую я тестил, улавливала рейсы на расстоянии 240 км, если ее положить на подоконник.

    Антенна FlightAware ловила сигнал в застроенной местности еще круче, на расстоянии свыше 400 км, когда я ее вывесил за окно. Говорят, результаты будут еще круче, если разместить ее на крыше.

    Также вам понадобится источник питания на 2.5-3 Ампера, чтобы хватило на Pi и TV-тюнер наверняка. Можете подобрать себе что-нибудь на официальном сайте Pimoroni, поставщика приборов электропитания.

    На сайте ModMyPi акже можно купить весь необходимый набор в одном флаконе.

    Глоссарий



    Итак, наша цель — настроить USB TV тюнер таким образом, чтобы он ловил ADS-B трансляции рейсов в заданном диапазоне. Для начала давайте определимся с некоторыми определениями и терминами из области отслеживания рейсов.

    ADS-B



    На борту современных самолетов есть автоматические транспондеры, которые собирают информацию с навигационных инструментов и транслируют ее в окружающую среду через ADS-B. Эта информация не зашифрована, так что подхватить ее может любой — что диспетчер, что другой самолет, что владелец Raspberry Pi.
    ADS-B (Automatic dependent surveillance-broadcast, автоматическое зависимое наблюдение-вещание) — технология, позволяющая и лётчикам в кабине самолета, и авиадиспетчерам на наземном пункте наблюдать движение воздушных судов с большей точностью, чем это было доступно ранее, и получать аэронавигационную информацию. Источник — Википедия.

    DVB-T



    TV-тюнер, который нам понадобится, называется DVB-T, что расшифровывается как Digital Video Broadcasting — Terrestrial. Это европейский стандарт эфирного цифрового телевидения. Это устройство также можно использовать как теле-антенну для просмотра любимых ТВ-шоу. Не все устройства DVB-T можно настроить на авиа-сигналы, так что лучше выбирайте что-то из рекомендованного или же тщательно изучите характеристики сами перед покупкой.

    Антенный разъем SMA



    Википедия: sub-miniature version A. Такие разъемы меньше коаксиальных и обычно есть у премиальных или целевых DVB-T. У дешевых DVB-T, скорей всего, будет маленький разъем. Пигетйл можно купить на eBay или в любом магазине электроники. Он понадобится, чтобы совмещать любые крупные антенные разъемы — коаксиальные, SMA или RF.





    Ключевой компонент для расшифровки сигналов ADS-B — это софт dump1090. Это число означает частоту, на которой мы работаем, а dump — команда, которую он выполняет — расшифровывает и дампит необработанные данные.

    Приложение dump1090 — это open-source проект, у которого есть несколько форков благодаря разным людям, которые вносили новые и улучшали старые функции. Выбрать нужный форк может быть довольно затруднительно.

    Я воссоздал историю этого приложения по данным с GitHub:

    Antirez запустил проект в 2012 году на рождественских каникулах

    MalcolmRobb принял эстафету — запустил новый форк в коде и улучшил некоторые функции

    Mutability запустил форк от работы MalcomRobb-а

    FlightAware также поддерживает форк от репозитория mutability

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

    Воспроизводимые build-скрипты
    Дают надежный механизм сборки кода, намного более удобный, чем страницы README
    Позволяют переключаться между разными версиями кода
    Напрямую на наш Pi ничего не ставится, поэтому прибор остается в исходном виде
    Позволяют расшарить образ с друзьями, у которых есть Pi

    У большинства версий dump1090 также есть веб-интерфейс, где можно увидеть самолеты в определенном диапазоне в режиме реального времени.

    FlightAware



    FlightAware — это один из нескольких сайтов-агрегаторов, которые собирают данные с программы dump1090.При помощи виртуальной визуализации радара вы можете собрать детальную статистику по тем рейсам, которые вы помогли отследить, а также узнать, в каком диапазоне вы работали.

    Вот мои результаты, которые я увидел в своем профиле. Я использовал выделенную антенну и тюнер DVB-T с шумоизоляцией.



    Также вы можете посмотреть мой профиль на FlightAware, чтобы получить больше данных.

    MLAT



    MLAT (аббр. мультилатерация) — это технология, при которой можно использовать некоторое количество наземных станций, чтобы отслеживать самолеты, которые не передают данные ADS-B. Можно почитать подробнее в статье на сайте FlightAware.

    Она основывается на оценке разности времени прихода сигналов: она должна работать из коробки, и поэтому позволяет вам отслеживать намного больше рейсов, чем вы смогли бы при помощи одного только ADS-B.

    Установка софта



    Ставим Docker.
    Мы будем использовать Docker-образ, чтобы получить воспроизводимы build различных компонентов, которые нам нужны, и в то же время держать все дополнительные бинарники вне файловой системы хоста.
    Клонируем GitHub-репозиторию:

    $ git clone https://github.com/alexellis/eyes-in-the-sky


    Заносим в blacklist USB TV stick
    Чтобы dump1090 смог получить доступ к USB TV stick, нам надо внести его модуль ядра в черный список.

    Добавляем эту строку в /etc/modprobe.d/blacklist.conf:

    blacklist dvb_usb_rtl28xxu


    Теперь перезагружаемся.

    Декодер dump1090





    Изображение: тестирую DVB-T от Pimoroni, прикрепленный к Pi Zero и оставленный дома у родственников.

    Строим образ dump1090
    Если вы хотите ввести свою позицию (широту и долготу), то отредактируйте последнюю строчку в Dockerfile.malcolmrobb, которая начинается с CMD. Вы можете определить свою позицию по Google Maps.

    $ cd eyes-in-the-sky/dump1090
    $ docker build -t alexellis2/dump1090:malcomrobb . -f Dockerfile.malcolmrobb


    ‘-t’ — устанавливает название образа для дальнейшего использования.

    -f — позволяет выбрать Dockerfile с кастомным названием. Также я задал имя для форка mutability.

    Docker позволяет вам расшарить свои образы с кем угодно при помощи команды push, которая выгружает их на Docker Hub. Чтобы скачать dump1090 без сборки кода с нуля, выполняем команду:

    $ docker pull alexellis2/dump1090:malcolmrobb


    Тестируем образ dump1090
    Теперь можно и потестить.

    $ docker rm -f 1090 # remove any old container

    $ docker run --privileged -p 8080:8080 -p 30005:30005 -p 30003:30003 --privileged --name 1090 -d alexellis2/dump1090:malcomrobb


    Команда docker run отвечает за запуск нашего кода. Чтобы потом код остановить, используйте docker rm -f 1090, а если вы перезагрузили Pi — restart 1090.

    При помощи -p Docker определяет, какие порты надо раскрыть из контейнера. Можно запустить две копии кода dump1090, если поменять номер порта и имя контейнера.

    При помощи -d контейнер перемещается в фон в качестве демона, так что если вы хотите увидеть консольный вывод, просто напишите ‘docker logs --tail 20 -f 1090’

    Пример логов:



    Если вы знаете IP-адрес вашего Raspberry Pi, то вы можете открыть его во встроенной странице:
    http://192.168.0.10:8080/

    Чтобы узнать IP-адрес, напишите ifconfig.

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

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



    Если вы не хотите запускать контейнер с привилегиями, то вы можете узнать ID устройства USB, а затем заменить --privileged на --device=/dev/bus/usb/001/004, например.

    Для своего случая вам следует заменить последние цифры, т.е. 004 в моем примере. Нужные цифры вы можете получить при помощи команды lsusb:

    $ lsusb
    Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T


    Устанавливаем FlightAware



    Есть несколько сайтов по отслеживанию рейсов, я начал с FlightAware. Их софт подключается к вашему коду dump1090 и передает данные в их сервера, где вы уже можете сверять статистику и сравнивать свои данные с другими участниками.

    Можно установить .deb файл прямо на свой Pi, но я создал отдельный Dockerfile. У него есть два преимущества: можно запустить две и более копий софта и переключаться между версиями без перепрошивки Pi.

    Дальше собираем образ при помощи следующей команды или скачиваем образ при помощи docker pull alexellis2/flightaware:3.5.0:

    $ cd eyes-in-the-sky/flightaware
    $ docker build -t alexellis2/flightaware:3.5.0 .


    Обратите внимание на точку в конце строки, не пропустите ее.

    Теперь регистрируемся на сайте FlightAware.com и задаем имя пользователя и пароль.

    Редактируем файл piaware.conf, заменяем следующие поля:

    receiver-host (используйте IP-адрес вашего Pi)
    flightaware-user
    Flightaware-password (используйте данные, которые указали при регистрации)

    У FlightAware есть классная функция, которая позволяет отслеживать ваш Raspberry Pi по MAC-адресу. К счастью, Docker позволяет подменять MAC-адреса, и поэтому мы можем запустить несколько копий софта. Если вы так делаете, просто поменяйте MAC, чтобы он был уникальным для каждой копии.

    Теперь запустим образ и посмотрим логи:

    $ cd eyes-in-the-sky/flightaware
    $ docker rm -f piaware_1
    $ docker run --mac-address 02:42:ac:11:00:01 -v `pwd`/piaware.conf:/etc/piaware.conf --name piaware_1 -d alexellis2/piaware:3.5.0


    Посмотрите логи и нажмите Control + C в любой момент времени.

    $ docker logs --tail 20 -f piaware_1


    Ваш Pi появится на сайте через несколько минут.

    Ответы на вопросы



    Какой будет расход электричества?
    Pi Zero или 2/3 потребляет 2-3 Ватта во время простоя. Приложение dump1090 задействует процессор Pi, до 50% его мощностей на Zero, поэтому учитывайте, что будет расходоваться дополнительное электричество для нагрузки и USB DVB-T.

    Можно ли провернуть операцию с USB-аккумулятора?
    Да, в течение ограниченного времени. Аккумулятор, которого мне обычно хватало на 3 дня, ушел за 3 часа, когда я с его помощью отслеживал рейсы.

    Можно ли использовать солнечную энергию?
    Солнечная энергия, возможно, — не совсем правильное решение. Raspberry Pi не будет надежно работать напрямую от солнечной панели. Вам понадобится сложное оборудование, включая контроллер зарядки, солнечные панели адекватных размеров и батарейки, которых должно хватать на несколько дней.
    Лучше подключать Pi через Power over Ethernet с водонепроницаемым корпусом. Вот список необходимых деталей.

    Существует ли коробочное решение — образ или ISO?
    Можно найти полный образ на SD-карте на сайте FlightAware, но если вы будете строить систему из модульных компонентов, то у вас будет преимущество перед любым другим софтом, разработанным под dump1090.

    Будет ли детальный обзор на какое-нибудь оборудование?
    Ждите следующего поста о результатах, которые я получил при помощи разных антенн и тюнеров.



    Изображение: тестирую антенны — антенна из банки, FlightAware, 2x 1090 MHz.

    Источник

    25.10.2017 в 18:02, Просмотров: 2277

    osmc, ambilight, фоновая подсветка, медиацентр, siri, умный дом, livolo, windows 10, игры, telegram, lua, умный дом, http, nfs, ftp, torrent, minidlna, firebird server, python, diy, гирлянда, новый год, слежение, самолёт,

    Короткая ссылка: http://4raspberrypi.ru/content.php?p=25

    ID: 25