- Необходимые компоненты:
- Рабочее объяснение:
- Описание схемы:
- Объяснение конфигурации и программирования Raspberry Pi:
Raspberry Pi - это популярная плата разработки на базе ARM Cortex, предназначенная для инженеров-электронщиков и любителей. Благодаря скорости обработки и памяти, Raspberry Pi можно использовать для одновременного выполнения различных функций, как на обычном ПК, и поэтому он называется мини-компьютером на вашей ладони. Мы создали серию руководств по Raspberry Pi, чтобы начать работу с Raspberry Pi с нуля, а затем создать проекты IoT высокого уровня с использованием Raspberry Pi.
На этот раз мы здесь с нашим следующим интересным проектом - Системой мониторинга посетителей с функцией захвата изображений. Здесь мы связываем камеру Pi с Raspberry Pi, чтобы захватить изображение каждого посетителя, который вошел через ворота или дверь. В этом проекте всякий раз, когда кто-либо прибывает к воротам, он должен нажать кнопку, чтобы открыть ворота, и как только он / она нажмет кнопку, его / ее изображение будет снято и сохранено в системе с датой и время входа. Это может быть очень полезно для целей безопасности и наблюдения.
Эта система очень полезна в офисах или на фабриках, где ведется запись посетителей для посетителей и запись посещаемости для сотрудников. Эта система мониторинга оцифровывает и автоматизирует все записи и посещаемость посетителей, и нет необходимости поддерживать их вручную. Этой системой может управлять сам человек, или может быть оператор, который нажимает кнопку для самого посетителя. Это хороший проект для начала работы с камерой Pi и ее взаимодействия с Raspberry Pi.
Необходимые компоненты:
- Raspberry Pi
- Pi камера
- ЖК-дисплей 16x2
- Двигатель постоянного тока
- IC L293D
- Зуммер
- СВЕТОДИОД
- Хлебная доска
- Резистор (1к, 10к)
- Конденсатор (100 нФ)
- Нажать кнопку
- Соединительные провода
- 10к банк
- Источник питания
Рабочее объяснение:
Работа с этой системой мониторинга Raspberry Pi проста. При этом камера Pi используется для захвата изображений посетителей при нажатии или срабатывании кнопки. В качестве ворот используется двигатель постоянного тока. Каждый раз, когда кто-то хочет войти в это место, ему нужно нажать кнопку. После нажатия кнопки Raspberry Pi отправляет команду Pi Camera, чтобы щелкнуть изображение и сохранить его. После этого ворота на время открываются, а затем снова закрываются. Зуммер используется для генерации звука при нажатии кнопки, а светодиодный индикатор используется для индикации того, что Raspberry Pi готов принять нажатие кнопки, означает, что когда светодиод горит, система готова к работе.
Здесь фотографии посетителей сохраняются в Raspberry Pi с именем, которое само содержит время и дату входа. Это означает, что нет необходимости сохранять дату и время отдельно в каком-то другом месте, поскольку мы назначили время и дату в качестве имени захваченного изображения, см. Изображение ниже. Здесь мы сделали снимок коробки в качестве посетителя, полную демонстрацию смотрите в видео в конце.
Описание схемы:
Схема этой системы наблюдения за посетителями Raspberry Pi очень проста. Здесь жидкокристаллический дисплей (ЖКД) используется для отображения времени / даты входа посетителя и некоторых других сообщений. ЖК-дисплей подключен к Raspberry Pi в 4-битном режиме. Контакты ЖК-дисплея, а именно RS, EN, D4, D5, D6 и D7, подключены к контактам GPIO Raspberry Pi номер 18, 23, 24, 16, 20 и 21. Модуль камеры Pi подключается к слоту камеры Raspberry Pi. Зуммер подключен к контакту 26 GPIO Raspberry Pi для индикации. Светодиод подключен к контакту 5 GPIO через резистор 1 кОм, а кнопка подключена к контакту 19 GPIO относительно земли, чтобы запустить камеру и открыть затвор. Двигатель постоянного тока (как ворота)подключен к контактам 17 и 27 GPIO Raspberry Pi через микросхему драйвера двигателя (L293D). Остальные соединения показаны на принципиальной схеме.
Чтобы подключить Pi-камеру, вставьте ленточный кабель Pi-камеры в слот камеры, слегка потяните за выступы разъема на плате RPi и вставьте ленточный кабель в гнездо, затем снова осторожно нажмите на выступы, чтобы зафиксировать ленточный кабель.
Объяснение конфигурации и программирования Raspberry Pi:
Здесь для Программы мы используем язык Python. Перед кодированием пользователю необходимо настроить Raspberry Pi. Ниже вы найдете два руководства по началу работы с Raspberry Pi и установке и настройке ОС Raspbian Jessie в Pi:
- Начало работы с Raspberry Pi - Введение
- Начало работы с Raspberry Pi - конфигурация
После успешной установки ОС Raspbian на Raspberry Pi нам необходимо установить файлы библиотеки камеры Pi для запуска этого проекта в Raspberry pi. Для этого нам нужно выполнить данные команды:
$ sudo apt-get install python-picamera $ sudo apt-get install python3-picamera
После этого пользователю необходимо включить камеру Raspberry Pi с помощью инструмента настройки программного обеспечения Raspberry Pi (raspi-config):
$ sudo raspi-config
Затем выберите « Включить камеру» и «Включить».
Затем пользователю необходимо перезагрузить Raspberry Pi, выполнив sudo reboot , чтобы новые настройки могли быть приняты. Теперь ваша камера Pi готова к использованию.
$ sudo перезагрузка
Программа Python этого проекта играет очень важную роль для выполнения всех операций. Прежде всего, мы включаем необходимые библиотеки, инициализируем переменные и определяем контакты для ЖК-дисплея, светодиода, двигателя и других компонентов.
импортировать RPi.GPIO как gpio import picamera время импорта m11 = 17 m12 = 27 led = 5 buz = 26 button = 19 RS = 18……………
Функция def capture_image () создана для захвата изображения посетителя с указанием времени и даты.
def capture_image (): lcdcmd (0x01) lcdprint ("Подождите…"); data = time.strftime ("% d_% b_% Y \% H:% M:% S") camera.start_preview () time.sleep (5) печать данных camera.capture ('/ home / pi / Desktop / Visitors /%s.jpg'%data) camera.stop_preview () lcdcmd (0x01) lcdprint («Изображение захвачено») lcdcmd (0xc0) lcdprint («Успешно») time.sleep (2)
Функция def gate () написана для управления двигателем постоянного тока, который здесь используется как вентиль .
def gate (): lcdcmd (0x01) lcdprint ("Добро пожаловать") gpio.output (m11, 1) gpio.output (m12, 0) time.sleep (1.5) gpio.output (m11, 0) gpio.output (m12, 0) time.sleep (3) gpio.output (m11, 0) gpio.output (m12, 1) time.sleep (1.5) gpio.output (m11, 0) gpio.output (m12, 0) lcdcmd (0x01); lcdprint ("Спасибо") time.sleep (2)
Некоторые функции определены для ЖК-дисплея, например, функция def begin () используется для инициализации ЖК-дисплея, функция def lcdcmd (ch) используется для отправки команды на ЖК-дисплей, функция def lcdwrite (ch) используется для отправки данных на ЖК-дисплей и def lcdprint (Str) используется для отправки строки данных на ЖК-дисплей. Вы можете проверить все эти функции в приведенном ниже коде.
Затем мы инициализации LCD и Pi камеры и непрерывно считывать нажимной кнопки, используя во время цикла. Каждый раз, когда нажимается кнопка, чтобы открыть ворота для входа, изображение посетителя захватывается и сохраняется в Raspberry Pi с указанием даты и времени, и ворота открываются. Проверьте полный код и демонстрационное видео ниже.
while 1: d = time.strftime ("% d% b% Y") t = time.strftime ("% H:% M:% S") lcdcmd (0x80) lcdprint ("Время:% s"% t) lcdcmd (0xc0) lcdprint ("Дата:% s"% d) gpio.output (led, 1) если gpio.input (button) == 0: gpio.output (buz, 1) gpio.output (led, 0) time.sleep (0.5) gpio.output (buz, 0) capture_image () gate () time.sleep (0.5)
Эта система мониторинга камеры имеет много возможностей для обновления, например, программное обеспечение может быть построено в компьютерном зрении или в OpenCV, чтобы сопоставить захваченное изображение посетителя с уже сохраненными изображениями и авторизовать посетителя только в том случае, если найдено какое-то совпадение, это будет открыть ворота для уполномоченных лиц.