Оглавление:

Лазерная система безопасности Raspberry Pi: 13 шагов (с изображениями)
Лазерная система безопасности Raspberry Pi: 13 шагов (с изображениями)

Видео: Лазерная система безопасности Raspberry Pi: 13 шагов (с изображениями)

Видео: Лазерная система безопасности Raspberry Pi: 13 шагов (с изображениями)
Видео: Лазер-шмазер - уничтожитель картона! 2024, Ноябрь
Anonim
Image
Image
Изображение
Изображение

Спасибо, что ознакомились с моими инструкциями. К концу этой инструкции вы создадите лазерную систему Tripwire Raspberry Pi с функцией оповещения по электронной почте, которая показана в видео.

Чтобы выполнить это руководство, вам необходимо знать общую схему и пайку, знать, как использовать макетную плату, и быть уверенным в использовании терминала на пианино. Также будет полезно иметь опыт работы с Python.

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

Давай начнем.

Шаг 1: округление требуемых компонентов

Для выполнения этого проекта вам понадобятся следующие предметы.

  1. Как минимум один работающий Raspberry Pi. В этой сборке я использовал модель Pi стиля B, работающую под управлением raspbian wheezy. Я уверен, что это руководство будет работать нормально, если вы используете raspbian jessie.
  2. Внешний источник питания для raspberry pi. Когда все это будет подключено, мы будем потреблять значительную силу тока. Я потратил много времени на диагностику дрянного блока питания как источника проблем во время моей первой сборки. Убедитесь, что у вас мощная мощность, способная выдавать не менее 2 ампер.
  3. Дешевый лазерный указатель. Свою я нашла рядом с кассовым аппаратом на заправке. Если вам нужен точный лазер, вы можете найти его здесь. На этикетке указана длина волны 630-680 нм. Какой бы лазер вы ни выбрали, он определит некоторые другие компоненты сборки. Поэтому убедитесь, что на этикетке указана длина волны.
  4. Веб-камера в стиле USB. У этой веб-камеры есть регулируемая ножка, которая позволяет удобно расположить камеру. Я обнаружил, что кабель USB, поставляемый с веб-камерой, был слишком коротким для моего приложения, поэтому я нашел расширение на monoprice.
  5. Что-то вроде коммутационного комплекта для Raspberry Pi, чтобы у вас был легкий доступ к контактам на процессоре.

    Изображение
    Изображение
    Изображение
    Изображение
  6. Макет.
  7. Паяльник.
  8. Провода перемычки для макета.
  9. Компоненты схемы. Умножьте на необходимое количество растяжек.

    • Один рабочий светодиод
    • Один резистор 100 Ом
    • Один резистор 1 кОм
    • Один резистор 10 кОм
    • Один резистор на 200 кОм. Действительно, подойдет любой большой резистор. Я тестировал его с резистором 1M, и он работал нормально. FYI 10k было слишком мало.
    • Один PNP-транзистор PN: 2N4403-APCT-ND
    • Один фотодиод (соответствует длине волны вашего лазера) PN: PDB-C142-ND

Я приложу файлы kicad для печатной платы, но не буду подробно останавливаться на производстве платы в этом руководстве.

В ходе работы над этим проектом мне пригодились следующие дополнительные инструменты:

  1. Установка синергии на raspberry pi. Если вы не знакомы, это программное обеспечение позволит вам управлять мышью и клавиатурой raspberry pi с другого компьютера. Это хорошо, если вы похожи на меня и вам удобнее работать на другом компьютере. Также это программное обеспечение, которое должно быть у всех.
  2. USB-концентратор. Для каждой веб-камеры, которую вы хотите использовать, вам понадобится один порт.
  3. Измеритель напряжения или осциллограф, если он у вас есть.
  4. Использование MobaXterm для управления raspberry pi и управления файлами через ssh. Это должно быть у всех, кто вырос на окнах. См. Это руководство, чтобы настроить его для использования.

