📷 Подключение нового телефона как камеры
Что нужно сделать на стороне телефона, прежде чем разработчик сможет добавить точку в Pass Dish
Какой телефон
Android — да, iPhone — нет. Вся текущая связка (управление фокусом,
качеством съёмки, непрерывная работа как сервер) построена на приложении
для Android, которое отдаёт видео и принимает команды настройки по простым
HTTP-запросам. На iOS аналогичных приложений с таким же уровнем удалённого
управления камерой (фиксация фокуса на конкретном расстоянии, качество
JPEG) практически нет — iOS сильно ограничивает фоновую работу с камерой
и ручную настройку объектива для сторонних приложений. Если очень нужен
именно iPhone — сначала обсудите с разработчиком, это отдельная задача,
не «поставил и подключил» как с Android.
Требования к самому телефону: любой Android с рабочим Wi-Fi и достаточно
приличной задней камерой. Телефон становится постоянной точкой съёмки,
не используется как обычный телефон — держите его подключённым к
зарядке постоянно.
Что установить
- IP Webcam (автор Pavel Khlebalin) — из Play Store. Бесплатное
приложение-камера с HTTP-сервером внутри: отдаёт видео и фото по
ссылке, принимает команды настройки. То же приложение уже используется
на всех текущих камерах Pass Dish.
- Tailscale — из Play Store. Отдельная VPN-сетка, через которую
сервер видит телефон, даже если физически они в разных Wi-Fi
(проброс портов через роутер не нужен и не настраивается).
Настройка IP Webcam
Открыть приложение → прокрутить вниз →
Start server. Дальше зайти
в настройки (шестерёнка вверху) и задать:
| Раздел | Что поставить | Зачем |
| Video preferences → Video resolution | максимум из списка (обычно 1920×1080) | чётче картинка |
| Video preferences → Quality | 90 | по умолчанию 49 — заметные блочные артефакты сжатия |
| Режим фокуса | off (зафиксирован) | иначе автофокус «гуляет» каждый раз, когда в кадре что-то меняется — задержки и нестабильность |
| Расстояние фокуса | подобрать после монтажа (см. ниже) | дефолт — фокус на бесконечность, для съёмки крупным планом это размытая картинка |
| White balance | daylight | «auto»/«fluorescent» под LED-подсветкой иногда дают розовый оттенок |
| Manual sensor (экспозиция) | off | ручная экспозиция нестабильна на большинстве бюджетных Android — на некоторых моделях даёт чёрный кадр |
Эти настройки на некоторых телефонах слетают на дефолт сами
по себе спустя время — это известное поведение приложения, не баг с вашей
стороны. Если через день-два картинка снова размылась или порозовела —
просто повторите настройку.
Сеть — Tailscale
- Установить Tailscale, войти под тем же аккаунтом, что и остальные
камеры — уточните у разработчика, каким именно (обычно рабочий аккаунт
организации, не личный).
- После входа телефон получит адрес вида
100.x.x.x — это
такой же постоянный «домашний» адрес, как у сервера, независимо от того,
в каком Wi-Fi телефон физически находится.
- Проверить, что всё работает — с любого устройства в той же Tailscale-сети:
curl http://100.x.x.x:8080/shot.jpg -o test.jpg
Должен скачаться файл с текущим кадром камеры.
Физический монтаж
- Камера должна стоять неподвижно — любой сдвиг сбивает зону
детекции, разработчику придётся пересчитывать координаты заново.
- Расстояние камера → блюдо/тарелка — зафиксируйте и не меняйте:
фокус калибруется под конкретное расстояние (см. ниже), при изменении
высоты подвеса калибровку нужно повторять.
- Стабильное освещение важнее яркого. Резкая смена освещения (день/вечер,
включили-выключили лампу) заставляет систему пересобирать эталон фона.
Для замкнутого короба — лучше отдельная постоянная подсветка (например,
кольцевая LED-лампа), не зависящая от освещения в помещении.
Калибровка фокуса (обязательно после монтажа)
Фокус фиксируется на конкретном расстоянии в диоптриях (0.00 = бесконечность,
чем больше число — тем ближе точка фокуса). Дефолт после установки — 0.00,
для крупной съёмки это гарантированно размытая картинка.
- Снять тестовый кадр:
curl http://100.x.x.x:8080/shot.jpg -o test.jpg
- Задать пробное значение (шаг 0.10):
curl "http://100.x.x.x:8080/settings/focus_distance?set=2.00"
- Снять кадр заново, сравнить резкость. Повторить с соседними значениями,
пока картинка не станет чёткой при увеличении.
Ориентир: рабочее расстояние ~40-50 см от объектива до
тарелки обычно соответствует диапазону 1.8-2.2 диоптрий — но это только
отправная точка, у каждого телефона/объектива своя оптика, перебор
обязателен. Дальше и ближе — соответственно меньше и больше по шкале.
Что передать разработчику
- Tailscale-адрес телефона (
100.x.x.x) и порт (обычно 8080).
- Название точки — как называть эту камеру в интерфейсе (например,
«Фотобокс-2», «Раздача — зал 2»).
- Подтверждение, что настройки из раздела выше применены (или сразу
скажите, что не успели — разработчик может задать их удалённо через
Tailscale, как только телефон появится в сети).
- Фото того, что реально видно в кадре — по нему размечается зона
детекции и область обрезки.
После этого разработчик заводит новую запись в реестре камер и
разворачивает изменения — руками на телефоне больше ничего делать не
нужно, разве что появится «гуляющий» фокус/цвет — тогда см. раздел про
настройку IP Webcam выше.