Как стать автором
Обновить

Как своими руками сделать WiFi камеру слежения (ESP32-CAM)

Время на прочтение6 мин
Количество просмотров91K
Всего голосов 14: ↑10 и ↓4+8
Комментарии35

Комментарии 35

Первый момент. За 25 енотов можно взять на али поворотную камеру слежения. С реальной матрицей в 3 мегапикселя. Плюс с уже готовой программой для слежения через мобильное приложение. Если набрать купоны то выйдет еще дешевле.

Теперь насчет ЕSP32. Реально с нее можно получить не большое разрешение. Все эти сказки про 1600 на 1200 это сказки. Она может и даст его, на частоту кадров тут надежды нет.

Плюс это все добро в работе на больших разрешениях реально греется.

В общем решение это для очень скромных задач. Ну и для поиграться тоже пойдет.

НЛО прилетело и опубликовало эту надпись здесь

В приницпе, можно и без Ali, только неповортую. Tapo C100, ~2200 в настоящий момент. C200 - повортная, около ~2700. Увы, они приметные.

А если хотите неприметную, то их, аналоговых, полно много лет как. Размер меньше штекера "тюльпан". Более того, по запросу "mini camera wifi" полно толщиной с палец, вот за них как раз можно и получить.

Лучше приметную. Большую, с моргающим светиком. И не обязательно - камеру, достаточно муляжа.
Ну найдете ссыкуна - дальше что? А так - место уже не укромное, под наблюдением.

А за банки окурков в подъезде - по ушам бить. Курильщика. Покурил - выбрось.

Согласен. За муляж камеры точно не сядешь. И отпугнёт кого надо. А сломают - не жалко

Камера с готовой программой слежения через мобильное приложение может быть как раз бесполезной тратой денег. Купил пару таких, Tapo и Xiaomi... Если вкратце: там целый ворох проблем и для задач уровня сигнализации/видеонаблюдения их толком использовать невозможно, бесполезная игрушка. Особенно Xiaomi. Tapo хотя бы потенциально можно для чего-то приспособить.

В чём проблемы: основная -- нет возможности видеопоток с камеры отправлять на какой-либо свой сервер. У Xiaomi такой возможности вообще нет. Можно только смотреть через приложение на андроиде. У Tapo можно через rtsp получать с камеры видео, но на самом деле это несколько неудобно (сильно забивает канал -- подразумевает локальный, а не удалённый сервер). В идеале конечно хотелось бы видео с очень низким frame rate и/или просто через http получать буквально 5 кадров в секунду в motion jpeg.

Для Xiaomi обещали "облако", но пишут оно есть только для китайских версий, а у продаваемых в РФ -- нет.

Все камеры пишут на SD-карточку, но толку с этого ровно ноль: если в помещение проникает посторонний, то первым делом он заберёт карточку или камеру с собой. Поэтому хотелось бы писать на какой-то сервер стоящий в сторонке.

Функции сигнализации тоже с проблемами. У Xiaomi -- штатный механизм нотификаций андроида не используется, вместо этого только свой сервер и, фактически, либо постоянно работающая программа и постоянно разряжающаяся батарея, либо нет тревоги от "датчика движения". У Tapo используется штатный механизм и батарею телефона не сажает. Но опять же что произошло можно увидеть только подключившись к камере удалённо и скачав видео с карточки. А если кто-то вломился и быстро отключил камеру -- ничего не узнаешь.

Да и просто факт отключения питания ни камерами, ни сервером фирмы производителя никак не замечается. Камера может сломаться, отключиться, и если регулярно не смотришь -- никогда не узнаешь. Равно как и для сигнализации такое решение не годится (отключил электричество -- и ничего не работает).

Ну и само собой камеры не включаются, не настраиваются, и не работают без интернета, без доступа к серверу фирмы производителя. Который не известно будет ли работать через 5 лет, не будет ли окончена поддержка камер. Будут ли выпускаться мобильные приложения для следующих версий андроида и т.д. и т.п.

И наконец неприятно, что картинка с камеры постоянно идёт в сеть. Да мало ли кто там смотреть будет. Прецеденты были. Хочется без облаков и в рамках своей закрытой от инета VPN.

Раньше делал системы на основе сервака с линуксом и motion. И обычной (без облаков) ethernet/wifi камеры. К сожалению такие камеры существенно дороже. И понятно почему -- сегментация рынка. На базе такой камеры можно построить полноценное решение. Где траффик с камеры измеряется не мегабайтами, а килобайтами, где злоумышленнику бесполезно ломать и вырывать камеру, где картинка не уходит в чужое облако, где посмотреть можно не только с мобильника, а с любого компьютера и любое число камер одновременно...

Поставил на даче несколько noname камер по 20-30$ и NVR в укромном месте на который пишется все видео. Если кто-то оторвет камеры, то записи все равно останутся. К тому же, по движению отправляются фотки на почту.. На мой взгляд это удобнее чем писать в облако. Китайское облако использую только для просмотра онлайн или скачивания записей, поскольку ip серый.

