Fotobot

Введение

 

Fotobot — делает из телефона камеру наблюдения, которая фотографирует и снимает видео через определенные промежутки времени. Фото и видео отправляются на почту. Казалось бы, что сейчас на рынке десятки таких приложений, но, что делать если нужно следить за дачным домиком, где сотовая связь нестабильная, интернет медленный, а электричество частенько отключается. Fotobot спроектирован для работы в условиях слабого сигнала от сотовой вышки. Это означает, что даже при исчезающем сигнале в “0 палок” будет возможность получить картинку к себе на почту.
Для настройки Fotobot’а можно использовать СМС, что является гораздо надежнее, чем Internet (который может быть, а может и не быть доступным в данный момент на телефоне). Представьте ситуацию, телефон с запущенным Fotobot’ом оставили на даче и только дома вспомнили, что забыли отключить вспышку для фото и это приведет к быстрому разряду батареи в телефоне. Не вопрос. Отправляем СМС’ку с командой на отключение вспышки и все последующие фото будут сделаны без дополнительной подсветки.

Предистория

В советских журналах писали: «Если у вас есть старая вещь, то не выкидывайте ее. Ведь из нее можно сделать что-то полезное и она еще послужит вам.» Так и здесь, если у вас завалялся старый телефон на Android, то не выкидывайте его, ведь из него можно сделать камеру видеонаблюдения, которая с заданной периодичностью будет делать снимки и отправлять их вам на электронную почту. По сути, телефон с системой Android — это обычный персональный компьютер с системой Linux у которого есть видеокамера, так почему бы его не заставить делать, то что нам нужно.



Компьютер с Linux и где-то там сзади вебкамера воткнута


Ранее я уже предпринимал попытки превратить старый телефон в камеру видеонаблюдения с помощью установки различных приложений с Google Play. Вроде бы получалось, но не до конца. То через некоторое время телефон переставал посылать фотки, то память на нем кончалась, то вспышку нельзя было включить и совсем этим нужно было разбираться.



Это напильник, который я использовал, чтобы допилить приложения с маркета

В итоге мне это надоело и я решил написать свою программу, которая будет делать то, что я хочу.
Сказано, сделано, скачал Android Studio, установил Java посвежее и начал кодить. Поначалу шло тяжело, потом стало еще тяжелее, ведь я сунулся в дебри многопоточности, да и работа с камерой телефона не так уж и тривиальна (какие-то модели телефонов с камерой работают так, а другие совсем по другому). К тому же приходится поддерживать все версии Android доступные на данный момент, помните вначале «не выкидывайте старый телефон». А это означает, что приложение должно работать и на Android 2.3 и на Android 5.1. Пришлось тестить приложение на всех доступных устройствах от древнего HTC Wildfire, до современного Sony с Android Lollipop на борту. Причем тестирование на Android эмуляторах отвергалось сразу, только настоящее железо, только хардкор 🙂



Примерно вот так создается Fotobot


Иногда так


Но чаще всего вот так (по клику загрузится мегакартинка)
Перейдем к подробному описанию возможностей Fotobot’а. Так как телефон, с установленным Fotobot’ом по сути превращается в камеру видеонаблюдения, то он уже не находится в руках владельца, а где-то установлен в укромном месте, то есть требованию к графическому интерфейсу приложению не столь велики. Аскетичный дизайн (минимум графической информации), поле с телеметрией в главном окне приложения, нестандартный выход из меню настроек (кнопки «ПРИМЕНИТЬ» и «НА ГЛАВНУЮ») делают Fotobot непохожим на обычные Android приложения. Интерфейс не главная фишка этого приложения, главное, чтобы работал на всех Android’ах, не жрал батарейку и делал фотки с видео без перерыва. Ладно, заканчиваем «лить воду» и переходим к документации 🙂

Fotobot руководство пользователя

Какие задачи решает
Что нужно для того чтобы Fotobot работал
Что может Fotobot
Что не может Fotobot
Сравнение с аналогами
Энергопотребление
Запуск из коробки
Предварительные действия
Настройка
Запуск
Типовые сценарии работы
Управление через СМС
Как правильно остановить Fotobot
Тонкая настройка
Проблемы и способы их решения
История версий
E-Mail информация о работе Fotobot’а

Какие задачи решает
  • наблюдение за местностью от несанкционированного вторжения
  • повышение безопасности (дача, гараж, квартира)
  • визуальный мониторинг сложных технических устройств (серверная комната, котельная, электронагревательные приборы)

 

Что нужно для того чтобы Fotobot работал

Любой телефон на Android (начиная с версии v.2.3.3) со встроенной камерой
фото телефонов с запущенным Fotobot

Что может Fotobot
  • делать фото и видео (использует камеру и фронтальную камеру)
  • отправлять фото и видео на почту
  • использовать вспышку
  • для отправки использовать Wi-Fi
  • для отправки использовать Mobile Data
  • подключать сеть только тогда, когда надо (экономия батареи)
  • слушает СМС на предмет управляющих команд
  • отправляет СМС в ответ о состоянии телефона
  • разные разрешения фото
  • разные профили видео
  • в каждом письме информация о состоянии телефона
  • системный журнал может быть приаттачен к письму
  • запись фото и видео, как во внутреннюю память телефона, так и на SD карту
  • возможность удаления фото и видео после отправки на почту
  • работа в offline режиме (фото просто записываются, но не отправляются)
  • изменение интервала между фотографиями и съемкой
  • ждущий режим (фото и видео не делаются, Fotobot ждет команд через СМС)
  • бесплатный
  • никакой рекламы
  • маленький установочный пакет
  • работает с gmail.com, mail.ru и другими известными сервисами

 

Что не может Fotobot
  • вести on-line трансляцию
  • примитивный GUI, нет красивых кнопок и картинок, вся информация в текстовом виде

 

Сравнение с аналогами

Аналогов много, но Fotobot не требователен к ресурсам, имеет множество настроек, может управляться через СМС, бережно относится к аккумулятору.

Энергопотребление

На старом HTC Wildfire, делая фото каждые 5 минут и отправляя на почту по Wi-Fi, Fotobot разрядил батарею на 26% за ночь.
Sony Xperia, фото каждые 30 минут и отправка на почту, проработал 3 суток.

Запуск из коробки

После того, как Fotobot скачан и установлен его можно сразу же запускать. Просто нажмите кнопку «Пуск» и Fotobot начнет делать фото каждые 5 минут и складывать их в папку Fotobot во внутренней памяти телефона. Соединяться с Интернет и отправлять фото на почту он не будет, просто будет их складировать во внутреннюю память. Для того, чтобы Fotobot начал присылать фото на почту читаем дальше.

Предварительные действия

Чтобы Fotobot отправил письмо к вам на почту нужно зарегистрировать почтовый ящик для Fotobot’а. Сам Fotobot письма на почту отправлять не может, он сможет это сделать, как только вы зарегистрируете для него почту, например на Google Mail. Тут стоит сказать, что можно и без этого почтового ящика, но тогда все смогут смотреть ваши фотографии, а это неприемлемо. Тогда идем и регистрируем:

регистрируем почтовый адрес для Fotobot’а на Google Mail


fotobot_mailservice
Регистрируем почтовый ящик для Fotobot’а в Google Mail
fotobot_mailservice2
Почтовый ящик зарегистрирован

fotobot_mailservice3
Проверяем, чтобы двухэтапный вход в почту был отключен

 

Для старших версий Android 6 или 7 может понадобиться дополнительная настройка безопасности, подробно об этом читаем здесь.

Название почтового ящика и пароль от него понадобятся дальше.

Настройка

Теперь переходим к настройке Fotobot’а. Параметров у него много, важные и не очень важные. Начнем с важных.

Но перед этим поясню одну важную вещь. В меню «Настройки», чтобы применить изменения нужно нажать «ПРИМЕНИТЬ», а чтобы выйти из настроек нужно нажать «НА ГЛАВНУЮ»:


apply_main
Первым делом определяемся с папкой для хранения фотографий. Даже если вы хотите отправлять фото на почту и удалять их сразу после отправки, то все равно нужна папка для их временного складирования. В поле «Папка для фотографий» нужно прописать полный (абсолютный) путь к этой папке в вашем телефоне, например:

/storage/external_SD/Fotobot

первая часть пути /storage/external_SD указывает на то, что это внешняя SD карточка, купленная в магазине и вставленная в слот для этих самых карточек в телефоне. /FotoBot это папка на карте SD, которую необходимо создать вручную. Если вы не правильно напишите путь к папке для фото, то ничего страшного не произойдет, после нажатия кнопки «ПРИМЕНИТЬ» Fotobot ругнется и предложит ввести путь заново:


wrong_folder
Предупреждение о несуществующей директории для фото
Для того, чтобы найти абсолютный путь к папке для фото воспользуйтесь любым File Browser’ом, даже встроенный в Android стандартный просмотрщик файлов может это делать:


Fotobot_abs_path
Встроенный в телефон менеджер файлов показывает полный (абсолютный) путь к папке для фото
Желательно проверить, что эта папка имеет полный доступ для пользователя (скопируйте туда какое-нибудь фото для проверки доступа).

Что касается имени файла то для его создания используется шаблон:
MM-ДД-ГГ-ЧЧ-ММ-СС-МИЛЛИСЕКУНДЫ.jpg
если снимок сделан фронтальной камерой то добавляется префикс fc.

Второй важный параметр — это настройки почты, все настройки можно пояснить следующей картинкой:


emailpassword
Вспомогательный почтовый адрес для Fotobot’а и пароль заносим в соответствующие поля в закладке «Сеть».

«Номер порта» лучше не трогать, обычно он равен 465.

«Почтовый адрес получателя» — сюда будут приходить письма с фото.

Запуск

Прежде чем ставить телефон на охраняемый объект настоятельно рекомендуется провести тестовый запуск, чтобы исключить неточности в настройке. Если вы находитесь на даче, то поставьте Fotobot работать минут на 15 и проверьте все ли в порядке, приходят ли фото на почту или складываются они в память телефона. Ибо если вы вернетесь в город, а фоток на почте нет, то будет сложно разобраться, что там происходит, только ждать следующих выходных, когда снова на дачу. Поэтому проверяйте работу на месте.


Fotobot_Working_Window
Так выглядит работающий Fotobot
 

Типовые сценарии работы

Сценарий 1. Накопление фото для последующего просмотра.
Так называемый оффлайновый режим. В этом режиме Fotobot делает фотографии и складывает их в память телефона, на почту фото не отправляются. Важно позаботиться о наличии свободного места иначе память может закончится (зависит от первоначального количества свободных мегабайтов и от частоты фотографирования).
Сценарий 2. Делаем фото и отправляем на почту.
Это типовой сценарий работы. В режиме онлайн можно наблюдать за объектом. После того, как фото сделано оно тут же отправляется на почту. Есть опция удаления фото из телефона после отправки их на почту. Данная опция полезна для телефонов с небольшим количеством памяти.
Сценарий 3. Смешанный режим работы.
Комбинация онлайн и оффлайн режимов работы. Переключение между режимами осуществляется посредством управляющей СМС. Этот режим подходит для регионов с нестабильным интернет соединением.

Управление через СМС

Управлять работой Fotobot’а можно с расстояния посредством СМС. Для этого отправьте на телефон с запущенным Fotobot’ом СМС’ку:

passwd pass
update 300
network on
log on
flash on
jpg 50
status on

Разберем поподробнее:
passwd — пароль;
update 300 — делать фото каждые 300 секунд;
network on — фото будут отправляться по почте, если network off, то просто записываться в телефон;
log on — к письму будет присоединен журнал;
log on 50 — к письму будет присоединен журнал (размер журнала 50Kb);
flash on — фото со вспышкой;
jpg 50 — степень сжатия JPEG;
status on — в ответ придет смс-ка с текущим состоянием Fotobot’а.

В целях экономии средств в роуминге за границей, для отправки управляющих СМС можно воспользоваться WEB сервисами соответствующих сотовых операторов.

beeline_web_sms megafon_web_sms tele2_web_sms

На данный момент доступны следующие SMS команды:

SMS команда Назначение
passwd задает пароль
update 300 интервал в секундах через который делаются фото
network on
network off
присылать или не присылать письма на почту
netchannel wf
netchannel md
способ подключения к Internet (wf — Wi-Fi, md — Mobile Data)
netmethod 1
netmethod 2
подключаться к Internet один раз в самом начале (1) или подключаться и отключаться на кажома шаге (2)
email user@mail.ru почта для фотографий
emails fotobot@gmail.com почтовый адрес для Fotobot’а, с этого адреса будут отправляться фотки на user@mail.ru (см. выше)
emailsp pAssWd пароль для почтового ящика Fotobot’а
smtphost smtp.gmail.com адрес почтового сервера Fotobot’а
smtpport 465 порт почтового сервера Fotobot’а
fc on
fc off
использовать или не использовать фронтальную камеру
bc on
bc off
использовать или не использовать камеру на задней панели телефона
attachbci on/off присоединять фото с камеры на задней панели телефона к письму
attachfci on/off присоединять фото с фронтальной камеры к письму
attachbcv on/off присоединять видео с камеры на задней панели телефона к письму
attachfcv on/off присоединять видео с фронтальной камеры к письму
delbci on/off удалять фото, сделанное камерой на задней панели телефона, после отправки письма
delfci on/off удалять, фото сделанное фронтальной камерой, после отправки письма
delbcv on/off удалять видео, сделанное камерой на задней панели телефона, после отправки письма
delfcv on/off удалять видео, сделанное фронтальной камерой, после отправки письма

 

Как правильно остановить Fotobot

Чтобы корректно остановить Fotobot, нажмите кнопку «СТОП». После этого на экране появится предупреждение о запросе на остановку. Через некоторое время появится надпись «Fotobot остановлен» и кнопки «ПУСК», «НАСТРОЙКИ», «ГЛАВНАЯ», «ЖУРНАЛ», «ПОМОЩЬ» станут снова активными, что означает, что Fotobot корректно остановился.


Fotobot_stopped
 

Тонкая настройка

Часть настроек во вкладке «Поведение» спрятана. Для их редактирования поставьте флажок «Показать расширенные настройки»:


Fotobot_Advanced_Settings
Расширенные настройки отображаются на розовом фоне
Сами настройки и их назначение подробно описаны в самом Fotobot’е, поэтому здесь их не будем перечислять.

Разрешение фото

 

Рекомендации по работе с Fotobot
  • Не звонить на номер телефона с Fotobot’ом
  • Выключить звук всех уведомлений
  • Отключить синхронизацию с внешними сервисами (чтобы телефон не лазил в сеть, когда это не требуется)

 

Проблемы и способы их решения

Смотрим уровень GSM сигнала (информация в письме), например -95dBm. Смотрим время отправки предыдущего письма, например 15 секунд. Это означает, что GSM связь в данный момент совсем слабая (1-2 палки), а значит мобильный Интернет, там тоже может работать с перебоями. Что делать?

  • меняем разрешение на меньшее
  • увеличиваем степень сжатия JPG (например, 30)
  • оставляем только фото с камеры на задней панели телефона
  • журнал к письму не присоединяем

То есть делаем письмо легче, чтобы отправилось хоть что-то.
Можно еще:

  • перевести в режим без сети и обратно

тем самым рестартанув сетевые сервисы.
Для совсем старых телефонов рекомендуется посмотреть за расходом памяти (информация в письме). Если:
usedMemory постоянно увеличивается, а freeMemory падает, то опять же лучше уменьшить разрешение фото.

totalMemory: 13,35MB
usedMemory: 11,15MB
freeMemory: 2,20MB
Для анализа нештатных ситуаций (Fotobot внезапно выдал ошибку, камера отказалась делать фото, письмо не отправилось и так далее) может помочь системный журнал:


Fotobot_Log

Для того, чтобы посмотреть журнал жмем кнопку «ЖУРНАЛ» и через некоторое время (на страых телефонах может доходить до 15 секунд) на экране появятся записи из системного журнала Android.

История версий

 

E-Mail информация о работе Fotobot’а

В каждом письме, отправляемым Fotobot’ом содержатся не только фотографии и журнал событий, но и полезнейшая информация о текущем режиме Fotobot’а. Зная, что происходит на стороне сервера, читай телефона с Fotobot’ом можно изменив, соответствующие настройки заставить его проработать дольше на оставшемся заряде аккумулятора. Стандартное письмо от Fotobot’а выглядит следующим образом:


Fotobot v2.6.3
---------------------------------------------
Camera Name: default                                // название камеры
Заряд батареи: 91%                                 // сколько заряда осталось в аккумуляторе
Температура батареи: 27.8C                         // насколько нагрелся аакумулятор
Уровень сигнала GSM сети: 12ASU    -89.0dBm        // если уровень сигнала низкий,
-50 -82 dbm   -   very good                         // то управляющей смс-кой
-83 -86 dbm   -   good                              // можно перевести Fotobot
-87 -91 dbm   -   normal                            // в offlin'овый режим,
-92 -95 dbm   -   bad                               // чтобы он не пытался
-96 -100 dbm   -  almost no signal                  // соединиться с сетью
---------------------------------------------
Image Index:20                                      // количество фото, сделанных Fotobot'ом
---------------------------------------------
Используемая память (RAM):                          // следим за утечками памяти
totalMemory: 13,35MB                                 //
usedMemory: 11,15MB                                  //
freeMemory: 2,20MB                                   //
---------------------------------------------
Длительность отправки предыдущего письма (sec): 11  // указывает на состояние Internet соединения
---------------------------------------------
Установки Fotobotа:                                  // текущие установки
Network_Channel: Both                                // после отправки управляющей СМС
Network_Connection_Method: Method 1                  // желательно проверить
Use_WiFi: true                                       // изменились ли установки
Use_Mobile_Data: true
Use_Flash: false
JPEG_Compression: 50
Photo_Frequency: 60
process_delay: 5
Image_Scale: 1
Image_Size: 1024x768
EMail_Sender: fotobotmail@gmail.com
EMail_Sender_Password: *********
EMail_Recepient: voran.mail@gmail.com
Log_Font_Size: 12
Config_Font_Size: 14
Photo_Post_Processing_Method: Software
SMTP_Host: smtp.gmail.com
SMTP_Port: 465
Log length: 1024
FLog length: 1024
wake_up_interval: 60
---------------------------------------------
Информация о телефоне:
Android: 16
Debug-infos:
OS Version: 3.0.31-00003-g8b7cdbe(P76520d.4DEBAF7D)
OS API Level: 16
Device: u2
Model (and Product): LG-P765 (u2_open_cis)
RELEASE: 4.1.2
BRAND: lge
DISPLAY: JZO54K
CPU_ABI: armeabi-v7a
CPU_ABI2: armeabi
UNKNOWN: unknown
HARDWARE: lgep760board
Build ID: JZO54K
MANUFACTURER: LGE
SERIAL: 091485FD0C006011
USER: xianfeng.wu
HOST: build2

  • Александр Фурман

    Спасибо за вашу работу, отличное приложение! Использую для наблюдения за котлом. Есть правда проблемма: проходит случайный входящий звонок и приложение останавливается, а запустить его снова некому.

  • Здравствуйте, Александр.
    Спасибо за отзыв. По поводу входящего звонка. Fotobot не реализован, как сервис и любое внешнее воздействие (звонок, push, напоминание календаря и так далее) может «выбить его из колеи»:-) Поэтому для Fotobot’а лучше использовать симку с номером, который Вы не давали никому, что бы кто-то случайно не позвонил и Android не вывел сообщение в верхнюю шторку.

  • Александр Фурман

    Спасибо за ответ, скажите, возможно ли сделать так чтобы например отправив смс на этот телефон снова запустить фотобот?

  • Александр Фурман

    возможно это дополнительный кусок работы….

  • Тут на 4pda тоже спрашивали (возможно и Вы), как сдлать так, чтобы Fotobot не вылетал при входящих телефонных звонках. Как временно решение могу посоветовать отключить сервис «Телефон» в настройках Android. Я провел тест при выключенном сервисе вроде , Fotobot не вылетает из памяти и продолжает работать.

    http://cs5-3.4pda.to/11580327.png

  • Александр Фурман

    Огромное спасибо! проверил, вроде не вылетает! буду использовать по прямому назначению дальше.