- Необходими компоненти:
- Работно обяснение:
- Обяснение на веригата:
- Обяснение на конфигурацията и програмирането на Raspberry Pi:
Raspberry Pi е популярна дъска за разработка, базирана на ARM cortex, предназначена за електронни инженери и любители. Със скоростта на обработка и паметта Raspberry Pi може да се използва за извършване на различни функции едновременно, като нормален компютър, и следователно се нарича Mini Computer в дланта ви. Създадохме поредица от уроци за Raspberry Pi, за да започнем с Raspberry Pi от нулата и след това да създадем IoT проекти на високо ниво с помощта на Raspberry Pi.
Този път сме тук със следващия ни интересен проект, който е Система за наблюдение на посетителите с функционалност за заснемане на изображения. Тук свързваме Pi камерата с Raspberry Pi, за да заснемем образа на всеки посетител, който е влязъл през портата или вратата. В този проект, когато някой човек пристигне на Портата, той трябва да натисне бутон, за да отвори Портата и веднага щом натисне бутона, неговата / нейната снимка ще бъде заснета и записана в системата с Дата и час на влизане. Това може да бъде много полезно за целите на сигурността и наблюдението.
Тази система е много полезна в офиси или фабрики, където се поддържат записи за влизане на посетители за посетители и запис за посещаемост за служители. Тази система за мониторинг ще цифровизира и автоматизира всички записи и посещения на посетителите и няма да е необходимо да ги поддържате ръчно. Тази система може да се управлява от самия човек или да има оператор за натискане на бутона за много посетител. Това е добър проект за започване на работа с Pi камера и свързване с Raspberry Pi.
Необходими компоненти:
- Raspberry Pi
- Pi камера
- 16x2 LCD
- DC мотор
- IC L293D
- Звънец
- LED
- Дъска за хляб
- Резистор (1k, 10k)
- Кондензатор (100nF)
- Натисни бутона
- Свързващи проводници
- 10k пот
- Захранване
Работно обяснение:
Работата с тази система за наблюдение на Raspberry Pi е проста. При това камера Pi се използва за заснемане на изображенията на посетителите, когато се натисне или задейства бутон. Като затвор се използва двигател с постоянен ток. Винаги, когато някой иска да влезе на мястото, той / тя трябва да натисне бутона. След натискане на бутона, Raspberry Pi изпраща команда до Pi Camera, за да щракне върху картината и да я запази. След него портата се отваря за известно време и след това се затваря отново. Звуковият сигнал се използва за генериране на звук при натискане на бутон, а светодиодът се използва за индикация, че Raspberry Pi е готов да приеме натискането на бутон, което означава, че когато светодиодът е включен, системата е готова за работа.
Тук снимките на посетителите се запазват в Raspberry Pi с името, което само по себе си съдържа часа и датата на влизане. Означава, че няма нужда да запазвате дата и час поотделно на друго място, тъй като сме задали часа и датата като име на заснетата снимка, вижте изображението по-долу. Тук направихме образа на кутия като посетител, проверете пълната му демонстрация във видеото в края.
Обяснение на веригата:
Веригата на тази система за наблюдение на посетители Raspberry Pi е много проста. Тук се използва течнокристален дисплей (LCD) за показване на час / дата на влизане на посетителя и някои други съобщения. LCD е свързан към Raspberry Pi в 4-битов режим. Пиновете на LCD, а именно RS, EN, D4, D5, D6 и D7, са свързани към Raspberry Pi GPIO щифтове с номера 18, 23, 24, 16, 20 и 21. Модулът Pi камера е свързан към слота за камера на Raspberry Pi. Звуков сигнал е свързан към GPIO пин 26 на Raspberry Pi с цел индикация. Светодиодът е свързан към GPIO пин 5 чрез 1k резистор, а бутонът е свързан към GPIO пин 19 по отношение на земята, за да задейства камерата и да отвори портата. DC двигател (като Gate)е свързан с Raspberry Pi GPIO pin 17 и 27 чрез Motor Driver IC (L293D). Останалите връзки са показани на електрическата схема.
За да свържете Pi Camera, поставете лентовия кабел на Pi Camera в слота на камерата, леко издърпайте нагоре езичетата на съединителя на платката RPi и поставете лентовия кабел в слота, след което леко натиснете надолу отново, за да фиксирате лентовия кабел.
Обяснение на конфигурацията и програмирането на Raspberry Pi:
Тук използваме езика Python за програмата. Преди да кодира, потребителят трябва да конфигурира Raspberry Pi. Трябва да посочите по-долу два урока за Първи стъпки с Raspberry Pi и Инсталиране и конфигуриране на Raspbian Jessie OS в Pi:
- Първи стъпки с Raspberry Pi - Въведение
- Първи стъпки с Raspberry Pi - Конфигурация
След като успешно инсталирахме Raspbian OS на Raspberry Pi, трябва да инсталираме файловете на библиотеката на камерата Pi, за да стартираме този проект в Raspberry pi. За целта трябва да следваме дадени команди:
$ sudo apt-get инсталирате python-picamera $ sudo apt-get инсталирате python3-picamera
След него потребителят трябва да активира Raspberry Pi Camera, като използва инструмента за конфигуриране на софтуер Raspberry Pi (raspi-config):
$ sudo raspi-config
След това изберете Enable camera и Enable it.
След това потребителят трябва да рестартира Raspberry Pi, като издаде sudo рестартиране , за да може да се извърши нова настройка. Сега вашата камера Pi е готова за използване.
$ sudo рестартиране
Програмата Python на този проект играе много важна роля за извършване на всички операции. На първо място, ние включваме необходимите библиотеки, инициализираме променливи и дефинираме щифтове за LCD, LED, Motor и други компоненти.
импортиране RPi.GPIO като gpio импортиране на пикамера време за импортиране m11 = 17 m12 = 27 led = 5 buz = 26 бутон = 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) print data camera.capture ('/ home / pi / Desktop / Visitors /%s.jpg'%data) camera.stop_preview () lcdcmd (0x01) lcdprint ("Изображение заснето") lcdcmd (0xc0) lcdprint ("Успешно") time.sleep (2)
Функцията def gate () е написана за задвижване на мотора с постоянен ток, който тук се използва като Gate.
def gate (): lcdcmd (0x01) lcdprint ("Welcome") 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)
Някои функции са дефинирани за LCD като функцията def begin () се използва за инициализиране на LCD, функцията def lcdcmd (ch) се използва за изпращане на команда към LCD, функцията def lcdwrite (ch) се използва за изпращане на данни към LCD и def lcdprint (Str) функцията се използва за изпращане на низ от данни към LCD. Можете да проверите всички тези функции в кода, даден след това.
След това сме инициализирали LCD и Pi камерата и непрекъснато четем бутон с помощта на цикъл while . Всеки път, когато натиснете бутона, за да отворите портата за влизане, изображението на посетителя се заснема и записва в Raspberry pi с дата и час и портата се отваря. Проверете пълния код и демонстрационното видео по-долу.
докато 1: d = time.strftime ("% d% b% Y") t = time.strftime ("% H:% M:% S") lcdcmd (0x80) lcdprint ("Time:% s"% t) lcdcmd (0xc0) lcdprint ("Дата:% s"% d) gpio.output (led, 1) if 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)
Тази система за наблюдение на камерата има много възможности за надграждане, като софтуер може да бъде изграден в Computer Vision или в OpenCV, за да съответства на заснетата снимка на посетител с вече съхранените изображения и само упълномощава посетителя, ако е намерено някакво съвпадение, това отворете портата за упълномощени хора.