Добрый день

Не осталось ли ссылок на камеры?

Спасибо

Аналогично, только ещё вотвсепогодном ящике (собственного изготовления, железный ящик плюс вентилятор с фильтром, аналоговыми реле влажности и температуры, если вырубили электричество и сильно холодно, то при продаже питания, в начале нагревается корпус и только потом запуск, лишняя влага вытягивается спец кулером). Стоит raspberry на котором node-red, на него с камер приходят алерты движения, дёргается камера на скриншот, который в свою очередь отправляется в телеграм. В планах идентификация по лицу (хотя в камерах есть функция). Такая система своими руками в разы дешевле и мощнее.

А можно ссылки на камеры?

Для Xiaomi обещали «облако», но пишут оно есть только для китайских версий, а у продаваемых в РФ — нет.
Все камеры пишут на SD-карточку, но толку с этого ровно ноль: если в помещение проникает посторонний, то первым делом он заберёт карточку или камеру с собой. Поэтому хотелось бы писать на какой-то сервер стоящий в сторонке.
В чём проблемы: основная — нет возможности видеопоток с камеры отправлять на какой-либо свой сервер. У Xiaomi такой возможности вообще нет. Можно только смотреть через приложение на андроиде.
само собой камеры не включаются, не настраиваются, и не работают без интернета, без доступа к серверу фирмы производителя.
картинка с камеры постоянно идёт в сеть.
Используем Xiaomi YI Home Camera, из коробки — трэшачок, но по инструкциям с 4pda настроили все очень чудесно, т.к. там на камере какой-то урезанный юникс и в принципе народ уже много наколхозил для них. В результате работают и облака и фтп и телнет и тревожные видео в телеграм и запрет вещания в китай и работа без интернет и т.д. и т.п. Прочитайте там в топике в шапке инфу, все грамотно сведено в хороший faq с инструкциями.

Погуглите dafang hack. Я две свои Xiaomi так перевел на rtsp.

У Tapo можно через rtsp получать с камеры видео, но на самом деле это несколько неудобно (сильно забивает канал — подразумевает локальный, а не удалённый сервер).
Несколько раз перечитал и не понял, в чём проблема просматривать/записывать RTSP-поток удалённо? Нужен лишь белый IP-адрес и пробросить 554 порт в роутере.

Добро пожаловать https://t.me/mjsxj02hl_firmware . Прошивка реально работает, отдает rstp, висит на улице, у меня за 4 месяца только 2 раза зависла в мороз- но она и не уличная. К покупке конечно не рекомендую, но если уже купили то можно смело перепрошиватся.

Перевод базового видеоурока по Ардуино на Хабре. Купить детальки, скачать прошивку даже не пытаясь разобраться что она делает, заклеить корпус синей изолентойскотчем. Уровень конструктора для 7-8 летних детей.

Как камера оно очень убогое, ибо ESP32 не имеет паралельного интерфейса камеры и работает с ней очень медленно. Спасает ситуацию сама камера (ov2640) у которой есть JPEG/CIF кодек, что позволяет гнать упакованные данные сразу на сервер.

Вы очень недооцениваете детей - они как раз уйму вопросов задают, как все устроено и работает, так что для детей это вообще никак не годится. Вот от Raspberry Pi фаундэйшен есть интересные камеры со сменной оптикой и тьюторилами по программированию от детского уровня и до распознавания видеопотока, машинным обучением и проч.

Вот в 8 лет они будут задавать вопросы почему нужно зарядное устройство и почему вайфай не ловит за 5 км, в 9 лет начнут разбирать код прошивки, в 10 перепишут его на нормальный С, в 11 поймут что экспрессиф убогий и перейдут на платформу получше.

Шкала вопросов по возрастам намного более нелинейна :) А по esp - что лучше вы знаете как доступный AT модем? К RPI (и ардуино, не к ночи будь помянуты) вайфай модулем их и ставят.

Как Wi-Fi модем оно ещё неплохое, как МК ниже среднего. Очень плохое качество софта и документации от производителя. Я сам ими пользуюсь, но без особого удовольствия. Как ардуинка поиграться ещё ничего, но коммерческая разработка на этих модулях малоприятна.

У TI есть серия CC3200 - есть и вай-фай, и интерфейс камеры с дма, правда со своими подводными камнями тоже.

Так их и используют как модем, в основном, и даже прошивку можно не обновлять - и так ок. Что еще нужно? И замены им в таком качестве я не знаю. Дальше, камеры на OV2640 есть даже I2C/SPI, к любому микроконтроллеру подключить можно, они дороже, но детям как раз.

SPI там нет. I2C там есть только для конфигурации, изображение по нему не получить.

С SPI есть Arducam - интересное извращение - камера, ПЛИС от Lattice, статическое ОЗУ. Потребляет, греется, стоит как десяток этих самых ESP32-CAM, и всё только для того чтобы в конце получить данные на вожделенной ардуине.

Так я про Arducam и говорю, как раз на OV2640. Двухмегапиксельная стоит втрое дороже esp-cam, зато и к MicroBit подключить можно и к RPI Pico, что нам и нужно. Если вы другое простое решение с камерой (для MicroBit) знаете, поделитесь.

Зачем так упорно держаться за неудобную платформу? К распберри проще всего подключить официальные камеры с MIPI. Для машинного зрения на МК можно взять OpenMV и к нему приделать хоть ESP, хоть MicroBit.

Amazon: Arducam 26$, ESP32-CAM 18$. За три штуки.

Странный поворот... Много ли детей возраста 4—8 лет вы научили использовать машинное зрение на RPI?:) микробит с его скрэтч-подобным языком здесь самое то.

Я вообще сугубо отрицательно отношусь к обучению 4-8 леток машинному зрению. Точнее, не считаю подобное "обучением".

Для ардуиноподобных можно взять обычную OV, лучше с разрешением поменьше, типа OV7670, использовать QQVGA и тогда на битбэнге можно получить несколько кадров в секунду. Упомянутый ESP32-CAM тоже прокатит, на нём тоже можно скретч использовать.

Так зачем тогда это рекомендуете? Детям всего лишь хочется поставить камеру на машинку с микробитом и подкрасться к охотящемуся геккону и так далее. Arducam тут вполне подходит. Как подключить ESP32-CAM к MakeCode для микробит я не знаю, у вас есть пруфы, что это легко и просто? Нет, свое расширение для ESP32-CAM писать я не буду - мне не интересно.

Интересно а каким именно софтом и документацией Вы пользуетесь?

"Режим вспышки". Flash mode там в оригинале был?

Очень надеюсь, что в своих курсах они хоть чуть-чуть вникали в тему, прежде чем переводить.

Идея интересная, посмотри ещё что такое kendryte k210 чип, у него тоже есть схожий модуль для камеры. Это МК, не Линукс. При желании можно переделать код, или даже запилииь распознавание лиц. Стоит тоже не дорого. Такая статья была бы поинтереснее

Под распознавание лиц уже сделали K210. А я подключил черно-белую камеру с global shutter для машинного зрения (datamatrix в частности). Интересно, что китайцы, видимо, пытались, но результата нету.

Тоже есть такая камера, но я ее немного по другому настроил, по срабатыванию датчику движения она делает несколько фото и шлет в телегу.

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

Прошил под точку доступа "home", при изменении под другой в скетче SSID и повторной прошивке - все равно остается старый SSID в памяти, как избавится от этой проблемы?

проблему решил, нашел ответ на одном из форумов:

"Думаю, что мой комментарий сэкономит кому-то много времени. Лично я потратил на решение проблемы два дня.

Сначала модуль отлично работал. Я загрузил на него прошивку из примера библы, поделал видеострим. Потом загрузил разные прошивки с использованием камеры, которые нашёл в интернете, тоже всё хорошо работало. Затем наступил такой момент, когда камера перестала показывать - просто чёрный квадрат или вообще ничего.

Что я только не делал - переустанавливал IDE и библу, искал проблему на программном и физическом уровне и ничего не помогало. Потом меня вдруг осенило, что прошивки, которые я ранее загружал в модуль, после загрузки следующей прошивки, не удалялись окончательно. И в результате прошлые прошивки как-то влияли на ту, что загружена сейчас. Для меня это было нежданчиком. Не знаю, есть ли такое в платах Arduino, но в ESP такое явление есть.

В общем решение проблемы крылось в полном стирании памяти модуля. И для этого надо сделать следующее:
1. Установите Pyton, а потом esptool.py по этой инструкции - https://kvvhost.ru/2020/04/30/esptool-windows-10/
2. Убедитесь, что esptool.py установилась, как показывается в этой статье.
3. Подключите модуль к компу так, как подключаете при прошивке.
4. В командной строке Windows впишите команду esptool.py --port COM6 erase_flash (вместо COM6 укажите ваш порт, через который шьётся модуль).
5. Нажмите на модуле кнопку Reset, а потом на компе Enter, чтобы выполнить команду из командной строки.
6. Отпустите Reset, когда модуль начнёт подключаться (в командной строке появятся _______......._______).
7. Подождите несколько секунд, пока не увидите сообщение в командной строке Chip erase completed successfully in 9.3s
Hard resetting via RTS pin...
8. Всё. После этого загружайте любой скетч на чистую память и он будет работать как и должен.

Этот способ решит не только проблему с отсутствием видео от камеры, но и некоторые другие проблемы связанные с неполным удалением предыдущих прошивок.

"

А микрофон кто-то пробывал подключать?

У меня ужастно репит.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий