Raspberry Pi рух чутливої ​​камери: 21 кроки | 2022

Содержание

Використовуючи Raspberry Pi, модуль камери Raspberry Pi, датчик руху PIR, адаптер USB WiFi, декілька частин і кілька програм Python, ви можете побудувати камеру, яка автоматично фотографує або записує короткі відео, коли щось рухається перед камерою і автоматично завантажуватиме фотографії / відео на Dropbox. Ця інструкція показує, як створити Raspberry Pi Motion Sensitive Camera.

Моє натхнення для того, щоб зробити це, щоб допомогти задовольнити свою цікавість про поведінку моїх кішок, коли я не вдома, і визначити місцевих злочинців, які пожирають рослини в моєму саду. Є комерційні продукти, які можуть зробити це, але я думав, що було б цікаво побудувати такий, який працює саме так, як я хочу.

Raspberry Pi виконує програму Python, яка запускається після завантаження Raspberry Pi і чекає на виявлення руху датчиком PIR. Коли виявлено рух, Raspberry Pi знімає фотографію або записує коротке відео, а потім завантажує його на обліковий запис DropBox. Найважливішим для завантаження до Dropbox є те, що фото та відео доступні для перегляду власником облікового запису Dropbox на будь-якому пристрої (ноутбуці, настільному ПК, планшеті, смартфоні) з будь-якого місця, де доступний доступ до Інтернету. Після завершення завантаження програма спить протягом декількох секунд, а потім знову чекає на виявлення руху.

Існує друга постійно запущена програма Python, яка контролює перемикач на стороні камери. Ця програма висвітлює світлодіод на перемикачі, щоб ви знали, коли камера працює. Коли програма виявить, що перемикач натискається, він блимає світлодіодом у комутаторі, а потім зупиняє програмне забезпечення в Raspberry Pi. Світлодіод на вимикачі вимикається, щоб показати, що безпечно відключити живлення від камери.

Існує додатковий світлодіод, встановлений на одній з бічних панелей, що підсвічується, коли Raspberry Pi підключено до живлення.

Більш докладне пояснення того, як працює програмне забезпечення, наведено в кроці 20.

На діаграмі показано розведення різних компонентів Raspberry Pi.

Корпус для камери був зроблений з 1/8 товстою фанерою з берези з використанням лазерного різака Epilog Helix.

Це передбачає, що у вас є базовий досвід з налаштуванням і запуском Raspberry Pi, що у вас є досвід пайки, і що ви маєте доступ і досвід роботи з лазерним різаком.

Я зробив це на TechShop.

Постачання:

Крок 1: Частини

Для побудови чутливої ​​камери руху Raspberry Pi необхідні наступні частини:

Частини Raspberry Pi:

  • 1 модель Raspberry Pi B 512MB RAM (доступна на Amazon або Adafruit ID 998) (фото 1)
  • 1 карта SDHC класу 4 16 ГБ (фото 2)
  • 1 HK Mini USB WiFi 150Mbps бездротовий адаптер 150M LAN 802.11n / g / b з антеною (доступний від Amazon) або інший підтримуваний Wi-Fi адаптер для Raspberry Pi (фото 3)
  • 2 3/4 # 4-40 Гвинти та гайки (фото 4)
  • 2 1/4 круглі нейлонові розпірки для гвинтів № 4 або № 6 (фото 4)

Частини датчика PIR:

  • 1 PIR Sensor ревізія B (Parallax Product ID 555-28027) (фото 5)
  • 2 М2 12мм Гвинти машинні (фото 6)
  • 4 гайки M2 (фото 6)
  • 2 шайби М2 (фото 6)
  • 3 20см. Жіночі та жіночі перемички (Amazon B00AYCON8Y) (фото 25)

Частини камери Raspberry Pi:

  • 1 Камера для фотоапаратів Raspberry Pi (доступна на Amazon або Adafruit ID 1367) (фото 7)
  • 4 гвинти M2 10мм (фото 8)
  • 4 шайби М2 (фото 8)
  • 4 гайки M2 (фото 8)
  • 12 # 4 Плоскі нейлонові шайби (номер Amazon Supply B000FN1560) (фото 8)
  • 1 16мм підсвічування кнопка червоного миттєвого перемикача (Adafruit ID 1439) (фото 9)
  • Трубки термоусадочні (діаметр 1/16 ) (фото 10)
  • 4 12 дротові дроти (один торцевий штифт, один кінцевий шпилька) (Sparkfun номер PRT-09385) (фото 11)
  • 1 470 Ом 1/4 Вт (фото 12)

Частини індикатора живлення:

  • 1 Червоний світлодіодний кронштейн (Jameco № 141111) (фото 13)
  • 2 12 дротові дроти (один торцевий штифт, один кінцевий шпилька) (Sparkfun номер PRT-09385) (фото 14)
  • Трубки термоусадочні (діаметр 1/16 ) (фото 10)
  • 1 470 Ом 1/4 Вт (фото 12)
  • 2 96мм білі пластмасові дроти для дроту (номер деталі Liberty P604AEH-W-C у Home Depot) (фото 15)
  • 4 # 8 x 1/2 Гвинти з листового металу для використання з ручками (не використовуйте гвинти, які поставляються з ручкою — вони занадто довгі) (фото 16)
  • 24 # 4-40 1/2 Гвинти та гайки для утримання корпусу разом (фото 17)
  • 1 аркуш березової фанери розміром 24 x 18 1/8 (3 мм)

Частини нижньої панелі:

  • 1 1 / 4-20 Кругла гвинтова пластина (номер сервісної частини 545468) (фото 18)
  • 4 # 6-32 7/16 Гвинти з головкою панорами (номер сервісної частини 90272A147) (фото 19)
  • 4 # 6-32 Гайки (номер сервісу 90480A007) (фото 19)

