- Почему видеонаблюдение — это не роскошь, а необходимость
- Что нужно для проекта
- Как это работает
- Настройка Raspberry Pi и Motion
- Автоматическое удаление старых видео
- Настройка Telegram для уведомлений
- Скрипт для отправки видео в Telegram
- Запуск и проверка
- Онлайн-трансляция видео
- Практический пример
- Альтернативы и расширения
- Советы и рекомендации
- Итог
Представьте: вы хотите следить за подъездом, двором или даже за своим котом, но не хотите тратиться на дорогие системы видеонаблюдения. Что делать? В этой статье я расскажу, как из обычной веб-камеры и Raspberry Pi сделать умный видеосервер с уведомлениями в Telegram и онлайн-трансляцией. Всё просто, доступно и без лишних заморочек.
Почему видеонаблюдение — это не роскошь, а необходимость
Только представьте: вы уехали в отпуск, а в подъезде кто-то пытается открыть вашу дверь. Или соседский ребёнок решил поиграть с вашим велосипедом. Без видеонаблюдения вы узнаете об этом слишком поздно. Система, которая сама отправит вам видео в Telegram при движении, — это как личный охранник, который не спит и не пьёт кофе.
Но зачем платить за дорогие камеры и сервисы, если можно использовать то, что уже есть дома? Например, старую веб-камеру и недорогую Raspberry Pi.
Что нужно для проекта
- Raspberry Pi 3B+ (или аналогичная модель)
- Веб-камера USB (например, Logitech C270)
- Карточка памяти microSD для Raspberry Pi
- Интернет-соединение
- Аккаунт в Telegram
Как это работает
- Raspberry Pi подключается к веб-камере.
- Программа Motion отслеживает движение в кадре.
- При обнаружении движения записывается видео.
- Видео автоматически отправляется в Telegram.
- Вы можете смотреть видео в реальном времени через браузер.
Настройка Raspberry Pi и Motion
Установка ОС и подготовка
Для начала установите Raspbian GNU/Linux (например, версию Buster). Это стандартная ОС для Raspberry Pi, с которой легко работать.
Проверка камеры
Подключите веб-камеру и убедитесь, что система её видит:
sudo v4l2-ctl --list-formats
Если камера поддерживает форматы YUYV или MJPG, всё отлично.
Установка Motion
Motion — это программа, которая умеет обнаруживать движение и записывать видео.
sudo apt-get install motion
После установки откройте конфигурационный файл:
sudo nano /etc/motion/motion.conf
Внесите следующие изменения:
| Параметр | Значение | Описание |
|---|---|---|
| start_motion_daemon | yes | Запускать Motion при старте системы |
| width | 1280 | Ширина видео |
| height | 720 | Высота видео |
| framerate | 10 | Частота кадров |
| threshold | 1000 | Чувствительность к движению |
| minimum_motion_frames | 3 | Минимальное количество кадров для движения |
| event_gap | 10 | Время без движения для остановки записи |
| max_movie_time | 20 | Максимальная длина видеофайла (секунд) |
| output_pictures | off | Отключить фото |
| ffmpeg_output_movies | on | Включить запись видео в формате mp4 |
| locate_motion_mode | on | Выделять движущийся объект красным квадратом |
| target_dir | /var/lib/motion | Папка для хранения видео |
| stream_port | 90 | Порт для онлайн-трансляции |
| stream_localhost | off | Разрешить доступ к стриму из сети |
| stream_authentication | login:password | Авторизация для доступа к видео |
| on_movie_end | /usr/local/bin/tg_video.sh Username %f | Скрипт для отправки видео в Telegram |
Сохраните изменения (Ctrl+O) и выйдите (Ctrl+X).
Автоматическое удаление старых видео
Чтобы карта памяти не забивалась, настроим удаление файлов старше одного дня:
sudo crontab -e
Добавьте строку:
0 1 * * * find /var/lib/motion -mtime +1 -exec rm {} \;
Настройка Telegram для уведомлений
Установка Telegram CLI
sudo apt update
sudo apt install -y libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev libssl1.0-dev git make
cd ~
git clone --recursive https://github.com/kenorb-contrib/tg.git
Исправление исходного кода
Откройте файл:
nano ~/tg/tgl/mtproto-utils.c
Найдите assert(0); и замените на //assert(0); два раза.
Сохраните и выйдите.
Компиляция
cd ~/tg
./configure
make
Авторизация
Запустите:
bin/telegram-cli -k tg-server.pub -W
Введите номер телефона и подтвердите.
Скрипт для отправки видео в Telegram
Создайте файл:
sudo nano /usr/local/bin/tg_video.sh
Вставьте:
#!/bin/bash
tgpath=/home/pi/tg
cd ${tgpath}
(sleep 3; echo "send_video $1 $2"; echo "safe_quit") | ${tgpath}/bin/telegram-cli -k tg-server.pub -W
Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/tg_video.sh
Запуск и проверка
Включите Motion в автозагрузку:
sudo systemctl enable motion
sudo systemctl start motion
sudo service motion status
При движении в поле зрения камеры в Telegram будут приходить видео.
Онлайн-трансляция видео
В браузере в локальной сети введите:
http://<IP-адрес Raspberry Pi>:90
Если настроена авторизация, введите логин и пароль.
Для доступа из интернета пробросьте порт на роутере или используйте VPN.
Практический пример
Я разместил камеру в глазке двери, закрепил её скотчем и прикрыл пластиковой коробкой. Камера смотрит прямо в подъезд. При движении — видео прилетает в Telegram, а я могу в любой момент зайти на стрим через браузер.
Альтернативы и расширения
- Используйте IP-камеры с поддержкой ONVIF Profile S для интеграции с Windows 10 без костылей.
- Для трансляции на сайт можно использовать программы с поддержкой RTSP и HLS, например, RTSP2HLS.
- Если хотите смотреть камеры на Windows, подключите IP-камеру через «Bluetooth и другие устройства» в настройках.
Советы и рекомендации
- Не забывайте обновлять прошивку камеры для безопасности.
- Настройте автоматическое удаление видео, чтобы не забивать карту памяти.
- Используйте VPN или проброс портов с осторожностью, чтобы не открыть доступ злоумышленникам.
- Для стабильной работы Raspberry Pi используйте качественный блок питания и карту памяти.
Итог
Видеонаблюдение с Raspberry Pi и веб-камерой — это не только бюджетно, но и увлекательно. Вы получаете систему, которая сама реагирует на движение, отправляет видео в Telegram и позволяет смотреть стрим онлайн. Это отличный способ защитить свой дом и получить опыт работы с Linux и сетевыми технологиями.
Включайте фантазию, экспериментируйте и делайте свой дом умнее!