S
SSHMAN
Original poster
Small Square Smart Camera — это небольшая камера, которая подключается по Wi-Fi и снимает качественное видео в разрешении 1920×1080 с хорошим углом обзора. Помимо этого, имеется ИК-подсветка для ночной съемки, удобное магнитное крепление, поддержка карт памяти до 64 Гбайт, порт USB для внешнего накопителя, динамик и микрофон для двухсторонней связи. В общем, при цене меньше двух тысяч рублей — более чем прилично.
Xiaomi Small Square Smart Camera
Большой минус этой камеры в том, что работать с ней предполагается только из приложения Mi Home. А значит, видеопоток не получится ни в серьезную систему наблюдения направить, ни интегрировать с эппловским HomeKit. Однако благодаря усилиям энтузиастов все эти недостатки удалось устранить!
Разбираем камеру и читаем логи по UART
Внутри у камеры — чип ARM9, на котором работает обычный Linux. Наша цель — поставить прошивку, которая даст нам контроль над системой и позволит передавать видеопоток в формате RTSP. Но для начала я рекомендую подключиться через отладочный порт UART, чтобы иметь возможность смотреть лог на предмет ошибок.
Итак, вытаскиваем карту памяти, откручиваем два винта и вытаскиваем нижнюю часть на себя.
Если все прошло успешно, ты увидишь нечто подобное
Далее:
Доступ к UART
Обрати внимание, что TTL-уровень UART — 3,3 В (чип работает от 3,3 В), а сама камера питается от USB 5 В. Самым правильным решением будет подключиться только к GND, TX, RX, а питание подать через USB.
Теперь подпаиваем три проводка и подключаем переходник USB — UART.
USB — UART
С помощью программы или получаем права root.
Модифицируем прошивку камеры для работы RTSP
Последняя версия прошивки, которую можно модифицировать с помощью , — это 3.0.3.56. Поэтому прежде всего нужно сделать даунгрейд.
Из репозитория проекта скачиваем . Это специально подготовленный образ с двумя разделами: загрузочным FAT32 и системным ext2. С помощью утилиты dd или другой программы заливаем образ на карту памяти.
dd
Возможности, которые дает нам хак:
VLC
Поднимаем Homebridge и плагин для камеры на Raspberry Pi
Если ты собираешь систему видеонаблюдения, то ты, скорее всего, уже знаешь, что делать с потоком RTSP. Однако если ты хочешь задействовать камеру в своем умном доме, а в кармане носишь айфон, то читай дальше: я расскажу, как сделать из любой обычной камеры устройство с поддержкой Apple HomeKit. Как и в , для этого удобно использовать программку под названием Homebridge.
Homebridge — это плагин для Node.js, поэтому сначала нужно установить стабильную версию Node.js. Весь софт будет крутиться на Raspberry Pi 3 Model B с операционкой Raspbian Stretch. Raspberry Pi — идеальный вариант для этого проекта, потому что видео с камеры нужно будет на лету перекодировать в H.264. Мини-компьютер умеет это делать аппаратно.
$ wget -O - | sudo bash
Raspberry Pi 3
Для установки расширений из менеджера пакетов npm нужно установить утилиты для сборки:
$ sudo apt-get install -y build-essential
Теперь ставим сам homebridge:
$ sudo npm install -g --unsafe-perm homebridge
Для использования аппаратного видеокодирования на Raspberry Pi нужно скомпилировать FFmpeg с соответствующими флагами. Что ж, за дело!
Ставим утилиты, необходимые для сборки:
$ sudo apt-get install pkg-config autoconf automake libtool libx264-dev git
Скачиваем и устанавливаем .
$ git clone
$ cd fdk-aac
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make -j4
$ sudo make install
$ sudo ldconfig
$ cd ..
Скачиваем и устанавливаем .
$ git clone
$ cd FFmpeg
$ ./configure --prefix=/usr/local --arch=armel --target-os=linux --enable-omx-rpi --enable-nonfree --enable-gpl --enable-libfdk-aac --enable-mmal --enable-libx264 --enable-decoder=h264 --enable-network --enable-protocol=tcp --enable-demuxer=rtsp
$ make -j4
$ sudo make install
Устанавливаем плагин homebridge-camera-ffmpeg.
$ sudo npm install -g homebridge-camera-ffmpeg
Создаем файл конфигурации /home/pi/.homebridge/config.json1, содержащий код:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:34",
"port": 51826,
"pin": "031-45-154"
},
"description": "My Home",
"accessories": [],
"platforms": [{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Camera Name",
"videoConfig": {
"source": "-rtsp_transport tcp -re -i rtsp://192.168.1.3/unicast",
"stillImageSource": "-i rtsp://192.168.1.3/unicast",
"maxStreams": 2,
"maxWidth": 1280,
"maxHeight": 720,
"maxFPS": 10,
"vcodec": "h264_omx",
"debug": true
}
}
]
}
]
}
Запускаем Homebridge c выводом дебага: DEBUG=* /opt/nodejs/bin/homebridge.
HKStarted
При запуске Homebridge в лог пишется, что загружается одна платформа Camera-ffmpeg, выводится QR-код и цифровой код для добавления камеры в «Дом» на iOS. В режиме debug можно посмотреть процесс добавления камеры, все ли проходит по плану. При работе камеры в лог выводятся сообщения о процессе декодирования, а также информация о том, что используется аппаратное декодирование.
Заводим камеру в «Дом» через HomeKit
Начиная с iOS 10 в iPhone и iPad появилось приложение «Дом», которое позволяет управлять устройствами умного дома по протоколу HomeKit. Чтобы добавить камеру в «Дом», нужно нажать плюсик, выбрать «Нет кода или не можете сканировать?», тогда из списка можно будет добавить только камеру.
Добавляем камеру
Без дополнительных устройств видео с камеры можно будет смотреть, если твой телефон или планшет находятся в той же сети. Однако если у тебя есть хаб HomeKit (в его роли могут выступать HomePod, Apple TV или iPad), то картинка будет передаваться на сервер Apple, и ты сможешь смотреть, что происходит у тебя дома, находясь где угодно.
Xiaomi Small Square Smart Camera
Большой минус этой камеры в том, что работать с ней предполагается только из приложения Mi Home. А значит, видеопоток не получится ни в серьезную систему наблюдения направить, ни интегрировать с эппловским HomeKit. Однако благодаря усилиям энтузиастов все эти недостатки удалось устранить!
Разбираем камеру и читаем логи по UART
Внутри у камеры — чип ARM9, на котором работает обычный Linux. Наша цель — поставить прошивку, которая даст нам контроль над системой и позволит передавать видеопоток в формате RTSP. Но для начала я рекомендую подключиться через отладочный порт UART, чтобы иметь возможность смотреть лог на предмет ошибок.
Итак, вытаскиваем карту памяти, откручиваем два винта и вытаскиваем нижнюю часть на себя.
Если все прошло успешно, ты увидишь нечто подобное
Далее:
- растаскиваем корпус в разные стороны;
- отсоединяем антенну Wi-Fi;
- откручиваем три винта внутри;
- отсоединяем шлейф камеры.
Доступ к UART
Обрати внимание, что TTL-уровень UART — 3,3 В (чип работает от 3,3 В), а сама камера питается от USB 5 В. Самым правильным решением будет подключиться только к GND, TX, RX, а питание подать через USB.
Теперь подпаиваем три проводка и подключаем переходник USB — UART.
USB — UART
С помощью программы или получаем права root.
- Скорость соединения: 115200
- Логин: root
- Пароль: ismart12
Модифицируем прошивку камеры для работы RTSP
Последняя версия прошивки, которую можно модифицировать с помощью , — это 3.0.3.56. Поэтому прежде всего нужно сделать даунгрейд.
- Скачиваем прошивку .
- Форматируем карту памяти microSD в FAT32.
- В корень карты распаковываем архив с файлами прошивки.
- Отключаем питание камеры.
- Вставляем карту памяти в камеру.
- Нажимаем и удерживаем кнопку Setup на камере.
- Включаем питание камеры, удерживаем кнопку Setup.
- Примерно через две минуты камера поприветствует тебя на китайском.
Из репозитория проекта скачиваем . Это специально подготовленный образ с двумя разделами: загрузочным FAT32 и системным ext2. С помощью утилиты dd или другой программы заливаем образ на карту памяти.
dd
- Включаем камеру без карты памяти.
- Дожидаемся, когда синий светодиод перестанет мигать и будет просто гореть.
- Вставляем карту, камера должна издать характерный звук. Если это не произошло, смотрим лог на ошибки подключения карты памяти.
- Автоматически запустится скрипт snx_autorun.sh, ждем секунд тридцать.
Возможности, которые дает нам хак:
- RTSP-видеопоток;
- отвязка от китайского облака;
- настройка Wi-Fi в качестве клиента или точки доступа;
- FTP, Telnetd, SSH/SCP/SFTP;
- установка правильного времени.
VLC
Поднимаем Homebridge и плагин для камеры на Raspberry Pi
Если ты собираешь систему видеонаблюдения, то ты, скорее всего, уже знаешь, что делать с потоком RTSP. Однако если ты хочешь задействовать камеру в своем умном доме, а в кармане носишь айфон, то читай дальше: я расскажу, как сделать из любой обычной камеры устройство с поддержкой Apple HomeKit. Как и в , для этого удобно использовать программку под названием Homebridge.
Homebridge — это плагин для Node.js, поэтому сначала нужно установить стабильную версию Node.js. Весь софт будет крутиться на Raspberry Pi 3 Model B с операционкой Raspbian Stretch. Raspberry Pi — идеальный вариант для этого проекта, потому что видео с камеры нужно будет на лету перекодировать в H.264. Мини-компьютер умеет это делать аппаратно.
$ wget -O - | sudo bash
Raspberry Pi 3
Для установки расширений из менеджера пакетов npm нужно установить утилиты для сборки:
$ sudo apt-get install -y build-essential
Теперь ставим сам homebridge:
$ sudo npm install -g --unsafe-perm homebridge
Для использования аппаратного видеокодирования на Raspberry Pi нужно скомпилировать FFmpeg с соответствующими флагами. Что ж, за дело!
Ставим утилиты, необходимые для сборки:
$ sudo apt-get install pkg-config autoconf automake libtool libx264-dev git
Скачиваем и устанавливаем .
$ git clone
$ cd fdk-aac
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make -j4
$ sudo make install
$ sudo ldconfig
$ cd ..
Скачиваем и устанавливаем .
$ git clone
$ cd FFmpeg
$ ./configure --prefix=/usr/local --arch=armel --target-os=linux --enable-omx-rpi --enable-nonfree --enable-gpl --enable-libfdk-aac --enable-mmal --enable-libx264 --enable-decoder=h264 --enable-network --enable-protocol=tcp --enable-demuxer=rtsp
$ make -j4
$ sudo make install
Устанавливаем плагин homebridge-camera-ffmpeg.
$ sudo npm install -g homebridge-camera-ffmpeg
Создаем файл конфигурации /home/pi/.homebridge/config.json1, содержащий код:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:34",
"port": 51826,
"pin": "031-45-154"
},
"description": "My Home",
"accessories": [],
"platforms": [{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Camera Name",
"videoConfig": {
"source": "-rtsp_transport tcp -re -i rtsp://192.168.1.3/unicast",
"stillImageSource": "-i rtsp://192.168.1.3/unicast",
"maxStreams": 2,
"maxWidth": 1280,
"maxHeight": 720,
"maxFPS": 10,
"vcodec": "h264_omx",
"debug": true
}
}
]
}
]
}
Запускаем Homebridge c выводом дебага: DEBUG=* /opt/nodejs/bin/homebridge.
HKStarted
При запуске Homebridge в лог пишется, что загружается одна платформа Camera-ffmpeg, выводится QR-код и цифровой код для добавления камеры в «Дом» на iOS. В режиме debug можно посмотреть процесс добавления камеры, все ли проходит по плану. При работе камеры в лог выводятся сообщения о процессе декодирования, а также информация о том, что используется аппаратное декодирование.
Заводим камеру в «Дом» через HomeKit
Начиная с iOS 10 в iPhone и iPad появилось приложение «Дом», которое позволяет управлять устройствами умного дома по протоколу HomeKit. Чтобы добавить камеру в «Дом», нужно нажать плюсик, выбрать «Нет кода или не можете сканировать?», тогда из списка можно будет добавить только камеру.
Добавляем камеру
Без дополнительных устройств видео с камеры можно будет смотреть, если твой телефон или планшет находятся в той же сети. Однако если у тебя есть хаб HomeKit (в его роли могут выступать HomePod, Apple TV или iPad), то картинка будет передаваться на сервер Apple, и ты сможешь смотреть, что происходит у тебя дома, находясь где угодно.