Система безопасности на Raspberry Pi с оповещениями по Email


Разнообразные системы безопасности с каждым годом становятся все более востребованными в современном обществе. В данной статье мы рассмотрим создание системы безопасности на Raspberry Pi, которая будет не только предупреждать вас по Email о незаконном проникновении на объект (ваш дом), но также присылать вам на Email и фотографию нарушителя.

Внешний вид системы безопасности на Raspberry Pi с оповещениями по Email

Для обнаружения нарушителя в нашей системе мы будем использовать пироэлектрический датчик (PIR Sensor) – при его обнаружении камера будет делать фотоснимок нарушителя, который будет немедленно отправляться вам на Email. Эту систему можно установить на входной двери вашего дома или офиса, а также любого другого объекта, который необходимо охранять от проникновения нежелательных лиц.

Необходимые компоненты

  1. Плата Raspberry Pi (купить на AliExpress).
  2. Камера для Raspberry Pi (купить на AliExpress).
  3. Пироэлектрический датчик движения (PIR Sensor) (купить на AliExpress).
  4. Светодиод (купить на AliExpress).
  5. Резистор 1 кОм (купить на AliExpress).
  6. Источник питания.
  7. Макетная плата.
  8. Соединительные провода.

Объяснение работы проекта

Принцип работы нашего проекта достаточно прост. Пироэлектрический датчик движения (PIR датчик) используется для обнаружения человека/нарушителя в поле своего действия, а камера делает фото в случае обнаружения человека/нарушителя. Более подробно про принципы работы PIR датчика можно прочитать в статье про детектор движения с использованием Arduino и PIR датчика.

При обнаружении движения (нарушителя) PIR датчик подает управляющий сигнал на плату Raspberry Pi, которая, в свою очередь, подает управляющий сигнал на камеру чтобы она сделала снимок. После этого плата Raspberry Pi создает Email с изображением (фото нарушителя) и передает его на заданный адрес. Кроме изображения в Email также будет содержаться сообщение получателю, мы использовали в качестве сообщения фразу “Please find the attachment”, но вы можете изменить это сообщения, внеся соответствующие изменения в код программы.

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

Внешний вид сохраняемых изображений с камеры

Схема проекта

Схема система безопасности на основе платы Raspberry Pi и камеры представлена на следующем рисунке.

Схема система безопасности на основе платы Raspberry Pi и камеры

В представленной схеме камера подключена к соответствующему слоту на плате Raspberry Pi, а PIR датчик подключен к контакту 18 платы. Светодиод подключен к контакту 17 платы Raspberry Pi через резистор 1 кОм.

Внешний вид камеры для Raspberry Pi показан на следующем рисунке.

Внешний вид камеры для Raspberry Pi

Настройка платы Raspberry Pi

Для работы нашего проекта после первоначальной настройки операционной системы Raspberry Pi необходимо в нее файлы библиотеки для работы с камерой (Pi camera library files), это можно сделать с помощью следующих команд:

Внешний вид процесса установки библиотеки для работы с камерой в Raspberry Pi

После этого необходимо войти в меню настроек операционной системы чтобы включить в них использование камеры.

После этого выберите пункт Enable camera (включить использование камеры).

Включение возможности работы с камерой в Raspberry Pi

Далее необходимо перезагрузить Raspberry Pi чтобы изменения вступили в силу.

После настройки камеры нам еще необходимо установить программное обеспечение для передачи Email (электронной почты). В качестве него мы будем использовать ssmtp, который хорошо подходит для передачи Email с помощью командной строки или скрипта на Python. Нам необходимо установить две библиотеки чтобы передавать Email с помощью SMTP клиента:

Внешний вид процесса установки программного обеспечения для передачи Email в Raspberry Pi

После установки этих библиотек необходимо открыть файл ssmtp.conf, внести в него изменения как показано на следующем рисунке и сохранить его. Чтобы сохранить и выйти из файла, нажмите ‘CTRL+x’, затем ‘y’, после чего нажмите ‘enter’.

Внесение изменений в файл ssmtp.conf

После этого мы можем проверить настройку SMTP клиента при помощи передачи тестовой команды, показанной ниже. При выполнении этой команды, если все работает исправно, вы должны получить email на указанный адрес.

Объяснение программы для Raspberry Pi

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе нам необходимо подключить используемые библиотеки, инициализировать необходимые переменные и контакты. Здесь следует отметить, что для передачи простых email библиотеки smtplib будет вполне достаточно, однако если вы хотите передать хорошо оформленное email с приложениями и т.д., то вам будет необходимо расширение этой библиотеки под названием MIME (Multipurpose Internet Mail Extensions).

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

После этого мы создадим функцию def sendMail(data) для передачи писем.

Функция def capture_image() будет использоваться для получения изображения нарушителя с датой и временем снимка.

После этого мы инициализируем камеру и зададим необходимые для нее настройки.

И, наконец, мы будем считывать показания с выхода PIR датчика – если на нем будет напряжение высокого уровня (high), то будет вызываться функция capture_image() для получения снимка нарушителя и передачи Email с этим изображением. Мы будем использовать функцию sendmail() внутри функции capture_image() для передачи Email.

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

Исходный код программы на Python

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
735 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *