Сверхбюджетная камера для Homekit

04 ноября 2019, 17:37

В один из теплых вечеров, я наткнулся на данную камеру. В первую очередь, привлекли меня в ней размеры и цена.
В сети по данной плате информации мало - кроме беглых обзоров стоковой прошивки толком ничего и нет, но на просторах GitHub нашел способ, как добавить поддержку RTSP протокола в неё. А если камера может транслировать RTSP, то интегрировать ее в HomeBridge не является проблемой, но для начала разберемся, что из себя представляет данная камера.

1600x_image.png?1572461506

Сердцем платы является модуль ESP-32S. За вычисления отвечает двухъядерный 32-битный процессор Xtensa LX6.
Размер Постоянно Запоминающего Устройства равен 448 Кбайт. А SRAM накинули чуть больше 520 Кбайт.

В модуль интегрирован Wi-Fi (2.4Ггц), поддерживающий стандарты: 802.11 b / g / n / e / i.  

И Bluetooth v4.2 с низким энергопотреблением.

По умолчанию в плате установлена 2-мегапиксельная 
камера ov2640 от компании OmniVision Technologies.
Размер пикселя - 2.2 микрона.
Максимальное разрешение - 1600х1200 (UXGA) пикселей.
Питается камера от 3.3 вольт.
Максимальная скорость передачи изображения - 60 кадров в секунду, в формате CIF.

 

1600x_image.png?1572468357
1600x_image.png?1572470134

На плате распаяны:
разъем для подключения SD карт, объёмом до 4гб;
светодиодная вспышка, кнопка перезагрузки;
IPEX разъём для подключения внешней антенны.

Плата имеет 16 сквозных отверстий для подключения питания и периферии, может работать в диапазоне температур 
от -20℃ до ~ 85 ℃ при относительной влажности < 90%.

С основными характеристиками платы мы разобрались, предлагаю вернуться к теме и добавить поддержку RTSP протокола.
Для прошивки платы нам потребуется USB/UART конвертер, я буду использовать CP2102. Подключаем камеру к конвертеру - 

3v3 - 3v3 / GND - GND / RX - UOT / TX - UOR / GND на плате к IO0 на плате (перемычка для ввода esp в режим прошивки).
Вставляем в USB порт компьютера, устанавливаем драйвера для работы с CP2102, если они у вас не установлены.

o01-1.jpg

Если все прошло успешно, система известит вас о новом подключенном устройстве, а в диспетчере задач в  "Порты (COM LPT)"
Вы должны увидеть - "Silicon Labs CP210x to Uart Bridge (COM10)", где COM10 - номер com порта, к которому подключен конвертер.

Установка Visual Studio Code и PlatformIO IDE

Заходим на официальный сайт и скачиваем программу Visual Studio Code. Останавливаться на установке не буду.
Пока устанавливается VSC, скачаем архив с прошивкой для нашей камеры. Извлекаем из архива папку с прошивкой.

1600x_image.png?1572473321

Открываем Visual Studio Code, слева сверху находим: 
"Extensions", нажимаем, у нас появится строка поиска, в неё вбиваем "PlatformIO IDE". Нажимаем "Install"

После установки, в крайней слева панели, под "Extensions", появится новый значок: PlatformIO, Нажимаем левую кнопку мыши и попадаем на PIO Home.

Нажимаем "Open Project" и переходим в папку, которую мы извлекли из архива.
Открываем ESP32-CAM-PlatformIO.


1600x_image.png?1572474673
1600x_image.png?1572474673

"Провалимся" в папку "src", и откроем ESP32-devcam.inoВ 16 и 17 строке прописываем название Wi-Fi сети и пароль от нее.
1. Необходимо нажать галочку, что бы PlatformIO подгрузил все недостающие библиотеки.
2. Открываем терминал.
3. Проверяем данное окно, должно быть PlatformIO.
4. Вводим команду:

pio run -t upload

Если все пройдет удачно, в терминале мы увидим сообщение:

Leaving...
Hard resetting via RTS pin...

Модуль можно отключить от конвертера и запитать от 5 вольт. В вашей Wi-Fi сети должно появится новое устройство, мой роутер выдал камере IP адрес: 192.168.31.211, у вас, скорее всего, будет другой iP адрес. Проверить наличие новых устройств в сети можно через приложения, например, Angry IP Scanner, либо в панели администратора роутера.
 Я для проверки буду использовать VLC плеер, потому что он имеет поддержку RTSP потока.

1600x_image.png?1572476370

Заходим в программу VLC, нажимаем "Network" (в старых версиях программы "URL").
И в поиск вводим адрес RTSP потока с камеры.
Также, введя "IPкамеры:40" в браузере, можно увидеть видеопоток.

rtsp://IP:554/mjpeg/1

Если все успешно, вы увидите картинку с камеры, можно закрыть VLC, и подключится по SSH к вашему серверу умного дома.

Установка FFmpeg

Если у вас установлен образ с HomeBridge от Edward, вы можете пропустить этот шаг. Если вы устанавливали HomeBridge сами, то предлагаю два варианта установки FFmpeg:
1. Способ для параноиков (установка ручками).
2. Способ для ленивых (установкой займется скрипт).
Оба варианта установки на Raspberry pi 3b+ займут 40-60 минут, поэтому я выберу второй метод. Копируем скрипт ниже, вставляем его в командную строку SSH.  

git clone https://github.com/fantomnotabene/camera-ffmpeg_setup_script
cd camera-ffmpeg_setup_script
bash ./install.sh

Если все прошло успешно, скрипт предложит конфиг для плагина homebridge-camera-ffmpeg. 

Интеграция в HomeBridge

1600x_image.png?1572518537

Открываем Config.json, либо через web интерфейс нажимаем на "Config".

Если у вас нет Web интерфейса для Homebridge, советую его установить, но можно и по старинке. Вводим команду ниже:

1600x_image.png?1572518537
sudo nano ~/.homebridge/config.json

Скопируем часть конфига и вставим ее в config.json

{
            "platform": "Camera-ffmpeg",
            "cameras": [
                {
                    "name": "esp32cam",
                    "videoConfig": {
                        "source": "-rtsp_transport tcp -y -i rtsp://IP адрес камеры:554/mjpeg/1",
                        "maxBitrate": 2000,
                        "maxStreams": 2,
                        "maxWidth": 320,
                        "maxHeight": 240,
                        "vcodec": "h264_omx",
                        "audio": false
                    }
                }
            ]
        },

Проверяем правильно ли проставлены запятые, сохраняем и перезапускаем HomeBridge.

Заходим в приложение "Дом", нажимаем на "+" и выбираем
"Добавить аксессуар".
"Нет кода или нет возможности сканировать". Выбираем esp32cam и вводим пин от HomeBridge,
в моем случае"390 99 869", у вас он будет другим.

Камера должна появиться в вашем доме.

k01-1.jpg

Что в итоге?

Модуль ESP32-CAM научился отдавать RTSP поток, и может интегрироваться в Homekit.
Но, на камере есть вспышка, и куча свободных выводов, на которые можно подключить дополнительные устройства, например, кнопку, чтобы сделать "видео звонок" или датчик движения. Также необходимо изготовить корпус. Из-за нехватки времени я этого делать не буду, но вам задуматься стоит.
Рекомендую ли я данную камеру? Ответить сложно, смотря какую цель вы преследуете. Данная камера порой не стабильна, прошивка устанавливается через PlatformIO, который многие не любят. Но если у вас есть свободное время и желание улучшить прошивку, почему нет? Цена на данный модуль около 5$ либо 10 дошираков, кому как удобнее. Для людей, которым важно качество картинки и стабильность работы, наверное, стоит пропустить данную плату.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Александр Жабунин (OXOTH1K)

    А почему в качестве прошивки не была взята EspHome?) а так статья полезная конечно!

  2. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 7 дней назад

    отличная статья, можешь еще выложить реальное видео с камеры. 

  3. Павел Ник (bj_tracer)
    Павел Ник (bj_tracer) 7 дней назад

    Опять через прокладку (фейспалм)

    https://github.com/lizzus/esp32-homekit-camera 

    https://github.com/AchimPieters/esp32-homekit-camera  

  4. (Brain)
    (Brain) 7 дней назад

    Надо было озаглавить : Для тех, кто не ищет легких путей. 

    Кто из уважающих себя "умнодомщиков" позарится на такую камеру ? Я бы такую даже в курятник не поставил. И еще при существовании ESPHome заниматься мазохизмом - действительно удел людей у которых ну очень много времени. И применить можно если подумать хорошо. К примеру какой-нибудь бомж сможет контролировать свой участок теплотрассы )

    А так процесс интересный и полезный. Спасибо за труды. В конце-концов все имеет право на жизнь.

    • Vladislav Volchkov (vladislav_volchkov)

      Путь не легкий,согласен.
      То что ты ее не поставил бы даже в курятник,ну это твои деньги, твоё дело, не все из нас имеют хороший бюджет.
      Про то что ESPHome поддерживает esp32cam я не знал, ибо про espHome мало инфы.
      На счет реального применения, понятно что ставить ее туда где важно качество изображение и скорость отклика никто не станет, но как запасную камеру, как камеру где важно именно понимание, пробежал там вор или кошка, сойдет.
      Спасибо)

      • Белояр Иван (Ivan711)
        Белояр Иван (Ivan711) 6 дней назад

        Про esphome, более чем достаточно инфы, у них на оффсайте есть описание под каждый компонент, что он поддерживает. И именно так и должен выглядеть качественный опенсорс.

        Но владельцы хомбриджа совсем разучились искать информацию (не в обиду, чисто личное наблюдение), и умеют только повторять инструкции, и то, только те, что есть на русском языке.

        • Vladislav Volchkov (vladislav_volchkov)

          Ну, давай по порядку.
          про ESPHome может и достаточно инфы,но набери в поиске Google "esp 32 cam" и 80% роликов будет обзор стоковой прошивки, и 2-3 ролика, как ее интегрировали в Home Assistant.2-3 страница, можешь все глянуть, про ESPHome вообще информация не вылезает.

          Прочитав комментарий ниже, я так и не уловил суть, смысл ставить ESPHome, если он не может отдавать мне Rtsp?
          Про владельцев HomeBridge, наблюдение забавное, но хочется услышать что-то более внятное. Буду рад увидеть статью/ролик на тему того как данный модуль интегрировать в Homekit, и желательно великом и могучем

          • Белояр Иван (Ivan711)
            Белояр Иван (Ivan711) 6 дней назад

            Так поиск заключается не только в комбинации: ввести запрос - открыть одну из трех первых ссылок) 

            Про rtsp - смысл от него при качестве 320*240? В mjpeg она нормально и стабильно работает на  800x600.

            Про забавное наблюдение, все просто. Ты сам пишешь:  "хочется услышать что-то более внятное" и сразу после этого "Буду рад увидеть статью/ролик на тему того как данный модуль интегрировать в Homekit, и желательно великом и могучем"

  5. (Locy)
    (Locy) 7 дней назад

    А размер картинки только 320*240, больше нормально не тянет? Хотя бы hd при 25-30 кадрах в HK? 

    • Vladislav Volchkov (vladislav_volchkov)

      Можно 640х480, про hd забудь и про 25-30 кадров тоже, при подключении через web морду, там 60 кадров и все супер, но конвертирование rtsp потока, тоже требует ресурсов.

      • (viperet)
        (viperet) 6 дней назад

        А ведь можно сделать конвертирование в RTSP не сервере? 

      • Белояр Иван (Ivan711)
        Белояр Иван (Ivan711) 6 дней назад

        В esphome без потери работоспособности через определенное время по перегреву работает 800x600 и 10 кадров в секунду. Но rtsp разумеется там нету. 

    • Белояр Иван (Ivan711)
      Белояр Иван (Ivan711) 6 дней назад

      Не слабые запросы, для железки ценой меньше 5 баксов. Если HD на 30 кадрах - это "хотя бы" то мне чисто интересно какие требования вы вообще ставите для видеонаблюдения? 

К списку статей

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.