Подготовка к работе:
1) Подготовка Raspberry PI
- Установлена ОС Raspbian
- Обновлены репозитории
- Установлены основные стандартные пакеты
2) Установка пакета motion и конфигурация локального медиа-сервера,
для трансляции потокового видео с камеры (в разрешении 320x240)
3) Установка Apache сервера и модуля PHP
4) Установка Python модуля
5) Настройка доступа к GPIO контактам
6) Подключение и настройка web-камеры
Разработка:
1) Настройка Apache сервера и создание index.php (отображение панели и видео)
Здесь реализуется разбиение на отдельные фреймы, дабы видеопоток и панели были независимы друг от друга, чуть позже будет добавлен CSS-файл дизайна
2) Интеграция видеопотока в index.php, тестирование порта 8181
3) Написание тестирующего блока для GPIO, вызывающего API (Python) - panel.php
При генерации страницы из PHP вставки вызывается shell cmd с Python-скриптом
4) Написание API (v0.1.1) для управления GPIO со стороны сервера (на Python) – test.py
5) Окончательная конфигурация и запуск демона-процесса motion
(ссылка на wiki)
|
|
6) Сборка тестовой цепи с диодом (через резистор) на 25 GPIO выходе (GPIO.OUT)
7) Настройка переадресации портов на домашнем маршрутизаторе (81.88.216.249)
на IP-адрес Raspberry Pi в локальной сети (192.168.1.41)
-- порт 80 (HTTP соединение с сервером на Raspberry Pi)
--порт 8181 (соединение для получения видео с сервера motion)
8) Установка аргумента value для API в единицу (HIGH) в PHP-скрипте, тестируем.
Диод горит, видео транслируется (УРА, получилось)
9) Установка аргумента value для API в ноль (LOW) в PHP-скрипте, тестируем.
Диод уже не горит, видео транслируется нормально (работает в нормальном режиме)
И еще немного фоток удачных испытаний системы:
P.S из личных замечаний к проекту хочу добавить что видео отображается немного кривовато (Работает только в браузере Mozilla Firefox) и первые 30-40 секунд соединение не стабильно, видео подрагивает и исправлять времени особо не было