Использование ESP32 + камера
Доступ к изображению доступен через адрес [IP]/cam в виде картинки и [IP]/camstream в виде потока, а так же доступна отправка изображения в Telegram, ICQ, MQTT и на любой веб сервер http запросом, в том числе и на Narodmon.ru. В Free режиме доступны только базовые функции опции.
Хотя опция может отправлять изображение сразу на все включенные опции (POST, Telegram, ICQ, MQTT) , но имеются ограничения по ресурсам и при нехватке ОЗУ может произойти отказ в отправке изображения или привести к сбоям, особенно при отсутствии на борту памяти PSRAM. Даже использование PSRAM не дает "свободу" - она не дает полную замену внутренней быстрой ОЗУ !!!
Поддержка готовых плат ESP32-CAM (вариант 0), TTGO T-Camera(вариант 1), M5stack(вариант 2). Вариант выбирается в шестеренке опции. Сейчас существует множество готовых плат и иногда невозможно определить их название, для определения варианта расспиновки камеры в конце статьи есть таблица вариантов. Если там нет Вашего варианта - добавлю. Обращайтесь в чат или в обратную связь Не все платы имеют на борту память PSRAM !!!
Поддерживаются модели камер OV2640 (2мп), OV3660(3мп) и OV5640(5мп, не проверен). Поддержка устаревшей OV7725 возможна, но она не поддерживает jpeg сжатие и имеет максимальное разрешение 640х480.
Для успешного запуска и работы камеры требуется обеспечить модуль хорошим питанием и качественным подключением к источнику питания, используя качественные и желательно короткие провода !
Image resolution - настройка разрешения камеры. На данный момент рекомендуемое максимальное разрешение 800х600, при включенной поддержке PSRAM максимальное разрешение доступно до 2560x1920 (зависит от модели камеры)
Buffer count - количество буферов для изображений, если нужен поток и больше fps включаем 2, при большем значении улучшение не значительное. По умолчанию 1. Использования нескольких буферов рекомендуется только если есть PSRAM.
Jpeg quality - качество jpeg изображения, доступно значение от 3 до 63. 3 - наилучшее, 63 - наихудшее. По умолчанию - 12.
Применение настроек происходит после их сохранения. Показывает статус работы камеры , возможно отображение ошибки во время инициализации камеры - требуется обновить страницу.
Из-за того, что камера использует много GPIO, то gpio 18 и 19 обычно заняты и safe mode в данном случае включить можно только используя опцию Safe GPIO.
190 - отправка изображения на все подключенные сервисы модуля;
191 - отправка изображения POST запросом;
192 - отправка изображения в Telegram;
193 - отправка изображения в MQTT;
194 - отправка изображения в ICQ;
195 - сохранение изображения на SD карту(в разработке).
Например данные GPIO можно указать в планировщике заданий, Logic2, Interpreter, или в опции работы с прерывании совместно с датчиком движения.
Открыть изображение можно по ссылке [IP]/cam как картинку и [IP]/camstream в виде потока. При открытии потока веб интерфейс будет занят и не доступен.
При включении опции "Новый вариант веб сервера" возможно улучшение или ухудшение работы вывода потока(не протестировано)
В настройках опции камеры можно настроить интервал отправки, если этот параметр равен нулю, то отправка не происходит.
Доступен запрос изображения по команде cam, если включен прием команд в опции Telegram. Описание настройки опции находится в документации по Telegram.
В настройках опции камеры можно настроить интервал отправки, если этот параметр равен нулю, то отправка не происходит.
Доступен запрос изображения по команде cam, если включен прием команд в опции ICQ. Описание настройки опции находится в документации по ICQ.
Модуль отправляет изображение в топик login/hostname/cam в бинарном формате. Приложение, должно уметь его читать. Например MQTT Dash.
В настройках требуется указать интервал отправки, если он равен 0, то отправка не включена.
Опция отправки изображений может отправлять текущую картинку на любой сервер, поддерживающий POST загрузку, например на narodmon.ru
В настройках требуется указать интервал отправки, если он равен 0, то отправка не включена.
URL address - адрес скрипта на сервере, куда мы отправляем картинку. Доступна передача GET параметров в том числе используя метрики.
Name post - имя параметра на сервере.
Image interval send - интервал отправки, Минимальный интервал 900 секунд (15 минут). Меньший интервал игнорируется. При слишком частых запросах возможна авто блокировка по IP адресу
URL address - narodmon.ru/post
Name post - ключ API, полученный на сайте при регистрации камеры
$uploaddir = '/hdd/upload/'; // адрес для сохранения файла $img="postname"; // Name post $uploadfile = $uploaddir . basename($_FILES[$img]['name']); if (move_uploaded_file($_FILES[$img]['tmp_name'], $uploadfile)) { echo "OK.\n"; } else { echo "error!\n"; }
Данная плата содержит память PSRAM, SD кардридер , а так же LED светодиод. На борту нет преобразователя USB-UART ! Размер платы 25х40мм На GPIO 4 подключен светодиод. 16 и 17 GPIO заняты под PSRAM. Запуск в режим программирования производиться путем замыкания GPIO 0 до запуска питания (рекомендуется)!
Вариант 0 | Вариант 1 | Вариант 2 | Вариант 3 | |
PWDN | 32 | НЕТ | НЕТ | 26 |
RESET | НЕТ | НЕТ | 15 | НЕТ |
XCLK | 0 | 4 | 27 | 32 |
SIOD | 26 | 18 | 25 | 13 |
SIOC | 27 | 23 | 23 | 12 |
D7 | 35 | 36 | 19 | 39 |
D6 | 34 | 37 | 36 | 36 |
D5 | 39 | 38 | 18 | 23 |
D4 | 36 | 39 | 39 | 18 |
D3 | 21 | 35 | 5 | 15 |
D2 | 19 | 26 | 34 | 4 |
D1 | 18 | 13 | 35 | 14 |
D0 | 5 | 34 | 17 | 5 |
VSYNC | 25 | 5 | 22 | 27 |
HREF | 23 | 27 | 26 | 25 |
PCLK | 22 | 25 | 21 | 19 |