Это обзор недавнего проекта.
Другу понадобилась
- камера
- которую можно было бы установить на стенде для конференций
- дистанционно управляемая
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
на окне моего офиса.
Оно использует функцию захвата изображения с поддержкой движения для съемки нашей собаки и животных на заднем дворе.