- Необхідні компоненти:
- Робоче пояснення:
- Опис ланцюга:
- Пояснення конфігурації та програмування Raspberry Pi:
У світі Інтернету речей (IoT), коли у нас є всі технології, щоб зробити революцію в нашому житті, чудовою ідеєю є розробка системи, якою можна керувати та контролювати з будь-якого місця. Існує безліч типів хороших систем безпеки та камер для домашньої безпеки, але вони набагато дорожчі, тому сьогодні ми побудуємо просту просту систему попередження про вторгнення на основі Raspberry Pi, яка не лише попередить вас електронною поштою, але й надішле зображення Порушник, коли виявляє будь-якого.
У цьому проекті на основі IoT ми побудуємо систему домашньої безпеки з використанням датчика PIR та камери PI. Ця система виявить наявність вторгнень і швидко попередить користувача, надіславши йому повідомлення з попередженням. Цей лист також міститиме Зображення зловмисника, зняте камерою Пі. Raspberry Pi використовується для управління всією системою. Цю систему можна встановити біля головних дверей вашого будинку чи офісу, і ви можете контролювати її з будь-якої точки світу, використовуючи свою електронну пошту через Інтернет.
Необхідні компоненти:
- Raspberry Pi
- Пі-камера
- Датчик PIR
- СВІТЛОДІОДНИЙ
- Хлібна дошка
- Резистор (1k)
- Підключення проводів
- Блок живлення
Ви можете придбати всі компоненти, що використовуються в цьому проекті, звідси.
Робоче пояснення:
Робота з цим проектом дуже проста. Датчик PIR використовується для виявлення присутності будь-якої людини, а камера Pi використовує для зйомки зображень при виявленні присутності.
Щоразу, коли хтось або зловмисник потрапляє в діапазон датчика PIR, датчик PIR спрацьовує камеру Pi через Raspberry Pi. Raspberry pi надсилає команди на камеру Pi, щоб клацнути зображення та зберегти його. Після цього Raspberry Pi створює пошту та надсилає її на визначену поштову адресу із нещодавно натиснутими зображеннями. Пошта містить повідомлення та зображення зловмисника як вкладення. Тут ми використали повідомлення “Будь ласка, знайдіть вкладення”, ви можете відповідно змінити його в Кодексі, наведеному в кінці.
Тут зображення зберігаються в Raspberry Pi з назвою, яке саме містить час і дату входу. Щоб ми могли перевірити час і дату входу зловмисника, просто подивившись на назву Зображення, перевірте зображення нижче. Якщо ви новачок у Pi Camera, перегляньте наш попередній підручник із системи моніторингу відвідувачів за допомогою Pi Camera.
Ви також можете налаштувати дальність виявлення або відстань цієї системи за допомогою потенціометрів PIR-датчика. Дізнайтеся більше про PIR-датчик тут, щоб відрегулювати діапазон.
Опис ланцюга:
У цій системі попередження про вторгнення нам потрібно лише підключити модуль Pi Pi та датчик PIR до Raspberry Pi 3. Камера Pi підключена до гнізда для камери Raspberry Pi, а PIR підключена до виводу GPIO 18. Світлодіод також підключається до виводу GPIO 17 через резистор 1k.
Пояснення конфігурації та програмування 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 installpython3-picamera
Після цього користувачеві потрібно ввімкнути Raspberry Pi Camera за допомогою інструмента конфігурації програм Raspberry Pi (raspi-config):
$ sudo raspi-config
Потім виберіть Увімкнути камеру та Увімкніть її.
Потім користувачеві потрібно перезавантажити 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 = ТА ВикористовуватиSTARTTLS = ТА ВикористовуватиTLS = ТАК
Ми також можемо протестувати його, надіславши тестовий лист, виконавши команду нижче. Ви отримаєте пошту на вказану електронну адресу, якщо все працює нормально:
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 = 'авто' camera.brightness = 55
І ось нарешті, ми прочитали вихід PIR-датчика, і коли його висота стає високою, Raspberry Pi викликає функцію capture_image (), щоб зафіксувати зображення зловмисника та надіслати попереджувальне повідомлення із зображенням зловмисника як вкладення. Для надсилання пошти ми використовували функцію sendmail () insdie capture_image () .
while 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, ви також можете використовувати ультразвуковий датчик або інфрачервоний датчик для виявлення присутності грабіжника чи зловмисника. Далі перевірте повний код та демонстраційне відео нижче.