Сигнализация на Raspberry Pi с датчиком движения и автоматической съемкой
В этом проекте будет показано, как сделать некое подобие сигнализации на Raspberry Pi, которая делает фотографии при обнаружении движения. Такое устройство можно использовать в качестве детектора при проникновении грабителей, фотографировать диких животных или в других целях. Мы будем использовать камеру Raspberry Pi V2, а код будет написан на языке программирования Python.

Схема для этого проекта помимо Raspberry Pi состоит из PIR датчика движения, кнопки и модуля камеры, который вы подключите к своему Pi. Кнопка – это дополнительный компонент, который позволяет остановить скрипт Python.

Для программирования Raspberry Pi мы будем использовать код на Python и встроенную библиотеку picamera, которая упрощает управление камерой. Для управления линиями GPIO мы будем использовать библиотеку gpiozero, которая содержит классы для наиболее популярных компонентов, таких как кнопки, светодиоды, датчик движения и т. д.
Вам нужно включить программное обеспечение камеры Raspberry Pi, прежде чем вы сможете использовать модуль камеры. В среде рабочего стола перейдите в главное меню и выберите Preferences - Raspberry Pi Configuration. Выберите вкладку Interfaces, и откроется окно, как показано ниже.

Либо в окне терминала введите следующую команду: pi@raspberry:~ $ sudo raspi-config.
Вы должны увидеть инструмент настройки программного обеспечения Raspberry Pi. Выберите Interfacing Options.

Активируйте (Enable) камеру и перезагрузите Raspberry Pi.

При включенном программном обеспечении камеры выключите Raspberry Pi, а затем подключите камеру к порту CSI. Убедитесь, что камера подключена с синими буквами, направленными вверх и ориентированными, как показано на следующем рисунке. Затем снова запустите Raspberry Pi.

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

PIR датчик движения, который мы используем в этом проекте, должен питаться от линии 5В. Для работы других датчиков требуется 3,3 В. Прочитайте документацию вашего датчика перед подключением схемы.
Теперь настало время написать код программы. Для управления камерой вы будете использовать встроенную библиотеку Picamera. Вот обзор того, что код должен делать:
- Инициализировать камеру
- Сделать снимок, когда датчик движения PIR обнаруживает движение
- Сохранение фотографии в папке Desktop (Рабочий стол)
- Инкрементальное наименование фотографий (image_1.jpg, image_2.jpg и так далее)
- Остановить камеру, когда нажата кнопка
Создайте новый файл с помощью Python 3 (IDLE) и скопируйте следующий код. Затем сохраните код в папке Desktop со следующим именем: burglar_detector.py. Код хорошо документирован и довольно прост для понимания.
#импортировать необходимые пакеты
from gpiozero import Button, MotionSensor
from picamera import PiCamera
from time import sleep
from signal import pause
#создать объекты, которые ссылаются на кнопку,
#датчик движения и PiCamera
button = Button(2)
pir = MotionSensor(4)
camera = PiCamera()
#запустить камеру
camera.rotation = 180
camera.start_preview()
#Для имен изображений
i = 0
#остановить работу камеры при нажатии кнопки
def stop_camera():
camera.stop_preview()
#выйти из программы
exit()
#сделать фото при обнаружении движения
def take_photo():
global i
i = i + 1
camera.capture('/home/pi/Desktop/image_%s.jpg' % i)
print('A photo has been taken')
sleep(10)
#назначить функцию, которая запускается при нажатии кнопки
button.when_pressed = stop_camera
#назначить функцию, которая запускается при обнаружении движения
pir.when_motion = take_photo
pause()
© digitrode.ru