Сервер камеры Raspberry Pi Zero W

Это обзор недавнего проекта.

Другу понадобилась

  • камера
  • которую можно было бы установить на стенде для конференций
  • дистанционно управляемая somehow
  • автоматически отображать каждый снимок на большом экране.

После множества ошибок, решение, на котором я остановился, очень простое.

Нет никакого программирования. Определенно достаточно просто для начинающих.

Используемое оборудование

  • Raspberry Pi Zero W / Raspberry Pi Zero 2 W
  • Модуль камеры Raspberry Pi Camera Module v2
  • Кабель для модуля камеры Raspberry Pi
  • Чехол для Raspberry Pi Zero
  • Адаптер питания Raspberry Pi
  • SDCard (micro sd)
  • Адаптер HDMI для Raspberry Pi
  • Монитор с поддержкой HDMI

ОС Raspberry Pi

Установите Raspberry Pi OS Lite (32-bit) Bullseye на SD-карту
используя Raspberry Pi Imager (rpi-imager).

Это не будет работать с 64-битной версией Raspberry Pi OS / Bullseye

Используйте дополнительные опции, чтобы установить следующие параметры перед записью:

  • hostname
  • включить ssh
  • ssh-ключ
  • настройки wifi
  • Оставьте пользователя как ‘pi’, но задайте пароль.

Оборудование

Подключите все вместе, пока ваш образ записывается.

Веб-интерфейс Rpi Cam

Следуйте инструкциям для установки Rpi Cam Web Interface

Мои параметры для установки:

cam subfolder: ""
autostart: yes
Server: nginx
port: 80
Войти в полноэкранный режим Выйти из полноэкранного режима

Параметры конфигурации, которые я использую с моим модулем камеры Raspberry Pi Camera Module v2:

image_width 3280
image_height 2464
image_quality 90

width 1080
Войти в полноэкранный режим Выйти из полноэкранного режима

/etc/raspimjpeg

Hotspot

Следуйте инструкциям для установки Hotspot

Конфигурация Hotspot использует firewalld, поэтому мне нужно было сделать еще одно изменение.

Чтобы получить доступ к службе веб-камеры, мне нужно было открыть порт 80.

pi@localhost:~ $ sudo firewall-cmd --zone=public --list-services 
dhcpv6-client ssh
pi@localhost:~ $ sudo firewall-cmd --zone=public --add-service=http --permanent
success
pi@localhost:~ $ sudo firewall-cmd --zone=public --list-services 
dhcpv6-client http ssh
Вход в полноэкранный режим Выход из полноэкранного режима

Добавьте http (порт 80) в список разрешенных служб брандмауэра

Вывод на большой экран

Я установил fbi интерфейс фреймбуфера.

Затем я использовал эту программу, чтобы получить последний снимок и вывести его на подключенный дисплей.

#!/bin/bash
export FRAMEBUFFER=/dev/fb0
export DISPLAY=:0

#Loop as long as the directory exists
while [ -d /var/www/media ]
do
    #list the files in the directory sort by timestamp and grab the newest 1
    JPG=$(ls -atr /var/www/media/*.jpg | tail -n1)
    #Push the newest image to the framebuffer with autozoom
    sudo fbi -a --noverbose -T 1 $JPG &
    #Let that image show for 60 seconds    
    sleep 60
    #Kill the framebuffer program and run another loop    
    sudo killall -9 fbi
done
Вход в полноэкранный режим Выход из полноэкранного режима

Запустите скрипт, вызвав его из ~/.bashrc и используя raspi-config для автологина под пользователем ‘pi’.

Тестирование завершено

  • Удаленное управление веб-камерой
  • Частная точка доступа Wi-fi
  • Подключение через смартфон
  • Настроить параметры камеры
  • Сделать снимок
  • Передача изображения на дисплей через fbi

Резюме

Этот проект был создан для конкретной цели, как часть стенда для конференции.
Мне сказали, что там не будет интернета или WI-FI, но они хотели иметь возможность управлять им удаленно.

Работа над этой задачей познакомила меня с несколькими простыми в установке приложениями для Raspberry Pi.

Мы могли бы сделать гораздо больше с тем же оборудованием и целью «фотобудки», но это отличное начало, которое легко сделать.

Сразу же после завершения этого проекта я использовал веб-интерфейс Rpi Cam
и развернул устройство Zero 2 W и Zero View на окне моего офиса.
Оно использует функцию захвата изображения с поддержкой движения для съемки нашей собаки и животных на заднем дворе.

Оцените статью
devanswers.ru
Добавить комментарий