Кабелі USB панелі:

  • 1 Кабель USB для підключення панелі — тип B жіночий до мікро-B чоловічого (Adafruit ID 937) (фото 20)
  • 1 USB-кабель для кріплення панелей — тип A чоловічий тип A жіночий (Adafruit ID 908) (фото 21)
  • 1 акумулятор USB для Raspberry Pi — 4400mAh — 5V @ 1A (Adafruit ID 1565) (фото 22)
  • 1 адаптер живлення USB 5 вольт 2 ампер (фото 23)
  • 1-фут USB-кабель типу USB з роз'ємом типу B і роз'ємом типу A (також звані кабелями USB-принтера) (фото 24)

Інструменти (не зображені):

  • Паяльник і припій
  • Джерело тепла для термозбіжної трубки (теплова гармата, сірники, запальничка або свічка)
  • Різаки дроту
  • Стриппери для дроту
  • Маленька головка-викрутка Philips
  • Гемостат
  • Плоскогубці ніс
  • Стрічка художника (щоб допомогти утримувати гвинти на передній панелі)
  • Наждачний папір 120 сорту

Обладнання для встановлення програмного забезпечення Raspberry Pi (не зображено):

  • Монітор комп'ютера HDMI
  • Клавіатура USB
  • Миша USB
  • Кабель Ethernet

Крок 2: Виріжте деталі корпусу за допомогою лазерного різака

Перший крок полягає в тому, щоб вирізати деталі корпусу з аркуша березової фанери 1/8 (3 мм). Для вирізання та гравіювання деталей використовувався лазерний різак Epilog Helix на 45 Вт на TechShop. можна вирізати з одного 24 x 18 аркуша фанери.

Конструкція показана на першій схемі. Чорні лінії будуть розрізані лазерним різаком; сині лінії будуть протравлюватись, використовуючи зниження потужності; зелений текст буде вигравіровано; червоні лінії не будуть вирізані — вони включені, щоб показати контур деталей. Я використав можливість відображення кольорів лазерного різака для визначення параметрів для різання та гравірування. Використовувані параметри відображаються у правій частині екрана Відображення кольорів.

Всі готові деталі разом показані на фото 1 і 2.

  • Лицьова панель з крупним планом гравіювання (фото 3 — 10)
  • Задня панель (фото 11)
  • Нижня панель (фото 12)
  • Ліва панель (фото 13)
  • Права панель (фото 14)
  • Верхня панель (фото 15)

Фото 16 і 17 показують крупний план вирізів, які будуть використовуватися для гвинтів і гайок, які утримують корпус разом. Як вони використовуються описані в кроці 13.

Сліди опіку, що залишилися лазером, можна видалити легким шліфуванням, використовуючи наждачний папір 120.

Файли дизайну лазерного різання знаходяться у файлі ZIP, який додається до цього кроку. Файл містить файли CorelDraw (.cdr) і Encapsulated PostScript (.eps) для проектування та файлу для завантаження даних відображення кольорів для лазерного різака. Див. Стор. 113 http: //www.epiloglaser.com/downloads/pdf/mini_he …, щоб дізнатися, як використовувати відображення кольорів.

Крок 3: Підготуйте перемикач вимикання

Використовуйте наступні частини: кнопковий перемикач (фото 1), перемички (фото 2), резистор 470 Ом (фото 3), і термоусадочна трубка (фото 4), підготуйте вимикач:

  1. Вирізати чотири довжини термозбіжної трубки (фото 5).
  2. Відсікають чоловічі кінці перемичок проводів (фото 6).
  3. Зігніть кінці проводу (фото 7).
  4. Вставте термозбіжну трубу на дроти (фото 8).
  5. Використовуючи фото 9 як напрямну до клем на вимикачі, припаяйте резистор до позитивного (+) клеми (фото 10).
  6. Прикріпіть і припайте червоний дріт до резистора (фото 11 і 12). Відсікання надлишкового дроту на резисторі.
  7. Прикріпіть і припайте чорний провід до негативного (-) терміналу (фотографії 13 і 14), використовуючи фотографію 9 в якості орієнтира.
  8. Приєднайте і припайте сині дроти до інших клем (фото 15).
  9. Просуньте трубку термозбіжної резистора над резистором і над відкритими проводами, припаяними до клем (фото 16). Використовуйте теплову гармату, запальничку, свічку або відповідну суміш, щоб усунути трубку.

Завершений перемикач показаний на фото 17.

Крок 4: Підготуйте індикатор живлення

Запустіть світлодіодний індикатор живлення за допомогою світлодіодного кріплення (фото 1) і одного резистора 470 Ом (фото 2).

  1. Використовуючи різаки дроту, скоротити довжину резистора (фото 3).
  2. Затисніть резистор на довший світлодіодний дріт за допомогою гемостата (фото 4 і 5).
  3. Припаюйте дроти разом і зніміть гемостат (фото 6)
  4. Вирізати дві довжини термозбіжної трубки (фото 7)
  5. Вирізати чоловічі кінці двох дротових дротів (фото 8)
  6. Вставте термозбіжну трубу на дротики перемички і роздягніть кінці (фото 9)
  7. Прикріпіть і припайте червоний дротяний провід до резистора (фото 10 і 11). Відсікання надлишкового дроту на резисторі (фото 12).
  8. Підключіть і припаяйте чорний дротяний провід до іншого дроту на світлодіоді (фото 13 і 14).
  9. Перемістіть термозбіжну трубу через відкриті дроти (фото 15). Використовуйте теплову гармату, запальничку, спичку або свічку, щоб згорнути трубку.

Заповнений індикатор живлення світлодіода показаний на фото 16.

Крок 5: Зберіть ліву панель

Зберіть ліву панель наступним чином:

  1. Прикрутіть одну з ручок (фото 2) до лівої панелі (фото 1) за допомогою двох гвинтових металевих гвинтів № 8 x 1/2 (фото 3), як показано на фото 4 і 5.
  2. Приєднайте жіночий кабель типу B до мікро-B панельного USB-кабелю (фото 6) до панелі, як показано на фотографіях 7 і 8.
  3. Прикріпіть перемикач вимкнення (фото 9) на панель, як показано на фотографіях 10 і 11.
  4. Прикріпіть індикатор живлення (фото 12) до панелі, як показано на фото 13 і 14.

Ліва панель завершена.

Крок 6: Зберіть праву панель

Зберіть праву панель наступним чином:

  1. Прикрутіть одну з ручок (фото 2) до правої панелі (фото 1) за допомогою двох гвинтових металевих гвинтів № 8 x 1/2 (фото 3), як показано на фото 4 і 5.
  2. Прикріпіть шпильку типу А до кабелю USB жіночої панелі типу А (фото 6), як показано на фотографіях 7 і 8.

Права панель завершена.

Крок 7: Зберіть нижню панель

Зберіть нижню панель наступним чином:

  • Вкрутіть круглу гвинтову пластину (фото 2) на нижню панель (фото 1) за допомогою чотирьох гвинтів та гайок головки машини № 6-32 7/16 (фото 3), як показано на фото з 4 до 6. Надійно затягніть гвинти.

Завершена нижня панель показана на фото 7.

Крок 8. Створіть додаток Dropbox Platform

На цьому кроці ви створите додаток для платформи Dropbox. Створення програми дозволить Raspberry Pi руху чутливої ​​камери, щоб мати можливість завантажувати фотографії і відео на ваш рахунок Dropbox.

Створіть обліковий запис Dropbox, якщо його вже немає. Перейдіть на сторінку http://www.dropbox.com і натисніть кнопку Зареєструватися. Якщо ви вже маєте обліковий запис Dropbox, увійдіть до Dropbox.

  1. Після входу перейдіть на сторінку http://www.dropbox.com/developers. Натисніть Консоль програм, як показано на екрані 1. Відобразиться сторінка Ваші програми.
  2. Натисніть кнопку Створити програму (знімок екрана 2).
  3. Виберіть параметр Dropbox API app (знімок екрана 3).
  4. Виберіть параметр Файли та сховища даних (захоплення екрана 4).
  5. Виберіть параметр Так — Мій додаток потребує лише доступу до файлів, які він створює (захоплення екрана 5).
  6. Використовуйте RPi-MS-Camera як назву для програми і введіть її в текстове поле (захоплення екрану 6).
  7. Натисніть кнопку Створити додаток (знімок екрана 7).
  8. Тепер ви доручили вашій програмі доступ до Dropbox. Друк екрана. На наступному етапі вам потрібно буде ввести клавішу App та секрет програми (екран 8) на Raspberry Pi.

Крок 9: Підготуйте програмне забезпечення Raspberry Pi

The Перший крок при підготовці Raspberry Pi — встановлення та налаштування програмного забезпечення Raspbian:

  1. Підключіть камеру Raspberry Pi до Raspberry Pi за допомогою інструкцій, що входять до модуля камери.
  2. Завантажте та завантажте Raspbian (http://www.rasbian.com/RaspbianImages) на карту SD. Інструкції, як це зробити, можна знайти тут (http://learn.adafruit.com/adafruit-raspberry-pi-lesson-1-preparing-and-sd-card-for-your-raspberry-pi/overview). Я використав версію Raspbian у вересні 2014 року: я рекомендую використовувати цю версію або пізніше для цього проекту: не використовуйте попередню версію.
  3. Вставте SD-карту в гніздо Raspberry Pi.
  4. Підключіть Raspberry Pi до дисплея, клавіатури, миші, локальної мережі з доступом до Інтернету, а також 5-вольтового USB-адаптера живлення, як показано на схемі Raspberry Pi Setup.
  5. Завантажте Raspberry Pi і виконайте першу конфігурацію часу відповідно до інструкцій тут (http://learn.adafruit.com/adafruits-raspberry-pi-lesson-2-first-time-configuration). При налаштуванні Raspbian, не налаштовуйте графічний інтерфейс користувача для автоматичного запуску. Переконайтеся, що ввімкнено камеру, і це гарна ідея змінити пароль для Raspberry Pi в цей час.

The другий крок це завантажити програми Python, які керують вимикачем вимкнення, і які знімають фотографії або фотографують, коли виявлено рух. Створіть каталог, в якому будуть знаходитися програми Python і де будуть зберігатися фотографії та відео за допомогою цих команд:

cd / home / пік mkdir python_programs cd python_programs mkdir camera_output

Виконайте такі дві команди, щоб отримати програми Python:

wget http://s3-us-west-1.amazonaws.com/talk2bruce/instructables/rpi-ms-camera/rpi-halt-btn.py wget http: // s3-us-west-1. amazonaws.com/talk2bruce/instructables/rpi-ms-camera/rpi-ms-camera.py

The третій крок це встановити завантажувач Dropbox і налаштувати його, використовуючи ключ App і App секрет від кроку 8 Створення App Dropbox платформи. Інсталюйте завантажувач із такими командами:

cd / home / pi git clone http://github.com/andreafabrizi/Dropbox-Uploader.git

якщо ця команда не вдасться, вам потрібно встановити git за допомогою команди нижче, а потім повторно видати команду git clone вище:

sudo apt-get встановлює git-core

Після встановлення Dropbox-Uploader з git перейдіть до каталогу програм Python за допомогою наступної команди:

cd / home / pi / python_programs

Надайте команду нижче, щоб налаштувати завантажувач Dropbox:

sudo python rpi-ms-camera.py -перший раз

Ви повинні ігнорувати п'ять речей, які перераховані на екрані як справи — ви зробили ті, що зроблені на Кроці 8 цього інструктажу. Що потрібно зробити, це ввести ключ програми та секретний додаток з кроку 8 і вибрати a для типу дозволу (див. Першу стрілку на скріншоті 1). Після того, як ви натиснете клавішу Enter на тип дозволу, вам буде запропоновано ввести веб-адресу в браузер (див. Другу стрілку на скріншоті 1). Уважно запишіть веб-адресу та перейдіть до комп'ютера з веб-браузером і введіть його. Після того, як ви введете його, веб-браузер відобразить сторінку з проханням дозволити програмі отримати доступ до папки на Dropbox (скріншот 2). Натисніть кнопку Дозволити. На наступній веб-сторінці буде показано, що програма успішно підключена до Dropbox (знімок екрана 3). Натисніть Enter, як зазначено на екрані Raspberry Pi. Ви отримаєте підтвердження, що налаштування завершено на Raspberry Pi, як показано на скріншоті 4. Якщо це не вдасться, це, швидше за все, пов'язано з помилковим введенням ключа програми, секретної програми або веб-адреси. Повторіть спробу, ввівши команду вище і знову введіть інформацію.

Далі перевірте підключення до Dropbox, виконавши команду:

sudo python rpi-ms-camera.py -тест

Ця команда надішле файл, що містить IP-адресу вашого Raspberry Pi, у Dropbox. Вивід команди показаний на скріншоті 5. Ви повинні знайти файл у програмі у папці App у вашому обліковому записі Dropbox.

The четвертий крок це налаштувати Raspberry Pi для використання з бездротовою мережею. Відредагуйте файл wpa_supplicant.conf за допомогою команди:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Додайте наступні рядки до нижньої частини файлу, замінивши назву вашої мережі Wi-Fi та пароль WiFi, як показано, і збережіть файл. Якщо ви не знайомі з тим, як користуватися нано редактором, howtogeek має гарний посібник для початківців Nano.

Файл повинен виглядати так, як показано на скріншоті 6. Більш детальну інформацію про те, як налаштувати Raspberry Pi для різних видів мереж wifi можна знайти на сайті Sparkfun.

The п'ятий крок це налаштувати систему на запуск програми Python, яка контролює і висвітлює кнопку вимикання під час процесу завантаження системи. Відредагуйте файл rc.local за допомогою команди:

sudo nano /etc/rc.local

Додайте команду рядка нижче в нижній частині файлу перед рядком із написом exit 0 і збережіть файл.

Файл повинен виглядати так, як на скріншоті 7.

The шостий крок полягає в тому, щоб налаштувати систему для запуску програми камери Python, коли WiFi на Raspberry Pi запущено і запущено. Після запуску програми для камери Python він чекає на виявлення руху, а потім знімає фотографії або короткі відео та завантажує їх у Dropbox. Команда для запуску програми розміщується у файлі etc / network / interfaces. Відредагуйте файл командою:

sudo nano / etc / network / інтерфейси

Якщо ви бажаєте зробити фотографію камерою, додайте до нижньої частини файлу таку команду:

post-up python /home/pi/python_programs/rpi-ms-camera.py -p

Якщо ви бажаєте, щоб камера записувала відео, додайте до нижньої частини файлу таку команду:

post-up python /home/pi/python_programs/rpi-ms-camera.py -v

Скріншот 8 показує, як повинен виглядати файл при налаштуванні фотографування.

Конфігурація Малини зараз завершена.

The останній крок це вимкнення Raspberry Pi за допомогою команди:

Після того, як Raspberry Pi вимикається, від'єднайте всі кабелі, але залиште SD-карту в гнізді на Raspberry Pi.

Крок 10: Встановіть датчик PIR на передню панель

За допомогою двох машинних гвинтів М2, двох шайб М2 і чотирьох гайок М2 (фото 2) встановіть датчик PIR (фото 3) на передню панель (фото 1) наступним чином:

  1. Розташуйте дві шайби над отворами на зовнішній стороні (не гравіровані) панелі і вставте гвинти машини (фото 4).
  2. Утримуючи гвинти на місці (стрічка художника може допомогти утримувати гвинти в положенні), переверніть панель і закрутіть дві гайки (фото 5).
  3. Вставте датчик PIR на гвинти і закріпіть його за допомогою двох гайок (фото 6). Переконайтеся, що штирі роз'єму спрямовані вниз над гравіровкою PIR Sensor.

Встановлений датчик PIR показаний на фото 7.

Крок 11: Установіть Raspberry Pi на передню панель

Використовуючи два гвинти, гайки і нейлонові розпірки (фото 1), закріпіть Raspberry Pi на передній панелі наступним чином:

  1. Вставте гвинти у зовнішню (негравірувану) сторону панелі (фото 2).
  2. Утримуючи гвинти на місці (стрічка художника може допомогти утримувати гвинти в положенні), переверніть панель (фото 3).
  3. Вставте нейлонові прокладки на гвинти (фото 4).
  4. Обережно вставте Raspberry Pi на гвинти (фото 5).
  5. Закріпіть Raspberry Pi за допомогою гайок (фото 6). Не перетягуйте гайки: вони повинні бути щільними, а не горильними.

Крок 12: Встановіть камеру на передню панель

Використовуючи чотири гвинти M2 10мм, чотири шайби М2, дванадцять чотирьох плоских нейлонових шайб і чотири гайки М2 (фото 2) встановлюють камеру Raspberry Pi (фото 1) таким чином:

  1. Покладіть шайбу над кожним з отворів на зовнішній стороні панелі (не вигравірувана сторона) і вставте чотири гвинти (фото 3).
  2. Утримуючи гвинти на місці (стрічку художника можна використовувати для утримання гвинтів у положенні), переверніть панель і посуньте два нейлонові прокладки на кожному з гвинтів (фото 4).
  3. Встановіть камеру на гвинти, поставте нейлонову прокладку на гвинт і обережно загвинтіть гайку (фото 5 і 6). Не затягуйте гайками. Встановлена ​​камера показана на фотографіях 7.

Заповнена передня панель з датчиком PIR, камерою і Raspberry Pi показана на фото 8 і 9.

Крок 13. Зберіть корпус

Корпус для камери Raspberry Pi Motion Sensitive Camera підтримується разом з гвинтами та гайками # 4-40 1/2 : приклеювання не потрібне. Для цього потрібно накрутити гайки на гвинти (фото 2), панелі разом (фото 1), помістіть гвинт в Т-слот (фото 3) і обережно затягніть за допомогою шуруповерта, утримуючи гайку пальцями.

Тепер зібрати справу так:

  1. Почніть з верхньої панелі (фото 4) і прикріпіть її до лівої панелі за допомогою вимикача вимкнення (фото 5).
  2. Прикріпіть ліву панель до нижньої панелі (фото 6).
  3. Прикріпіть інший кінець нижньої панелі до правої панелі (фото 7).
  4. Прикріпіть інший кінець правої панелі до верхньої панелі (фото 8). Бокові панелі тепер повинні бути прикріплені та закріплені за допомогою гвинтів та T-гнізд.
  5. Розташуйте бічні панелі, як показано на фото 9, і обережно натисніть на верхню панель (фото 10). Переконайтеся, що гравірування на внутрішній стороні передньої панелі відповідає розміщенню бічних з'єднувачів (див. Фото 16).
  6. Закріпіть на місці гвинтами та T-слотами, як показано на фотографіях 11-14.

Корпус слід надійно утримувати разом і виглядати як фотографії 15 і 16. Задня панель буде прикріплена до корпусу на кроці 18.

Крок 14: Підключіть внутрішні кабелі USB

Тепер, коли корпус здебільшого зібраний (фото 1), прийшов час почати підключення компонентів.

Підключіть чоловічий USB-роз'єм типу А одного USB-роз'єму типу А на Raspberry Pi (фото 2). Цей роз'єм USB буде використовуватися для підключення USB-адаптера WiFi до Raspberry Pi.

Підключіть роз'єм USB micro B до гнізда USB для підключення USB до роз'єму Raspberry Pi (фото 3). Цей роз'єм USB буде використовуватися для забезпечення живлення Raspberry Pi.

Крок 15: Підключіть дроти GPIO

На цьому етапі світлодіодний індикатор живлення, датчик PIR і вимикач вимкнення будуть підключені до контактів GPIO на Raspberry Pi (фото 1).

  1. Використовуючи схему Підключення Raspberry Pi Motion Sensitive Camera — Крок 1 і фотографії 2 і 3 в якості напрямних, підключіть перемички PIR датчика до гнізда GPIO 23, живлення + 3.3V і землі. Програма Python, запущена на Raspberry Pi, буде контролювати GPIO pin 23, і коли буде виявлено рух, він прихопить фотографію або запише відео.
  2. Використовуючи схему Підключення Raspberry Pi Motion Sensitive Camera — Крок 2 і фото 4 в якості орієнтира, підключіть індикатор живлення LED до потужності + 5V і землі. Коли Raspberry Pi має владу, світлодіод буде світитися.
  3. Використовуючи схему Підключення Raspberry Pi Motion Sensitive Camera — Крок 3 і фото 5 в якості орієнтира, підключіть сині дроти від вимикача до вимикача GPIO 25 і землі (не має значення, який дріт ви підключите до якого штифта). Програма Python на Raspberry Pi буде контролювати перемикач, і коли натиснути кнопку, програма видасть команду для вимкнення Raspberry Pi.
  4. Використовуючи схему Підключення Raspberry Pi Motion Sensitive Camera — Крок 4 і фото 6 в якості орієнтира, підключіть провід живлення від вимикача до блоку живлення GPIO 4 і заземлення. Програма Python на Raspberry Pi буде висвітлювати перемикач, коли Raspberry Pi запускається і вимикає світлодіод з вимиканням Raspberry Pi.

Камера Raspberry Pi Motion Sensitive з вбудованою внутрішньою проводкою показана на фото 7.

Крок 16: Зберіть антену WiFi

Приєднайте антену до адаптера USB WiFi, як показано на фотографіях.

Крок 17: Налаштування та тестування камери

Налаштуйте і перевірте Raspberry Pi Motion Sensitive Camera наступним чином:

  1. Приєднайте камеру до штатива (фотографії 1 і 2).
  2. Підключіть адаптер USB WiFi до розніму USB на фотокамері (фото 3).
  3. Прикріпіть 6-футовий кабель USB до камери (фото 4).
  4. Підключіть інший кінець кабелю USB до адаптера живлення USB (фото 5) і підключіть адаптер живлення до розетки змінного струму.
  5. Світлодіодний індикатор живлення повинен світитися (фото 6).
  6. Через хвилину або дві, вимикач вимикання повинен світитися, вказуючи, що Raspberry Pi працює і працює (фото 7).
  7. Світлодіод на адаптері USB WiFi також повинен бути підсвіченим (фото 8).
  8. Датчик PIR буде світитися протягом декількох секунд, коли він сам калібрується (фото 9).
  9. Якщо у вас є комп'ютер з Windows, створений за допомогою Dropbox, ви побачите спливаюче повідомлення про те, що камера завантажила текстовий файл на ваш обліковий запис Dropbox (скріншот 10). Цей файл завантажується щоразу при запуску камери; файл містить IP-адресу, призначену для Raspberry Pi.
  1. Рухайте рукою перед датчиком PIR. Сенсор повинен світитися (фото 9).
  2. Протягом однієї хвилини на вашому комп'ютері повинно з'явитися повідомлення про те, що фото (або відео, залежно від того, як ви налаштували камеру) було завантажено (знімок екрана 11).
  3. Перейдіть до RPi-MS-Camera у каталозі Apps у вашій папці Dropbox і повинні побачити текстовий файл і фотографію, зроблену камерою (скріншот 12).
  4. Повторіть ці три дії кілька разів, щоб переконатися, що все працює належним чином.

Налаштування та тестування завершено!

Крок 18: Заключна збірка

Останнім кроком у створенні камери чутливості руху Raspberry Pi є прикріплення задньої панелі.

  1. Розташуйте панель на задній частині корпусу камери та обережно натисніть на місце (фото 1).
  2. За допомогою гвинтів та гайок # 4-40 1/2 накрутіть гайки на гвинтах і помістіть гвинт у T-слот (фото 2) і обережно затягніть за допомогою викрутки, тримаючи гайку пальцями.

Крок 19: Вуаля!

Камера для чутливого руху Raspberry Pi зараз завершена!

Фотографії з 1 по 7 показують роботу камери.

Якщо фотоапарат буде використовуватися в місці, де незручно або неможливо отримати живлення від розетки змінного струму, можна використовувати акумуляторну батарею 5 вольт 1 ампер (фото 8 і 9). Згідно з даними Adafruit, блок живлення на фотографіях приведе в дію безголовий Raspberry Pi (без клавіатури, миші, дисплея) з міні-адаптером WiFi, підключеним до порту USB близько 7 годин.

Крок 20: Як працюють програми Python

Існують два клієнтські програми Python, що використовуються в цій інструкції, щоб створити Raspberry Pi Motion Sensitive Camera.

rpi-ms-camera.py

Першу програму rpi-ms-camera.py запускає команда:

post-up python /home/pi/python_programs/rpi-ms-camera.py -p

у системному файлі / etc / network / interfaces. Команда post-up запускається, коли мережні інтерфейси запущені.

У списках з 1 по 6 показаний вихідний код програми rpi-ms-camera.py:

Рядки 4-26 (лістинг 1) імпортують необхідні бібліотеки і визначають константи, які будуть використовуватися в програмі.

  • Рядки 4-6 імпортують бібліотеки, необхідні для видачі системних команд, керування модулем камери, отримання часу і дозволяють програмі читати і записувати піни GPIO.
  • Рядок 10 визначає, який висновок GPIO використовується для виявлення руху, виявленого датчиком PIR.
  • Рядки 13 і 14 є константами, що використовуються для вихідних повідомлень, які вказують на режим роботи камери.
  • Рядок 17 визначає, який каталог буде використовуватися для зберігання останньої фотографії або відео, знятого камерою.
  • Рядок 20 визначає розташування програми, яка використовується для завантаження файлів у Dropbox.
  • Рядок 23 встановлює кількість секунд відео, які будуть записані при виявленні руху. Це можна змінити відповідно до ваших потреб. Чим більше секунд відео буде записано, тим більше часу потрібно для завантаження до Dropbox.
  • Рядок 26 встановлює кількість секунд, які програма чекатиме після фотографування або запису відео. Ця затримка використовується для запобігання зйомці великої кількості фотографій / відео в рядку однієї події. Це можна змінити, якщо потрібно робити більш часті або рідше фото / відео.

Рядки 28-31 (лістинг 2) визначають функцію generate_file_name. Ця функція використовується для створення унікального імені файлу на основі дати та часу. Це ім'я файлу буде використано для фотографій або відео. Формат генерованого імені — yyyy-mm-dd-hh-MM-ss-tz, де yyyy — рік, mm — місяць, dd — день, hh — година, MM — хвилина, ss — секунд, а tz — часовий пояс.

Рядки 33-46 (лістинг 2) визначають функцію motion_detected. Ця функція викликається, коли датчик PIR виявив рух. Ця функція знімає фотографію або записує відео, завантажує фотографію або відео в Dropbox і видаляє файл з Raspberry Pi.

  • Рядок 36 створює ім'я файлу, який буде використовуватися для фотографії або відео.
  • Рядок 37 друкує повідомлення, що вказує, що рух було виявлено.
  • Рядки 38-40 виконуються, якщо режим камери встановлено для фотографування.
  • Рядок 39 додає розширення .jpg до назви файлу.
  • Рядок 40 викликає функцію snap_photo для фотографування.
  • Рядок 42 додає розширення .h264 до імені файлу.
  • Рядок 43 викликає функцію record_video для запису відео.

Рядки 48-53 (лістинг 3) визначають функцію snap_photo. Ця функція використовується для фотографування.

  • Рядок 51 встановлює роздільну здатність для фотографії.
  • Рядок 52 знімає фотографію та зберігає її у вказаному файлі.
  • Рядок 53 друкує повідомлення про те, що зроблено фотографію.

Рядки 55-64 (лістинг 3) визначають функцію record_video. Ця функція використовується для запису відео.

  • Рядок 59 встановлює роздільну здатність відео.
  • Рядок 60 починає записувати відео та зберігає його у вказаному файлі.
  • Рядок 61 друкує повідомлення, що вказує, що почався запис відео.
  • Рядок 62 змушує програму чекати до вказаної кількості секунд.
  • Рядок 63 припиняє запис відео.
  • Рядок 64 друкує повідомлення, що вказує, що відео зупинилося.

Рядки 66-74 (лістинг 3) визначає функцію upload_to_dropbox. Ця функція завантажить вказаний файл у Dropbox.

  • Рядок 70 витягує лише ім'я файлу з повної назви файлу, переданого до функції. Це буде ім'я файлу, що зберігається у Dropbox.
  • Рядок 71 друкує повідомлення про те, який файл буде завантажено.
  • Рядок 72 визначає повну команду, яка буде використана для завантаження файлу. Команда складається з назви та розташування програми завантаження, опції upload для команди, локального імені та імені, яке слід використовувати для файла на Dropbox.
  • Рядок 74 використовує системну функцію subprocess.call для виконання команди.

Рядки 76-85 (лістинг 4) визначають функцію upload_ip_address. Ця функція використовується для створення файлу з IP-адресою Raspberry Pi і завантаження його у Dropbox. Метою завантаження файлу з IP-адресою є полегшення отримання IP-адреси Raspberry Pi для цілей налагодження. З IP-адресою можна використовувати ssh для відкриття термінального сеансу для Raspberry Pi і видачі команд Linux.

  • Рядок 80 друкує повідомлення про те, що IP-адреса буде завантажена в Dropbox.
  • Рядок 81 створює ім'я файлу, який буде містити IP-адресу.
  • Рядок 82 створює команду для отримання IP-адреси з системи. Команда hostname -I, за якою йде ім'я файлу.
  • Рядок 83 використовує системну функцію subprocess.call для виконання команди.
  • Рядок 84 викликає upload_to_dropbox, щоб завантажити файл у Dropbox.
  • Рядок 85 видаляє файл з Raspberry Pi.

Рядки 87-91 (лістинг 4) визначають функцію first_time_config. Ця функція викликається під час процесу налаштування Raspberry Pi, коли видається команда python rpi-ms-camera.py -firsttime. Ця команда використовується на кроці 9 цієї інструкції.

  • Рядок 91 використовує системну функцію subprocess.call для видачі команди, яка завантажує файли в Dropbox. Коли ця команда видається вперше, вона просить користувача ввести інформацію, необхідну для підключення до Dropbox.

Рядки 93-99 (лістинг 4) визначають функцію test_dropbox. Ця функція викликається під час процесу налаштування Raspberry, коли видається команда python rpi-ms-camera.py -test. Ця команда створює тестовий файл, що містить IP-адресу Raspberry Pi і завантажує його до Dropbox. Якщо він успішно посилає файл, то Raspberry Pi правильно налаштований для використання з Dropbox. Він використовується на кроці 9 цього інструктування.

  • Рядок 97 друкує повідомлення, що вказує, що підключення Dropbox збирається пройти тестування.
  • Рядок 98 викликає функцію upload_ip_address для створення та завантаження файлу, що містить IP-адресу Raspberry Pi.
  • Рядок 99 друкує повідомлення, яке вказує, що завантаження завершено, і просить користувача перевірити папку програми Dropbox, щоб перевірити, чи файл успішно завантажений.

Рядки 100-133 (лістинг 5) є початком основної програми.

  • Рядки 107-110 є коментарями, які показують всі варіанти програми.
  • Рядок 113 перевіряє, чи були вказані будь-які параметри. Якщо були вказані опції, програма продовжує працювати в рядку 114. Якщо опцій не було вказано, програма переходить до рядка 127.
  • Рядки 114-115 перевіряють, чи було вказано опцію для зйомки фотографій, і, якщо так, встановлює режим фотокамери для фотографій.
  • Рядки 116-117 перевіряють, чи було вказано опцію для запису відео, і, якщо це так, встановлює режим відео для відео.
  • Рядки 118-120 перевіряють, чи було вказано перший параметр часу, і, якщо так, викликає функцію first_time_config, а потім виходить з програми.
  • Рядки 121-123 перевіряють, чи був вказаний параметр тесту, а якщо так, викликає функцію test_dropbox, а потім виходить з програми.
  • Рядки 124-126 досягаються, якщо вказано інший варіант. Оскільки це нерозпізнаний параметр, друкується повідомлення про помилку, і програма виходить.
  • Рядки 127-133 виконуються, коли не було вказано жодних опцій. Рядки 128-132 роздруковують те, що всі допустимі параметри є, а потім рядок 133 виходить з програми.

Рядки 135-164 (лістинг 6) виконують ініціалізацію для основної програми.

  • Рядки 135-136 друкують повідомлення, що вказують на Raspberry Pi Motion Sensitive Camera, і який режим (фото або відео) буде використовуватися.
  • Лінії 138-141 встановлюють модуль камери. Рядок 139 ініціалізує камеру. Рядки 140-141 вказують на камеру, щоб перевернути зображення, щоб вона була з правого боку вгору з точки зору користувача. Зображення потрібне, оскільки камера встановлена ​​на передню панель.
  • Лінії 143-145 встановлюють контакт GPIO для датчика руху PIR. Існують дві схеми нумерації для контактів GPIO: рядок 144 повідомляє програмному забезпеченню GPIO, яку схему буде використовувати ця програма. Лінія 145 встановлює штифт для датчика PIR як вхідний контакт.
  • Рядок 149 викликає функцію upload_ip_address для завантаження файлу в Dropbox, що містить IP-адресу, призначену цій Raspberry Pi. Це використовується для налагодження, але також для того, щоб повідомити, що камера працює і працює.

Рядки 152-163 (лістинг 6) є основним циклом для програми.

  • Рядок 152 визначає цикл, який повторюватиметься нескінченно до вимикання Raspberry Pi.
  • Рядок 154 друкує повідомлення, що вказує, що камера буде чекати, щоб виявити рух.
  • Рядок 155 очікує на сигнал від датчика PIR, який вказує, що рух було виявлено.
  • Лінія 156 викликає функцію motion_detected, щоб зафіксувати фотографію або записати відео та завантажити її у Dropbox.
  • Рядок 157 друкує повідомлення, що вказує на те, що камера буде спати протягом кількох секунд. Метою цієї затримки є запобігання захопленню надто великої кількості фотографій / відео для одного події руху.
  • Лінія 158 спить протягом заданої кількості секунд.
  • Після завершення сну програма повертається до лінії 154.

Лінії 159-163 (лістинг 6) використовуються для цілей налагодження. Ці рядки будуть виконані, якщо програма була запущена з командного рядка, і Ctrl / C натиснуто, щоб зупинити його.

  • Рядок 160 друкує повідомлення, що вказує, що користувач зупинив програму
  • Лінія 161 зупиняє модуль камери.
  • Лінія 162 припиняє моніторинг контактів GPIO.
  • Рядок 163 зупиняє цикл, що призводить до виходу програми.

rpi-halt-btn.py

Друга програма rpi-halt-btn.py запускається під час процесу завантаження командою

у системному файлі /etc/rc.local. В кінці команди запускає програму як окремий процес, який продовжує працювати, поки програма не завершиться.

Лістинг 7 показує вихідний код програми rpi-halt-btn.py:

Рядки 2-13 ініціалізують програму.

  • Лінії 2-3 імпортують бібліотеки, необхідні для керування пристроями, підключеними до контактів GPIO, видають системні команди, дозволяють програмі спати.
  • Лінії 6-7 визначають висновок, який буде контролювати вимикач і висновок, який буде керувати освітленням світлодіода в комутаторі.
  • Лінія 8 повідомляє програмі GPIO, яка схема нумерації буде використана програмою для контактів GPIO.
  • Рядок 9 встановлює висновок GPIO для керування світлодіодом у комутаторі як вихідний контакт.
  • Лінія 10 встановлює контактний гніздо GPIO для моніторингу перемикача для того, щоб преси були вхідним виводом.
  • Рядок 11 висвітлює світлодіод в перемикачі, встановлюючи значення шпильки на true.
  • Рядок 13 друкує повідомлення, що вказує, що комутатор тепер контролюється.

Рядок 18 змушує програму чекати натискання перемикача.

Рядки 19-21 використовуються для налагодження. Коли програма запускається з командного рядка і натискається Ctrl / C, ці рядки будуть виконані.

  • Рядок 20 друкує повідомлення, що вказує, що користувач зупинив програму.
  • Рядок 21 припиняє моніторинг контактів GPIO.

Рядки 22-26 виконуються, коли натиснуто перемикач вимкнення.

  • Рядок 23-25 ​​викликає короткий вимикання світлодіода на вимикачі, щоб дати користувачеві зворотний зв'язок, що перемикач був натиснутий.
  • Рядок 23 вимикає світлодіод.
  • Рядок 24 змушує програму спати на півсекунди.
  • Лінія 25 знову вмикає світлодіод.

Коли Raspberry Pi вимикає світлодіод на вимикачі вимикання буде вимкнено, вказуючи, що це безпечно відключити камеру від розетки.

Крок 21: Можливі покращення

Як я будував Raspberry Pi чутливої ​​камери, ряд поліпшень прийшли в голову: t

Контролювати, чи знімаються фотографії або записуються відео

Камера налаштована на фотографування або записування відео, вказавши опцію -p або -v у команді post-up python /home/pi/python_programs/rpi-ms-camera.py, яка встановлена ​​в / etc / network / interfaces. t Це може бути незручно, якщо ви хочете часто змінювати режим камери. Спосіб зміни режиму в поточній конструкції полягає у використанні програми для ssh у камері, редагування файлу / etc / network / interfaces і перезавантаження.

Хорошим поліпшенням було б додати перемикач на дві позиції в нижню частину правої панелі для налаштування фотокамери або відеорежиму (фото 2). Перемикач повинен бути підключений до Raspberry Pi, а лінії 113-126 rpi-ms-camera.py повинні бути змінені, щоб видалити перевірки параметрів -p або -v. Лінія 38 повинна бути замінена перевіркою значення контакту GPIO, до якого прикріплений перемикач, щоб визначити, які дії потрібно виконати.

Зменшіть рух сторони від запуску камери

Під час використання камери я помітив, що датчик PIR досить чутливий для виявлення руху з його боків, крім руху перед датчиком. Це спричиняє фотографування або відеозапис, коли об'єкт, що рухається, може не відображатися на камері. Конструкція може бути покращена для усунення зайвих фото / відео, обмежуючи датчик.Це можна зробити за допомогою 1/2-дюймової ПВХ-втулки (фото 3 і 4), встановленої за допомогою клею або стрічки на передній панелі (фото 5 — 7).

Зменште розмір корпусу

Випадок для камери досить великий. Причиною великих розмірів є використання USB-коннекторів і кабелів. Я хотів використовувати їх, тому що мені дуже сподобалася ідея підключити адаптер WiFi і кабель живлення USB до боків корпусу. Внаслідок товщини кабельних панелей для розміщення їх у приміщенні необхідно додаткове приміщення (фото 8). Випадок може бути значно меншим, якщо Raspberry Pi монтується подібно до того, як Raspberry Pi монтується в моєму Raspberry Pi PirateBox. У цьому дизайні Raspberry Pi був встановлений поруч з бічною панеллю, щоб забезпечити доступ до роз'ємів USB для адаптера WiFi; кабель живлення був підключений безпосередньо до Pi та через отвір у бічній панелі. Роблячи це за допомогою камери, корпус буде значно меншим (фото 9).


Источник: uk.howtodogood.com