Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 2

    В прошлой статье я описал:
    • создание на одном Raspberry Pi домашнего VPN-сервера;
    • установку и настройку на втором Raspberry Pi OpenVPN-клиента, Node.JS и 3G-модема.

    В этот раз настроим и подключим GPS-приёмник и WEB-камеру через USB-хаб.

    Подключение и настройка GPS-приёмника


    Для этой цели я приобрёл ND-100S GPS DONGLE
    Проверим, определилось ли устройство:

    Наше устройство — Prolific Technology.
    Установим пакеты для нашего устройства, чтобы получать координаты и перезагрузимся:
    sudo apt-get install gpsd gpsd-clients python-gps -y
    sudo reboot
    

    Теперь посмотрим и увидим, что у нас загружается сервис gpsd, но без указания устройства ввода (этот вариант не работает):

    Отключим этот демон:
    sudo dpkg-reconfigure gpsd
    

    На первый вопрос отвечаем «No»:

    На второй тоже «No»:

    Можно поправить вручную файл /etc/default/gpsd, но там написано что лучше использовать реконфигуратор пакета, что я и сделал.
    Запустим демон для работы с приёмником:
    sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
    

    Теперь попробуем получить координаты:

    Бывает что в помещении долго не может поймать координаты или при первом запуске — для ознакомления можно почитать про холодный и горячий старт.

    Отлично! Теперь добавим верный запуск демона в автозагрузку:
    crontab -e
    



    Подключение и настройка WEB-камеры


    Для этой цели я нашёл старую WEB-камеру фирмы Logitech.
    Собственно подключим нашу камеру и проверим:

    pi@raspberrypi ~ $ ls /dev/video*
    /dev/video0
    

    Из-за скорости канала я предпочёл передачу изображения, а не видео.
    После поиска и тестирования разных пакетов я остановился на fswebcam, с помощью которого я получил изображение за пару секунд.
    Установим и сразу попробуем получить снимок:
    sudo apt-get install fswebcam -y
    fswebcam —save /home/pi/test.png
    


    Заберём теперь и проверим:
    scp pi@192.168.2.6:/home/pi/test.png ./
    

    Где 192.168.2.6 — IP адрес, полученный от OpenVPN сервера.

    В зависимости от скорости передачи можно настроить на меньшее разрешение снимков и формат обработки изображения.
    Поделиться публикацией

    Комментарии 13

      0
      Достаточно интересная тема, прочитал Вашу предыдущую статью. Как решили проблему с питанием? И еще такой вопрос планируется прикручивать что то типа детектора движения или датчика удара? Чтобы допустим в момент удара или движения в машине производилась запись и отправка владельцу на почту например нескольких минут видео или фото. Ну и в заключении, по моему мнению целесообразно поднять OpenVPN и http сервер у Вас на роутере, он явно не самый слабый по производительности и должен потянуть, а малинку пустить на какой нибудь другой не менее интересный проект:)
        0
        С питанием пока присматриваюсь… Что касается детектора движения — думал об этом, но пока не стал. В конце концов это можно «допилить и позже».
        На моём роутере можно даже без перепрошивки запустить дефолтовый VPN-сервер, но для себя хотел испробывать именно OpenVPN (+из интереса и для опыта)
          0
          гляньте в сторону motion, если ему кормить mjpeg в несколько кадров, то на таких устройствах работает.
          Можно как картинки резать, так и скрипты запускать.
        0
        >>Бывает что в помещении долго не может поймать координаты

        Да, а решается это использованием активной антенны. Но к ND-100S ее не подключишь.
        Для отслеживания авто, лучше бы подошла вот такая Глонасс/GPS платка jt5.ru/shields/glonass-gps/
        Как раз идет с активной антенной, которая легко цепляется в нужное место кузова авто.
          +2
          Отлично! Теперь добавим верный запуск демона в автозагрузку:

          crontab -e

          Убивать! Так лучше не делать. Нет, ну правда.
            0
            Скажите как? =) С линуксом столкнулся при постановке этой задачи, поэтому некоторых особенностей мог и не знать. Полагаю через rc.local?
              0
              да, именно rc.local
                0
                Зачем rc.local? У него готовый инит-скрипт есть
                0
                А с какой целью вы изначально отказались от автозагрузки, когда программа предлагала сама?
                  0
                  Я на скриншоте показал, что в автозагрузке висит процесс: gpsd -F /var/run/gpsd.sock. А для того чтобы работало, надо указать девайся: gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
                    0
                    Ну так согласиться с автозагрузкой, а потом в самом инит-скрипте поправить нужные параметры.
                0
                поясните, к каким последствиям может привести crontab -e?
                0
                Может я что-то пропустил в прошлом посте, но хотелось бы посмотреть и реализацию wifi_reconnect.sh указанного Вами в crontabe. Или там ничего необычного?

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое