Видеоcъемка и фотосъёмка на Raspberry pi в облако
Здравствуйте, дорогие читатели моего блога.
Сегодня статья посвещана организации процесса фото - и видиосъёмки с микрокомпьютера Raspberry pi с последующим сохранением данных в облако в атоматическом режиме.
У меня стояла задача создать систему фото- и видеонаблюдения за птицами у кормушки.
Так как кормушка у меня находилась во дворе дома, то я решил собрать устройство на базе raspberry pi с подключённым проводным интернетом.
Это было сделано на случай, если влага или другие погодные условия выведут электронику из строя, то весь видео и фотоматериал останется в облаке.
В качестве оборудования я использовал:
Raspberry pi 3 B +
7 дюймовый сенсорный дисплей для микрокомпьютера
Pi camera
клавиатура, мышь
LAN провод 20 метров
удлинитель и блок питания (преобразователь 5В и 2А)
Этап первый: установка операционной ситемы.
Для микрокомпьютера существуют множество сборок ОС. Я использую официальную Raspberry PI OS
можно скачать специальную программу, которая установит вам данную систему.
Операционная система устанавливается на microSD желательно 8 - 32 Гб памяти.
Этап второй: подключение Pi camera.
Pi camera распозноётся сразу из коробки микрокомпьютером с данной операционной системой.
Подключите камеру до включения микрокомпьютера!!!! Жёстко закрепите камеру, так чтобы не произошло отсоединения шлейфа или касания контактов камер с контактами микрокомпьютера.
Частая проблема с такими камерами - это сгорание при плохом соединении контактов шлейфа и электростатический разряд. Подобная проблема не редкость, но из-за неё микрокомпьютер перестанет обнаруживать pi camera.
Этап третий: подключение сенсорного 7 дюймового дисплея.
Этот этап не обязательный, но он удобен если есть привычка работать в графическом интерфейсе без возможности подключения к большому монитору компьютера.
Этап четвёртый: драйвера для дисплея.
Для этого вам нужно перейти в нужный репозиторий на github и скачать нужную версию для вашего дисплея. Все драйвера можно найти здесь. Там же вы найдёте инструкцию по скачиванию и установке драйверов.
Скачать и установить можно несколькими способами:
используя внешний монитор с HDMI входом
Не забудьте предварительно подключить LAN провод или подключиться по WI-FI , чтобы иметь выход в интернет.
Если вы пользуетесь первым способом и вы не знаете как найти ip адрес своего микрокомпьютера, то вам могут помочь данные ИНСТРУКЦИИ
Этап пятый: Настройка конфигурации микрокомпьютера.
Для того чтобы ваша камера заработала необходимо перейти во вкладку Raspberry PI Configuration и поставить галочку напротив команды Enable для параметра "Camera"
Этап шестой: Программа для получения фото и видеозахвата с pi camera
Ранее я с ребятами разрабатывали исследовательский проект "Беспилотный автомобиль"
Как раз на базе raspberry pi и pi camera была разработана модель трёхколёсного робота ориентирующегося в пространстве.
Из данного проекта была взята программа, но убран алгоритм распознавания границ и цвета.
Код программы:
import picamera
import time
camera = picamera.PiCamera()
#camera.brightness=50
camera.exposure_compensation=25
camera.resolution=(640,480)
camera.start_preview()
i=0
while True:
t='im'+str(i)+'.jpg'
print(t)
camera.capture(t)
camera.stop_preview()
camera.close()
Данная программа делает фотографию в разрешении 640x480. Можно делать и в более лучшем качестве.
Также можно записать и видео:
import picamera
import time
camera = picamera.PiCamera()
#camera.brightness=50
camera.exposure_compensation=25
camera.resolution=(640,480)
camera.start_preview()
camera.start_recording('video.h264')
camera.wait_recording(3600) # запись видео 1 час
camera.stop_recording()
camera.stop_preview()
camera.close()
Здесь можно поэкспериментировать с разрешение и яркостью, чтобы получить оптимальный результат и при этом не такой громозкий в размере файл.
При данных разрешениях 10 часов непрерывных съёмок даёт объём около 2,2 Гб
Этап седьмой: передача файлов в облако
В качестве хранилище данных я выбирал между Яндекс Диском и Google Диском. Пока остановился на яндекс Диске.
Инструкция по настройке диска для автоматической приёма данных с устройства представлено ЗДЕСЬ
Пример передачи фотграфий на яндекс диск:
import picamera import time
import yadisk y = yadisk.YaDisk(token="###################################")
print(y.check_token())
camera = picamera.PiCamera()
#camera.brightness=50
camera.exposure_compensation=25
camera.resolution=(640,480)
camera.start_preview()
i=0
while True:
t='im'+str(i)+'.jpg'
print(t)
camera.capture(t)
#time.sleep(1)
camera.stop_preview()
camera.close()
Согласно программе, каждый промежуток времени микрокомпьютер отправляет фотографию в папку "Nablyd", расположенной на яндекс диске.
Проще всего отправлять фотографии, но ничего не мешает отправить и видео, просто в этом случае у вас займёт это больше времени.
Время на создание фотографии и её отправку уходит порядка 1 - 2 секунды, поэтому дополнительных задержек нет необходимости ставить.
Видеообзор устройства и процесса видеосъёмки.
Заключение
Данным способом пользуюсь часто и провожу наблюдение за живой природой.
Другие варианты для проведение видео и фотосъёмок не смогли реализоваться в основном для прямой трансляции или записи в облако применяют IP камеру, но у меня такой не было.