Оглавление:
- Шаг 1: округление требуемых компонентов
- Шаг 2. Запустите Pi
- Шаг 3: Создайте схему обнаружения лазера
- Шаг 4. Модифицируйте лазер для подключения внешнего источника питания
- Шаг 5: Включите лазер и проверьте схему обнаружения
- Шаг 6. Подключите веб-камеру и проверьте ее работоспособность
- Шаг 7: антракт
- Шаг 8: Следите за лазером с помощью программного обеспечения
- Шаг 9: Создайте веб-страницу для отображения вашего потока
- Шаг 10. Настройте оповещения по электронной почте
- Шаг 11: Запуск сценария электронной почты при срабатывании лазера
- Шаг 12: Создайте главный сценарий для запуска системы
- Шаг 13: Заключение
Видео: Лазерная система безопасности Raspberry Pi: 13 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Спасибо, что ознакомились с моими инструкциями. К концу этой инструкции вы создадите лазерную систему Tripwire Raspberry Pi с функцией оповещения по электронной почте, которая показана в видео.
Чтобы выполнить это руководство, вам необходимо знать общую схему и пайку, знать, как использовать макетную плату, и быть уверенным в использовании терминала на пианино. Также будет полезно иметь опыт работы с Python.
Этот проект состоит из трех основных систем. Raspberry Pi, лазерная растяжка и компьютер для наблюдений. Наша цель - использовать raspberry pi для обнаружения изменения напряжения в цепи лазерного растормаживания, а затем предупредить наблюдающий компьютер в виде электронного письма и видеопотока.
Давай начнем.
Шаг 1: округление требуемых компонентов
Для выполнения этого проекта вам понадобятся следующие предметы.
- Как минимум один работающий Raspberry Pi. В этой сборке я использовал модель Pi стиля B, работающую под управлением raspbian wheezy. Я уверен, что это руководство будет работать нормально, если вы используете raspbian jessie.
- Внешний источник питания для raspberry pi. Когда все это будет подключено, мы будем потреблять значительную силу тока. Я потратил много времени на диагностику дрянного блока питания как источника проблем во время моей первой сборки. Убедитесь, что у вас мощная мощность, способная выдавать не менее 2 ампер.
- Дешевый лазерный указатель. Свою я нашла рядом с кассовым аппаратом на заправке. Если вам нужен точный лазер, вы можете найти его здесь. На этикетке указана длина волны 630-680 нм. Какой бы лазер вы ни выбрали, он определит некоторые другие компоненты сборки. Поэтому убедитесь, что на этикетке указана длина волны.
- Веб-камера в стиле USB. У этой веб-камеры есть регулируемая ножка, которая позволяет удобно расположить камеру. Я обнаружил, что кабель USB, поставляемый с веб-камерой, был слишком коротким для моего приложения, поэтому я нашел расширение на monoprice.
-
Что-то вроде коммутационного комплекта для Raspberry Pi, чтобы у вас был легкий доступ к контактам на процессоре.
- Макет.
- Паяльник.
- Провода перемычки для макета.
-
Компоненты схемы. Умножьте на необходимое количество растяжек.
- Один рабочий светодиод
- Один резистор 100 Ом
- Один резистор 1 кОм
- Один резистор 10 кОм
- Один резистор на 200 кОм. Действительно, подойдет любой большой резистор. Я тестировал его с резистором 1M, и он работал нормально. FYI 10k было слишком мало.
- Один PNP-транзистор PN: 2N4403-APCT-ND
- Один фотодиод (соответствует длине волны вашего лазера) PN: PDB-C142-ND
Я приложу файлы kicad для печатной платы, но не буду подробно останавливаться на производстве платы в этом руководстве.
В ходе работы над этим проектом мне пригодились следующие дополнительные инструменты:
- Установка синергии на raspberry pi. Если вы не знакомы, это программное обеспечение позволит вам управлять мышью и клавиатурой raspberry pi с другого компьютера. Это хорошо, если вы похожи на меня и вам удобнее работать на другом компьютере. Также это программное обеспечение, которое должно быть у всех.
- USB-концентратор. Для каждой веб-камеры, которую вы хотите использовать, вам понадобится один порт.
- Измеритель напряжения или осциллограф, если он у вас есть.
- Использование 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
-
Оранжевый провод заменяет кнопку мгновенного действия.
-
Отображение положительных и отрицательных выводов
-
Шаровой шарнир
-
Гнездовое соединение
-
Шар и гнездо в сборе
-
Рабочий лазер со здоровым лучом
-
Луч не сломан и светодиод не горит
-
Злоумышленник прерывает луч, в результате чего загорается светодиод
-
Пример вывода mjpg-streamer
-
Макет макетной платы с PiCobler
-
Правильный вывод консоли (показан с использованием MobaXterm)
-
Скриншот прикрепленных файлов в работе
- your_ip = "192.168.0.177"
- your_ip_optional_port = ": 8080"
- port_to_camera = ": 8081"
- send_email_username = "ваше имя пользователя электронной почты"
- send_email_password = "ваш пароль"
-
Скриншот прикрепленных файлов в работе
Шаг 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, но не увидел поток. Чтобы исправить это, я прочитал этот пост (ссылка теперь не работает), в частности, часть о формате пикселей YUYV, если вы столкнетесь с пустым потоком, вам также следует обратиться к нему.
Шаг 7: антракт
Итак, на этом этапе мы должны запустить Raspberry Pi. Наш лазер был модифицирован для работы от внешнего источника. Наша схема обнаружения создана, и вы подтвердили, что когда лазерный луч попадает на фотодиод, светодиод выключается, а когда вы прерываете луч, светодиод должен включаться. Наконец, у вас должна быть подключена веб-камера и она будет работать с потоковой передачей.
Пришло время собрать все воедино. Давайте начнем с простых попыток обнаружить срабатывание лазерного луча с помощью программного обеспечения.
Подключите схему обнаружения к макетной плате, как показано. Убедитесь, что вы подключили сигнальный провод датчика к контакту 25, чтобы подготовиться к следующему шагу. Понижающий резистор не является обязательным. У меня там лежал 10к, но подойдет любой резистор.
Шаг 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
Помашите рукой перед лазерным лучом, и вы должны увидеть какой-то вывод на консоли, предупреждающий вас о том, что луч был сломан. Не стесняйтесь экспериментировать со сценарием, чтобы ваша система работала по-разному.
Шаг 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_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: Заключение
Ну вот и все. Надеюсь, вам понравилось это руководство! Дайте мне знать в комментариях, если у вас есть вопросы или вам нужна более подробная информация в каких-либо областях. Продолжайте возиться!
Рекомендуемые:
Лазерная сигнализация домашней безопасности TF03: 5 шагов
Лазерная сигнализация домашней безопасности TF03: С развитием общества люди уделяют все больше внимания безопасности. Традиционная охрана, которая осуществляется постоянным патрулированием сотрудников службы безопасности, не подходит для общественности из-за высоких цен. Хотя я недавно познакомился с
Лазерная система синхронизации Arduino: 6 шагов (с изображениями)
Лазерная система синхронизации Arduino: в рамках моего обучения мне нужна была система для точного измерения того, как быстро модель автомобиля проходит 10 метров. Изначально я думал, что куплю дешевую готовую систему на eBay или Aliexpress, эти системы широко известны как световые ворота, фо
Беспроводная кнопка безопасности для безопасности ПЛК: 6 шагов (с изображениями)
Беспроводная кнопка безопасности для безопасности ПЛК: этот проект является моим доказательством концепции использования Интернета вещей и (в конечном итоге) робототехники для создания дополнительного уровня безопасности для опасных производственных объектов. Эта кнопка может использоваться для запуска или остановки нескольких процессов, включая управление сигналом
Система домашней безопасности Arduino: 7 шагов (с изображениями)
Система домашней безопасности Arduino: это система домашней безопасности, использующая Arduino Mega 2560, которая будет вызывать тревогу при открытии любой двери или обнаружении движения в комнате при активации системы. Это хороший проект для всех, кто учится на последнем курсе университета. вы можете модернизировать его
Система безопасности распознавания лиц для холодильника с Raspberry Pi: 7 шагов (с изображениями)
Система безопасности с распознаванием лиц для холодильника с Raspberry Pi: просматривая Интернет, я обнаружил, что цены на системы безопасности варьируются от 150 до 600 долларов и выше, но не все решения (даже очень дорогие) могут быть интегрированы с другими. умные инструменты у вас дома! Например, вы не можете установить