Читать «Цифровая электроника для начинающих» онлайн - страница 60
Дмитрий Витальевич Елисеев
4.15. Запускаем сервер видеотрансляции
Мы уже транслировали фото с вебкамеры через веб-сервер. Осталось сделать следующий шаг, и транслировать полноценное видео. Тем более, что для этого никаких программ писать не потребуется, достаточно лишь установить необходимые компоненты.
Введем команду: sudo apt-get install motion.
Откроем файл настроек, введем команду sudo nano /etc/motion/motion.conf.
Зададим следующие параметры:
daemon off
width 640
height 480
framerate 15
output_pictures off
ffmpeg_output_movies off
stream_port 8081
stream_quality 100
stream_localhost off
webcontrol_localhost off
Кстати, параметры output_pictures и ffmpeg_output_movies отвечают за сохранение изображений и видеороликов - программу motion также можно использовать как детектор движения. Файлы при этом будут складываться в папку /var/lib/motion. Нам эта функция не нужна, так что устанавливаем параметр output_pictures в off.
Наконец, введем команду sudo motion. Сервер работает - можно зайти в браузере на адрес http://192.168.0.104:8081 и увидеть изображение с камеры (из соображений приватности картинка не показана).
4.16 Отправляем данные через Dropbox
Мы уже рассматривали отправку данных из ESP32 в Dropbox в главе 3.13. Разумеется, то же самое можно сделать и на Raspberry Pi. Рассмотрим отправку обычного файла и текстовых данных в виде строки. Предварительно поставим библиотеки для Dropbox командой sudo apt-get install dropbox. Затем необходимо подключить приложение к Dropbox и получить ключ, как описано в главе 3.13.
Сам код весьма прост. В отличие от ESP32, здесь нам не нужно писать самостоятельно запросы к серверу, все уже реализовано в библиотеке.
import dropbox
import os
token = "V3z9NpYlRxEAAAAAAACHVdBdhVRCnXXXXXXXX"
dbx = dropbox.Dropbox(token)
# 1. Upload file "iter.txt" from the current folder
fullname = "data1.txt"
with open(fullname, 'rb') as f:
data = f.read()
try:
dbx.files_upload(data, "/" + fullname, dropbox.files.WriteMode.overwrite, mute=True)
except dropbox.exceptions.ApiError as err:
print 'Dropbox API error', err
# 2. Upload string as a file
try:
dbx.files_upload("1234567".encode(), "/data2.txt", dropbox.files.WriteMode.overwrite)
except dropbox.exceptions.ApiError as err:
print 'Dropbox API error', err
Отметим здесь 2 полезных параметра.
На этом мы закончим изучение Raspberry Pi, хотя по сути, это только начало. На этой платформе можно сделать много чего интересного, по мере появления нового материала главы будут дополняться.