Шаг 2. Запустите Pi

  • Изображение
    Изображение

    Пи с минимальными добавленными компонентами

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

    Затем убедитесь, что ваш Raspberry Pi запущен и работает с последней версией программного обеспечения, введя в терминал следующее:

    sudo apt-get update

    С обновлением Raspberry Pi настало время для следующего шага

    Шаг 3: Создайте схему обнаружения лазера

    Поместите компоненты на макетную плату, как показано. Включите макетную плату, используя выход 5 В пи или настольного источника питания. На рисунке 1 источник питания 5 В подключен к положительной макетной шине в нижнем левом углу изображения, а заземление - в верхнем левом углу. Эта схема использует фотодиод как переключатель для запуска транзистора. Транзистор преобразует небольшое изменение напряжения на фотодиоде в несколько цифровой сигнал, который может считывать пи. Для всех последующих шагов точка между индикатором 100 Ом и сигнальным светодиодом будет тем местом, где мы выбираем схему с пи.

    • Изображение
      Изображение

      Рис.1: Верх макета макетной платы

    • Изображение
      Изображение

      Рис. 2: Альтернативный вид макета макетной платы

    Если вам нужен более чистый вид, я прикрепил файлы Kicad для платы, показанной ниже.

    • Изображение
      Изображение

      Рис 3: Вид сверху сенсорной платы

    • Изображение
      Изображение

      Рис 4: Плата датчика ISO

    • Шаг 4. Модифицируйте лазер для подключения внешнего источника питания

      На следующих этапах вы построите сборку лазерной указки.

      - Разберите лазерную указку. При этом обратите внимание на ориентацию клемм аккумулятора по отношению к лазерному излучателю. - Затем снимите пружину соединения аккумулятора и кнопку мгновенного действия с лазера. - Припаяйте кусок провода между клеммами, где была кнопка. Теперь, когда на лазер подается питание, он включается автоматически. Теперь припаяйте положительный и отрицательный выводы к лазеру. Если вы используете тот же лазер из списка деталей, вы можете использовать изображение ниже, чтобы увидеть точки пайки. В противном случае вам может потребоваться самостоятельно найти точки пайки. Вы можете использовать ориентацию батареи как подсказку для положительного или отрицательного вывода. Чтобы найти последнюю точку пайки, вы можете использовать источник питания 5 В и проверить цепь двумя измерительными проводами. Когда вы создали правильную схему, вы нашли точку пайки, и лазер загорится.

      • Изображение
        Изображение

        Оранжевый провод заменяет кнопку мгновенного действия.

      • Изображение
        Изображение

        Отображение положительных и отрицательных выводов

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

      • Изображение
        Изображение

        Шаровой шарнир

      • Изображение
        Изображение

        Гнездовое соединение

      • Изображение
        Изображение

        Шар и гнездо в сборе

      • Шаг 5: Включите лазер и проверьте схему обнаружения

        Подключите лазер к макету. Плюс нужно будет подключить к 5В и заземлить отрицательный провод. Если лазер включается отлично, если нет, дважды проверьте с помощью мультиметра у вас правильное напряжение. Если он по-прежнему не работает, попробуйте поменять провода местами на случай, если вы подключили их в обратном направлении. Если он по-прежнему не работает, возможно, вы не припаяли нужные контактные площадки, вернитесь к последнему шагу.

        • Изображение
          Изображение

          Рабочий лазер со здоровым лучом

        Как только у вас появится лазерный луч, пора проверить схему обнаружения. Направьте лазер на фотодиод. Светодиод должен погаснуть, сигнализируя о том, что луч активен. Помашите рукой через луч, и светодиод должен загореться, сигнализируя о поездке.

        • Изображение
          Изображение

          Луч не сломан и светодиод не горит

        • Изображение
          Изображение

          Злоумышленник прерывает луч, в результате чего загорается светодиод

        • Шаг 6. Подключите веб-камеру и проверьте ее работоспособность

          Подключите веб-камеру к USB-порту. Для потоковой передачи видео нам понадобится утилита mjpg-streamer. Вот отличный урок о том, как это сделать. После того, как вы правильно установили mjpg-streamer. Начните потоковую передачу видео, введя в терминал следующую команду.

          cd / где вы установили mjpg-streamer / mjpg-streamer

          ./mjpg_streamer -i "./input_uvc.so -y / dev / video0" -o "./output_http.so -w./www -p 8081"

          Эта команда настроит поток на порт 8081 с использованием источника video0. Если вы хотите, чтобы несколько веб-камер, введите указанную выше команду еще раз, но измените video0 на video1 и с 8081 на 8082. Таким образом я транслировал до 3 веб-камер, и pi не перегружался.

          Убедитесь, что соединение работает, открыв браузер на другом компьютере и введите ip-address-of-pi: 8081 или в поле pi вы можете просто ввести localhost: 8081. Если вы не знаете свой IP-адрес пи, введите в терминале следующее:

          ifconfig

          Если все работает, вы должны увидеть домашнюю страницу mpg-streamer. Щелкните вкладку потока, чтобы просмотреть поток с веб-камеры. Ниже представлен скриншот интерфейса.

          • Изображение
            Изображение

            Пример вывода mjpg-streamer

          Выполняя это руководство во второй раз, я смог получить доступ к домашней странице mjpg-streamer, но не увидел поток. Чтобы исправить это, я прочитал этот пост (ссылка теперь не работает), в частности, часть о формате пикселей YUYV, если вы столкнетесь с пустым потоком, вам также следует обратиться к нему.

          Шаг 7: антракт

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

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

          Подключите схему обнаружения к макетной плате, как показано. Убедитесь, что вы подключили сигнальный провод датчика к контакту 25, чтобы подготовиться к следующему шагу. Понижающий резистор не является обязательным. У меня там лежал 10к, но подойдет любой резистор.

          • Изображение
            Изображение

            Макет макетной платы с PiCobler

          • Шаг 8: Следите за лазером с помощью программного обеспечения

            Напишем небольшую программу для прослушивания лазерного сигнала и вывода его на терминал. Вы можете скачать код в виде вложения.

            Возможно, вам потребуется установить зависимости для этого сценария. Python и модуль gpio. Для их установки введите

            sudo apt-get install python-rpi.gpio python3-rpi.gpio

            После успешной установки python загрузите прикрепленный скрипт python с именем read_pin.py и запустите

            cd / каталог, в который вы помещаете файл / chmod 777 read_pin.py

            Команда chmod даст скрипту разрешение на запуск. Затем проверьте, все ли в порядке, запустив

            sudo python3 read_pin.py

            Если все пойдет хорошо, вы должны увидеть вывод консоли, как показано ниже. Чтобы выйти из скрипта Python, введите

            Ctrl-C

          • Изображение
            Изображение

            Правильный вывод консоли (показан с использованием MobaXterm)

          Помашите рукой перед лазерным лучом, и вы должны увидеть какой-то вывод на консоли, предупреждающий вас о том, что луч был сломан. Не стесняйтесь экспериментировать со сценарием, чтобы ваша система работала по-разному.

          Шаг 9: Создайте веб-страницу для отображения вашего потока

          Теперь нам нужно настроить интерфейс просмотра веб-камеры. Для этого шага вам необходимо установить веб-сервер Apache. Существует множество руководств по его настройке. Но вот краткий список с минимальной конфигурацией.

          sudo apt-get install apache2

          после установки вы сможете ввести свой браузер на raspberry pi

          localhost

          Вы должны увидеть страницу приветствия от apache. Если вы впервые настраиваете веб-сервер, вы, вероятно, захотите настроить свой Pi так, чтобы он имел статический IP-адрес, чтобы ваш маршрутизатор всегда назначал правильный IP-адрес, если вы выполняете цикл питания. Если вы хотите просмотреть свою систему безопасности из другого места, вам необходимо настроить переадресацию портов на своем маршрутизаторе. Прошло некоторое время, но я также думаю, что вам нужно будет перенаправить любые порты, на которых есть веб-камера. Существует множество руководств по этим процедурам. Имейте в виду, что любой может видеть вашу веб-камеру, если вы решите настроить переадресацию портов на своем маршрутизаторе.

          Прикрепленные файлы представляют собой образцы веб-страниц, которые вы можете использовать для настройки своего веб-сайта. Вам нужно будет изменить расширение файла в html-файле, так как они не разрешили мне его загрузить. Затем поместите файлы в папку www, указанную в файле конфигурации apache. Местоположение по умолчанию:

          cd / var / www

          Если вы хотите изменить место, в котором веб-сервер ищет ваши html-файлы, вы можете отредактировать файл с включенными сайтами, введя

          Судо нано / и т. д. / apache2 / сайты-включены / 000-по умолчанию

          Измените любой экземпляр / var / www / на желаемое место. Я кладу свой в / home / pi / Desktop / www /

          После того, как у вас есть файлы html в веб-папке, введите localhost в браузере или IP-адрес пи с другого компьютера. Вы должны увидеть что-то подобное.

          • Изображение
            Изображение

            Скриншот прикрепленных файлов в работе

          МИЛЫЙ!

          Шаг 10. Настройте оповещения по электронной почте

          Хорошие вещи происходят! Позвольте нам испытать удачу, попытавшись отправить уведомление по электронной почте с пи на заранее определенный адрес электронной почты. Прилагаемый скрипт python создаст ваше электронное письмо, которое вы хотите отправить, подключится к провайдеру электронной почты, например gmail, и отправит электронное письмо с помощью поставщика электронной почты. Это достигается с помощью пакета smtp для python. Я предлагаю вам создать фиктивный адрес электронной почты только для вашей системы безопасности, поскольку нам придется снизить безопасность вашей учетной записи Gmail, чтобы пакет smtp работал.

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

          То, что вам нужно будет изменить, будет

          • your_ip = "192.168.0.177"
          • your_ip_optional_port = ": 8080"
          • port_to_camera = ": 8081"
          • send_email_username = "ваше имя пользователя электронной почты"
          • send_email_password = "ваш пароль"

          your_ip_optional_port, скорее всего, будет пустым, если ваш сервер apache не работает на порту, отличном от порта по умолчанию 80. У меня уже был сервер, работающий на 80, поэтому я установил свой pi для работы на 8080. port_to_camera будет портом, который вы укажете для своей камеры. запустить с помощью стримера mjpeg.

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

          cd / папка, в которую вы поместили скрипт /

          sudo python3 send_mail.py

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

          • Изображение
            Изображение

            Скриншот прикрепленных файлов в работе

          Есть много мест, где этот сценарий может дать сбой. Не расстраивайтесь, если не получится с первого раза. Используйте точки отладки в сценарии, чтобы сузить проблемные области, а затем сосредоточиться на одной проблеме за раз.

          Шаг 11: Запуск сценария электронной почты при срабатывании лазера

          Теперь, когда пи может отправлять электронные письма, давайте автоматизируем его, чтобы каждый раз при срабатывании лазера мы получали электронное письмо. Загрузите прикрепленный файл, который представляет собой модифицированную версию read_pin.py, которая содержит новую функцию для запуска почтового скрипта. Основная дополнительная строка следующая

          sm_pid = os.spawnlp (os. P_NOWAIT, "/ usr / bin / python3", "python3", "/home/pi/Desktop/security/send_mail.py")

          Эта строка запустит сценарий отправки почты параллельно со сценарием лазерного зондирования. Это желательно, потому что сценарий отправки почты занимает несколько секунд и блокирует выполнение сценария лазерного зондирования до тех пор, пока электронное письмо не будет отправлено. Это не проблема для системы с одной камерой, но если у вас есть несколько камер, вы захотите обнаружить лазерное срабатывание на камере 1, даже если камера 2 инициировала событие электронной почты. Переменная sm_pid будет содержать pid процесса, который запускается этой командой. Мы проверяем этот идентификатор, если триггер электронной почты вызывается снова, если он существует, электронное письмо все еще отправляется, поэтому мы игнорируем событие. Если его не существует, скорее всего, это новое событие, и будет отправлено электронное письмо.

          Проверить, что все работает, запустив

          cd / каталог, в который вы помещаете файл /

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Когда вы сломаете лазерный луч, вы получите электронное письмо со снимком, сделанным с веб-камеры.

          Шаг 12: Создайте главный сценарий для запуска системы

          На этом проект в основном готов. Последний шаг - упростить запуск системы с помощью последнего скрипта. Он запустит все подпрограммы и настроит веб-камеру с помощью одного скрипта. Прикрепленный файл можно запустить при запуске, отредактировав файл /etc/rc.local. Вам нужно изменить расширение файла и, возможно, придется отредактировать сценарий, чтобы включить правильные пути, если вы поместите свои сценарии в другое место.

          Шаг 13: Заключение

          Ну вот и все. Надеюсь, вам понравилось это руководство! Дайте мне знать в комментариях, если у вас есть вопросы или вам нужна более подробная информация в каких-либо областях. Продолжайте возиться!

          • Изображение
            Изображение

    Рекомендуемые: