- Необходими компоненти:
- Работно обяснение:
- Описание на веригата:
- Обяснение на конфигурацията и програмирането на Raspberry Pi:
В света на Интернет на нещата (IoT), когато разполагаме с всички технологии за революция в живота ни, е чудесна идея да разработим система, която да може да се контролира и наблюдава отвсякъде. Има много видове добри системи за сигурност и камери за домашна сигурност, но те са много скъпи, така че днес ще изградим евтина, базирана на Raspberry Pi базирана система за предупреждение за проникване, която не само ви предупреждава по имейл, но и изпраща снимката на Натрапник, когато открие такъв.
В този проект, базиран на IoT, ще изградим система за домашна сигурност, използвайки PIR сензор и PI камера. Тази система ще открие присъствието на Натрапник и бързо ще предупреди потребителя, като му изпрати предупредително писмо. Тази поща ще съдържа и снимката на нарушителя, заснета от камерата Pi. Raspberry Pi се използва за управление на цялата система. Тази система може да бъде инсталирана на главната врата на вашия дом или офис и можете да я наблюдавате от всяка точка на света, като използвате вашия имейл през интернет.
Необходими компоненти:
- Raspberry Pi
- Pi камера
- PIR сензор
- LED
- Дъска за хляб
- Резистор (1k)
- Свързващи проводници
- Захранване
От тук можете да закупите всички компоненти, използвани в този проект.
Работно обяснение:
Работата по този проект е много проста. PIR сензорът се използва за засичане на присъствие на което и да е лице, а Pi Camera се използва за заснемане на изображенията, когато присъствието, което е открил.
Винаги, когато някой или нарушител влезе в обхвата на PIR сензор, PIR сензорът задейства Pi камерата чрез Raspberry Pi. Raspberry pi изпраща команди до камерата Pi, за да щракне върху картината и да я запази. След него Raspberry Pi създава поща и я изпраща на определения пощенски адрес с наскоро щракнати изображения. Пощата съдържа съобщение и снимка на натрапник като прикачен файл. Тук използвахме съобщението „Моля, намерете прикачения файл“, можете да го промените съответно в кода, даден в края.
Тук снимките се запазват в Raspberry Pi с името, което само по себе си съдържа часа и датата на влизане. За да можем да проверим часа и датата на влизане на нарушител, като просто погледнем името на снимката, проверете изображенията по-долу. Ако сте нов с Pi Camera, проверете предишния ни урок за Система за наблюдение на посетители с Pi Camera.
Можете също така да регулирате обхвата на откриване или разстоянието на тази система, като използвате потенциометрите на PIR сензора. Научете повече за PIR сензора тук, за да регулирате обхвата, също така проверете PIR сензор, базиран на аларма за взлом.
Описание на веригата:
В тази система за предупреждение за нарушител трябва само да свържем модула Pi Camera и PIR сензора към Raspberry Pi 3. Pi Camera е свързан към слота за камера на Raspberry Pi, а PIR е свързан към GPIO пин 18. LED също е свързан към GPIO pin 17 чрез 1k резистор.
Обяснение на конфигурацията и програмирането на 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 install python-picamera $ sudo apt-get installpython3-picamera
След него потребителят трябва да активира Raspberry Pi Camera, като използва инструмента за конфигуриране на софтуер Raspberry Pi (raspi-config):
$ sudo raspi-config
След това изберете Enable camera и Enable it.
След това потребителят трябва да рестартира Raspberry Pi, като издаде sudo рестартиране , за да може да се извърши нова настройка. Сега вашата камера Pi е готова за използване.
След като настроим Pi Camera, ще инсталираме софтуер за изпращане на пощата. Тук използваме ssmtp, което е лесно и добро решение за изпращане на поща чрез команден ред или използване на Python Script. Трябва да инсталираме две библиотеки за изпращане на имейли чрез SMTP:
Sudo apt-get install ssmtp sudo apt-get install mailutils
След като инсталира библиотеки, потребителят трябва да отвори файла ssmtp.conf и да редактира този конфигурационен файл, както е показано на снимката по-долу, и след това да запази файла. За да запазите и излезете от файла, натиснете „CTRL + x“, след това „y“ и след това натиснете „enter“.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 име на хост = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = ДА UseSTARTTLS = ДА UseTLS = ДА
Също така можем да го тестваме, като изпратим тестова поща, като издадем команда по-долу, ще получите пощата на посочения имейл адрес, ако всичко работи нормално:
echo "Hello saddam" - mail -s "Testing…" [email protected]
Програмата Python на този проект играе много важна роля за извършване на всички операции. На първо място, ние включваме необходимите библиотеки за имейл, инициализираме променливи и дефинираме щифтове за PIR, LED и други компоненти. За изпращане на обикновен имейл е достатъчен smtplib, но ако искате да изпращате поща по-чист начин с тема, прикачен файл и т.н., тогава трябва да използвате MIME (Многофункционални разширения за електронна поща).
импортиране на RPi.GPIO като gpio импортиране на пикамера време за импортиране импортиране на smtplib от имейл. MIMEMultipart импортиране MIMEMultipart от имейл. MIMEText импортиране MIMEText от имейл.
След него инициализираме поща и дефинираме пощенски адрес и съобщения:
fromaddr = "[email protected]" toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Прикачен файл" body = "Моля, намерете прикачения файл"
След това създадохме функцията def sendMail (данни) за изпращане на поща:
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (image) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "вашата парола") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Функцията def capture_image () е създадена, за да улови образа на нарушителя с час и дата.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% данни) camera.stop_preview () time.sleep (1) sendMail (данни)
След това инициализирахме Picamera с някои от нейните настройки:
camera = picamera.PiCamera () camera.rotation = 180 camera.awb_mode = 'auto' camera.brightness = 55
И сега накрая, прочетохме изхода на PIR сензор и когато се покачи, Raspberry Pi извиква функцията capture_image (), за да заснеме изображението на нарушителя и да изпрати предупредително съобщение със снимката на нарушителя като прикачен файл. Използвахме функцията sendmail () insdie capture_image () за изпращане на пощата.
докато 1: ако gpio.input (pir) == 1: gpio.output (led, HIGH) capture_image () while (gpio.input (pir) == 1): time.sleep (1) else: gpio.output (led, LOW) time.sleep (0.01)
Ето как работи тази система за защита на Raspberry Pi, можете също да използвате ултразвуков сензор или IR сензор, за да откриете наличието на крадец или нарушител. По-нататък проверете пълния код и демонстрационното видео по-долу.