Оглавление:
- Шаг 1: настройка вашего Pi
- Шаг 2. Подключение по SSH к вашему PI
- Шаг 3. Отправьте свой IP-адрес по электронной почте при загрузке
- Шаг 4: Установка и настройка движения
- Шаг 5. Отправка видео по электронной почте при обнаружении движения
- Шаг 6. Устранение неполадок и источники
Видео: Камера обнаружения движения Raspberry Pi 3 с прямой трансляцией: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Вступление
В этом проекте вы узнаете, как создать камеру для обнаружения движения, которую вы сможете использовать в качестве ловушки для камеры, монитора для домашних животных / ребенка, камеры безопасности и многого другого.
Этот проект состоит из нескольких этапов:
- Вступление
- Настройка вашего Pi
- SSHing в ваш Pi
- Отправка вашего IP-адреса по электронной почте при загрузке
- Установка и настройка Motion
- Отправка видео из Motion по электронной почте при обнаружении
- Устранение неполадок и источники
Что вам понадобится:
- Модель Raspberry Pi 3 b ~ $ 35
- Карта Micro SD 8 ГБ ~~ $ 10
- Веб-камера USB ~ ~ 20 долларов (в этом проекте использовалась веб-камера Logitech HD Webcam c270)
- кабель micro usb ~~ $ 5
- или:
- перезаряжаемый аккумулятор на 5 В (резервная батарея телефона), это делает ваш проект беспроводным ~~ $ 20
- или
- сетевой адаптер USB ~~ $ 5
- Wi-Fi соединение
К чему вам понадобится доступ для настройки:
- Монитор
- Мышь и клавиатура
- Компьютер со слотом для SD-карты
- Конвертер Micro SD в SD-карту (должен поставляться с вашей micro SD-картой)
Шаг 1: настройка вашего Pi
Теперь давайте настроим ваш Pi
Для начала убедитесь, что у вас есть все необходимые предметы с последнего шага. Затем следуйте инструкциям на веб-сайте Raspberry Pi по установке Raspbian Jessie на карту Microsd, которые можно найти здесь.
После того, как вы установили Raspbian на свой Pi, пришло время настроить некоторые основные функции.
Вай фай
Первый шаг к тому, чтобы получить максимальную отдачу от вашего Pi, - это подключить его к Интернету. Возможно, вы уже выполнили этот шаг, либо найдя символ Wi-Fi в верхнем правом углу главного экрана вашего Pi и выполнив вход там, либо сделав то же самое перед установкой Raspbian на последнем шаге. Если вы не можете войти в свою сеть Wi-Fi через интерфейс рабочего стола вашего Pi, вы можете следовать приведенным здесь инструкциям, чтобы настроить Wi-Fi через командную строку.
SSH
Один очень удобный инструмент, доступный вам при использовании вашего Pi, - это возможность отдавать команды вашему Pi в так называемой установке без головы. Используя Secure SHell или SSH, вы можете управлять своим Pi удаленно с компьютера. С помощью этого метода все, что вам нужно для редактирования вашего Pi, - это источник питания, чтобы он оставался включенным, больше никаких мониторов и клавиатуры!
Шаг 2. Подключение по SSH к вашему PI
SSH-подключение к вашему Raspberry Pi простое и очень полезное, так как процесс позволяет вам отправлять команды на ваш Pi с любого компьютера, не имеющего ничего, кроме соединения Wi-Fi.
Чтобы подключиться к вашему Pi по SSH, вам нужно выполнить следующие 3 простых шага.
Во-первых, вам нужно включить SSH на вашем Pi. Для этого откройте командное окно на вашем Pi и введите:
sudo raspi-config
Эта команда позволяет вам войти в меню конфигурации. оттуда вы захотите использовать клавиши со стрелкой, табуляцией и вводом, чтобы сначала перейти к параметрам взаимодействия, затем включить SSH, а также камеру, затем выйти и перезагрузить пи.
Затем вам нужно найти IP-адрес вашего Pi. В командном терминале введите:
sudo ifconfig
И ваш IP-адрес должен быть в всплывающем разделе wlan0, прямо под Link encap: ethernet. На демонстрационном изображении выше IP-адрес 192.168.1.10.
Наконец, вам нужно либо открыть встроенное приложение терминала на Mac, либо найти и следовать инструкциям для стороннего приложения ssh для Windows. В приложении Терминал введите:
ssh pi @ ВАШ IP-АДРЕС
Если вы не меняли пароль в Raspi-config, тогда вашим паролем для входа при появлении запроса будет пароль по умолчанию: raspberry.
Оттуда все должно быть хорошо!
Шаг 3. Отправьте свой IP-адрес по электронной почте при загрузке
На этом этапе мы сосредоточимся на том, как получить доступ к вашему Raspberry Pi, независимо от того, в какой сети вы находитесь. В зависимости от сети IP-адрес Pi меняется. И если у вас нет настройки монитора, вам нужно будет подключиться к Pi по ssh, чтобы запустить протокол обнаружения движения, изменить настройки движения или получить доступ к чему-либо еще на устройстве. Чтобы решить эту проблему, мы напишем скрипт на Python, который отправит нам по электронной почте текущий IP-адрес Pi при запуске. Скрипт python выглядит следующим образом и хранился в каталоге с пометкой «background».
# начать в домашнем каталоге
cd ~
# создать фоновую папку
mkdir фон
# создать скрипт Python
sudo nano emailip.py
#write в emailip.py
импортный сокет
s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)
s.connect (("8.8.8.8", 80))
print (s.getsockname () [0]) x = s.getsockname () [0] s.close ()
импортировать smtplib
из электронной почты. MIMEMultipart import MIMEMultipart
из электронной почты. MIMEText import MIMEText
fromaddr = "ВАШ АДРЕС"
toaddr = "АДРЕС ПОЛУЧЕНИЯ"
msg = MIMEMultipart ()
msg ['From'] = fromaddr
msg ['Кому'] = toaddr
msg ['Subject'] = "IP-адрес"
body = xmsg.attach (MIMEText (body, 'простой'))
сервер = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, «ВАШ ПАРОЛЬ»)
текст = msg.as_string ()
server.sendmail (fromaddr, toaddr, текст)
server.quit ()
# тогда это происходит при перезагрузке
sudo nano /etc/rc.local
#enter в /etc/rc.local
в то время как ! / sbin / ifconfig wlan0 | grep -q 'адрес inet: [0-9]';
спать 3
сделано
_IP = $ (имя хоста -I) || правда
если ["$ _IP"]; тогда
printf "Мой IP-адрес% s / n" "$ _IP"
python /home/pi/Background/emailip.py &
фи
выход 0
#и вы сделали
Шаг 4: Установка и настройка движения
# обновить пи
sudo apt-get update
sudo apt-get upgrade
#скачать
sudo apt-get install motion
# теперь отредактируйте этот файл со следующими изменениями
sudo nano /etc/motion/motion.conf
# чтобы установить стандарт для этого урока, измените
#################
демон на
stream_localhost выключен
webcontrol_localhost выключен
ffmpeg_output_movies на
целевой_директор / var / lib / движение
##################
#local параметры потоковой передачи в веб-браузере
##################
stream_maxrate 100 # Это позволит осуществлять потоковую передачу в реальном времени, но требует большей пропускной способности и ресурсов
частота кадров 60 # Это позволит снимать 60 кадров в секунду # чем выше это значение, тем медленнее обработка видео
width 640 # Это изменяет ширину отображаемого изображения
height 480 # Это изменяет высоту отображаемого изображения
##################
# отправка настроек видео по электронной почте в… / motion.conf
##################
# удалите ";" перед строкой, точка с запятой закомментирует строку
on_event_start python /home/pi/background/motionalert.py% f
on_movie_end python /home/pi/background/motionvid.py% f
##################
#астектика
##################
# варианты, описанные в файле
output_pictures locate_motion_style
##################
# тогда измени
Судо нано / и т. д. / по умолчанию / движение
#сказать
start_motion_daemon = да
# последний, начни с ** а
запуск службы sudo
# вы можете изменить команду на "стоп" или "перезапуск"
Шаг 5. Отправка видео по электронной почте при обнаружении движения
Электронная почта при обнаружении движения:
# начать дома
dircd ~
# создать скрипт Python для оповещения о движении
sudo nano /home/pi/background/motionalert.py
#записывать
импортировать smtplib
from datetime import datetime
из электронной почты. MIMEMultipart import MIMEMultipart
из электронной почты. MIMEText импорт MIMEText
fromaddr = "ВАШ АДРЕС"
toaddr = "АДРЕС ПОЛУЧЕНИЯ"
msg = MIMEMultipart ()
msg ['From'] = fromaddr
msg ['Кому'] = toaddr
msg ['Subject'] = "Обнаружено движение"
body = 'Обнаружено движение. / nВремя:% s'% str (datetime.now ())
msg.attach (MIMEText (тело, 'простой'))
сервер = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, "ВАШ ПАРОЛЬ")
текст = msg.as_string ()
server.sendmail (fromaddr, toaddr, текст)
server.quit ()
Отправить видео движения по электронной почте при сохранении видео:
# начать в homedircd ~
# создание сценариев Python для движущихся видеоudo nano /home/pi/background/motionvid.py
импортировать smtplib
из электронной почты. MIMEMultipart import MIMEMultipart
из электронной почты. MIMEText импорт MIMEText
из электронной почты. MIMEBase импортировать MIMEBase
из кодировщиков импорта электронной почты
fromaddr = "ВАША ЭЛЕКТРОННАЯ ПОЧТА"
toaddr = "АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ, КОТОРОЙ ВЫ ОТПРАВЛЯЕТЕ"
msg = MIMEMultipart ()
msg ['From'] = fromaddr
msg ['Кому'] = toaddr
msg ['Subject'] = "Motion Cam активирована"
body = "Видео обнаружено движение"
msg.attach (MIMEText (тело, 'простой'))
импорт ОС
rootpath = '/ вар / библиотека / движение'
filelist = [os.path.join (rootpath, f) для f в os.listdir (rootpath)]
filelist = [f вместо f в списке файлов, если os.path.isfile (f)]
newest = max (список файлов, ключ = лямбда x: os.stat (x).st_mtime)
имя_файла = новейшее
импорт ОС
rootpath = '/ вар / библиотека / движение'
filelist = [os.path.join (rootpath, f) для f в os.listdir (rootpath)]
filelist = [f вместо f в списке файлов, если os.path.isfile (f)]
newest = max (список файлов, ключ = лямбда x: os.stat (x).st_mtime)
attachment = open (новейшее, «rb»)
part = MIMEBase ('приложение', 'поток октетов')
part.set_payload ((вложение).read ())
encoders.encode_base64 (часть)
part.add_header ('Content-Disposition', "attachment; filename =% s"% filename)
msg.attach (часть)
сервер = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, «ВАШ ПАРОЛЬ»)
текст = msg.as_string ()
server.sendmail (fromaddr, toaddr, текст)
server.quit ()
Шаг 6. Устранение неполадок и источники
Исправление проблем:
Поскольку этот проект состоит из нескольких этапов, есть несколько моментов, когда что-то может пойти не так. Ниже приведены некоторые из возможных ошибок, которые могут возникнуть, и способы их устранения.
- При настройке вашего Pi для отправки вам по электронной почте своего текущего IP-адреса крайне важно отредактировать файл rc.local, как показано ранее, поскольку это допускает небольшую задержку перед активацией программы после перезагрузки. В противном случае пи еще не будет подключен к Wi-Fi, и электронное письмо не будет отправлено.
- При редактировании файла motion.conf не забудьте удалить точки с запятой перед определенными параметрами. Точка с запятой подавляет данное действие, иначе изменение не вступит в силу.
- Файл motion.conf очень хорошо организован и подробен. Не стесняйтесь изменять настройки по своему вкусу, но имейте в виду, что они могут повлиять на успех системы захвата движения.
- После настройки параметров оповещения по электронной почте и видео по электронной почте важно отметить, что электронное письмо с видео обнаруженным движением займет немного больше времени, чем отправка исходного электронного письма с предупреждением. Это связано с тем, что видео завершается через пару секунд после того, как движение больше не обнаруживается, и потому, что вложение электронной почты может быть достаточно большим, чтобы получить его через пару минут. В некоторых случаях, если движение поддерживается в течение очень долгого времени, оно может быть слишком большим, чтобы отправить его вообще. Из-за этого всегда рекомендуется проверять прямую трансляцию после получения первоначального электронного письма с предупреждением.
Почему движение ?:
Когда мы впервые приступили к этому проекту, мы рассмотрели несколько разных ресурсов. Сначала мы рассмотрели возможность использования PiCam, который представляет собой камеру, созданную специально для Raspberry Pi. PiCam, безусловно, способное устройство и имеет множество приложений, но оно ограничено использованием программ, специально разработанных для него, и относительно дорого по сравнению с дешевыми многоцелевыми веб-камерами. Поэтому, чтобы сделать этот проект доступным для более широкой аудитории, мы решили использовать обычную веб-камеру USB. Следующая проблема заключалась в том, какое программное обеспечение использовать. Первоначально мы рассматривали OpenCV, бесплатное программное обеспечение, которое позволяет реализовать множество различных проектов компьютерного зрения и обработки изображений. Одна из проблем заключается в том, что OpenCV - это массивный файл, который занимает много памяти и долго настраивается. Настройка также состоит из нескольких этапов, что оставляет еще больше места для ошибки. Мы обнаружили, что для нашего конкретного проекта Motion было проще настроить и начать работать, но гораздо надежнее в исполнении.
Источники
Исходники кода:
www.techradar.com/how-to/computing/how-to-b…
pimylifeup.com/raspberry-pi-webcam-server/
www.pyimagesearch.com/2015/06/01/home-surve…
naelshiab.com/tutorial-send-email-python/
www.raspberrypi.org/documentation/linux/us…
learn.adafruit.com/adafruits-raspberry-pi-…
learn.adafruit.com/adafruits-raspberry-pi-…
pinout.xyz/pinout/i2c
Фото предоставлено:
SSH Snail:
Почтовый логотип:
Веб-камера Logitech:
Окно SSH:
Рекомендуемые:
ТРЕВОГА ОБНАРУЖЕНИЯ ДВИЖЕНИЯ: 7 шагов
СИГНАЛИЗАЦИЯ ОБНАРУЖЕНИЯ ДВИЖЕНИЯ: Здравствуйте, друзья, я покажу вам, как сделать сигнализацию обнаружения движения. основной компонент этого проекта - датчик PIR
Как создать систему обнаружения движения с помощью Arduino: 7 шагов
Как создать систему обнаружения движения с помощью Arduino: Создайте счетчик производства движения и присутствия, используя Feather HUZZAH, запрограммированный с помощью Arduino и работающий на Ubidots. Эффективное обнаружение физического движения и присутствия в умных домах и умном производстве может быть очень полезно в приложениях, начиная от
Робот SCARA: изучение прямой и обратной кинематики !!! (Поворот сюжета. Узнайте, как создать интерфейс в реальном времени в ARDUINO с помощью ОБРАБОТКИ !!!!): 5 шагов (с изображениями)
Робот SCARA: изучение прямой и обратной кинематики !!! (Поворот сюжета. Узнайте, как создать интерфейс в реальном времени в ARDUINO с помощью ОБРАБОТКИ !!!!): Робот SCARA - очень популярная машина в мире индустрии. Это название означает как «Селективная совместимая сборка робота-манипулятора», так и «Селективно-совместимый шарнирный манипулятор робота». По сути, это робот с тремя степенями свободы, первые две из которых
Система сигнализации обнаружения движения: 11 шагов (с изображениями)
Система сигнализации обнаружения движения: Примечание! Реактивные блоки больше не доступны для загрузки. Для обнаружения движения в комнате можно использовать обычную USB-камеру. В следующих шагах мы покажем вам, как можно использовать реактивные блоки для программирования готового к запуску Java-приложения, которое отправляет SMS
Выходное отверстие с контролем движения - от датчика движения: 6 шагов
Выходное отверстие с контролем движения - от источника света с датчиком движения: Представьте, что вы обманщик, идущий в самый страшный дом в квартале. Пройдя мимо всех гулей, привидений и кладбищ, вы наконец доберетесь до последнего пути. Вы видите перед собой конфету в миске! Но тут вдруг гхо