[recovery mode] Видеоcъемка и фотосъёмка на Raspberry pi в облако

Здравствуйте, дорогие читатели моего блога.

Сегодня статья посвещана организации процесса фото — и видиосъёмки с микрокомпьютера Raspberry pi с последующим сохранением данных в облако в атоматическом режиме.

У меня стояла задача создать систему фото- и видеонаблюдения за птицами у кормушки. 

Так как кормушка у меня находилась во дворе дома, то я решил собрать устройство на базе raspberry pi с подключённым проводным интернетом.

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

В качестве оборудования я использовал:

  • Raspberry pi 3 B +

  • 7 дюймовый сенсорный дисплей для микрокомпьютера

  • Pi camera

  • клавиатура, мышь

  • LAN провод 20 метров

  • удлинитель и блок питания (преобразователь 5В и 2А)

raspberry piraspberry pilcd raspberry pilcd raspberry pi

Этап первый:  установка операционной ситемы.

Для микрокомпьютера существуют множество сборок ОС. Я использую  официальную Raspberry PI OS 

На сайте 

 можно скачать специальную программу, которая установит вам данную систему.
Операционная система устанавливается на microSD желательно 8 — 32 Гб памяти.

Этап второй:  подключение Pi camera.

Pi camera распозноётся сразу из коробки микрокомпьютером с данной операционной системой.

Подключите камеру до включения микрокомпьютера!!! Жёстко закрепите камеру, так чтобы не произошло отсоединения шлейфа или касания контактов камер с контактами микрокомпьютера.

Частая проблема с такими камерами — это сгорание при плохом соединении контактов шлейфа и электростатический разряд. Подобная проблема не редкость, но из-за неё микрокомпьютер перестанет обнаруживать pi camera.

Этап третий:  подключение сенсорного 7 дюймового дисплея.

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

Этап четвёртый:  драйвера для дисплея. 

Для этого вам нужно перейти в нужный репозиторий на github  и скачать нужную версию для вашего дисплея. Все драйвера можно найти здесь. Там же вы найдёте инструкцию по скачиванию и установке драйверов.

Скачать и установить можно несколькими способами:

Не забудьте предварительно подключить LAN провод или подключиться по WI-FI, чтобы иметь выход в интернет.

Если вы пользуетесь первым способом и вы не знаете как найти ip адрес своего микрокомпьютера, то вам могут помочь данные ИНСТРУКЦИИ

Этап пятый:  Настройка конфигурации микрокомпьютера.

Для того чтобы ваша камера заработала необходимо перейти во вкладку Raspberry PI Configuration и поставить галочку напротив команды Enable для параметра «Camera»

image-loader.svg

Этап шестой:  Программа для получения фото и видеозахвата с pi camera

Ранее я с ребятами разрабатывали исследовательский проект «Беспилотный автомобиль»

Как раз на базе raspberry pi  и pi camera была разработана модель трёхколёсного робота ориентирующегося в пространстве.

image-loader.svgimage-loader.svg

Из данного проекта была взята программа, но убран алгоритм распознавания границ и цвета.

Код программы:

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()  


Данная программа делает фотографию в разрешении 640×480.  Можно делать и в более лучшем качестве.

Также можно записать и видео:

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 камеру, но у меня такой не было.

© Habrahabr.ru