Найти тему
Электроника, ESP32, Arduino

Система фото-наблюдения на ESP32-CAM с управлением через мессенджер Telegram

Отправка фото по запросу, отправка фото при срабатывании датчика движения, мониторинг температуры и влажности, удаленное управление фотовспышкой и PIR сенсором через мессенджер Telegram. Проект можно собрать за вечер.

Фотоловушка на ESP32-CAM с управлением через мессенджер Telegram
Фотоловушка на ESP32-CAM с управлением через мессенджер Telegram

Для возможности установки на штатив от фотоаппарата и крепления внешней антенны я использовал 2 алюминиевых уголка купленных в Леруа Мерлен.

Крепление фотоловушки на ESP32-CAM на штативе
Крепление фотоловушки на ESP32-CAM на штативе

Как и в прошлое лето, конструкция использовалась для присмотра за домашними котами, которые остались на 8 дней дома одни.

Примеры фото с фотоловушки на ESP32-CAM отправленных при срабатывании датчика движения:

ESP32-CAM
ESP32-CAM
ESP32-CAM
ESP32-CAM
ESP32-CAM
ESP32-CAM

Примерно в середине периода нашего отсутствия, приходил наш друг кошатник, который поменял воду и накормил влажным кормом.

Знакомый покормил влажным кормом и поменял воду
Знакомый покормил влажным кормом и поменял воду

Компоненты и модули:

Спецификация фотоловушки на ESP32-CAM
Спецификация фотоловушки на ESP32-CAM
  • внешняя Wi-Fi антенна
  • датчик температуры и влажности SHT3X
  • датчик движения hc-sr501
  • кнопка
  • клеммник
  • разъем PBS-1x20 (PBS-20) шаг 2.54 мм
  • макетная печатная плата под пайку
  • USB-UART преобразователь для прошивки платы
  • источник питания с напряжением 5V и выходным током 1-2А
Принципиальная электрическая схема
Принципиальная электрическая схема

Разъем XS1 предназначен для прошивки платы, и отладки кода через COM порт. Кнопка BT0 предназначена для перевод платы ESP32 в режим прошивки. (отключаем питание, нажимаем кнопку, подаем питание, отпускаем кнопку, прошиваем плату, снова снимаем и подаем питание)
Подробнее читайте тут:

Переходник, который есть у меня, позволяет при этом обходиться без дополнительных проводов (правда он довольно дорогой).

-9

У вас скорее всего другой переходник - поэтому XS1 лучше распаять именно так - как удобнее будет им пользоваться.

Встроенная антенна на плате ESP32-CAM "ни о чем". У меня соединение рвалось, а сами фото уходили очень долго (точка доступа правда находится в другом конце квартиры) - поэтому установка внешней антенны крайне желательна. Для этого плату ESP32-CAM придется доработать с помощью напильника паяльника. Подробнее читайте тут:

В отличии от прошлого проекта, где фотографии отправлялись на почту:

флеш-карта в этом проекте не используется. Фотографии напрямую из оперативной памяти отправляются в мессенджер Телеграмм. Поэтому пир-сенсор и датчик температуры/влажности подключены на свободные контакты ESP32 CAM.

  • PIR Motion Sensor: GPIO 13
  • SHT3X: GPIO 14 (SDA), GPIO 15 (SCL)

Также появляется возможность использовать встроенный в плату ESP32 CAM светодиод фотовспышки. (GPIO 4).

Дополнительный встроенный в плату светодиод (с обратной стороны платы) также используется в данном проекте (GPIO 33) - он гаснет каждый раз когда срабатывает датчик движения.

Светодиод с обратной стороны платы светится красным цветом.
Светодиод с обратной стороны платы светится красным цветом.

Как это работает?

Для управления потребуется создать бота в Telegram.

Для начала управления и обзора доступных команд можно отправить этому боту команду /start

/start
/start

Для того, чтобы запросить фото отправляем команду /photo

/photo
/photo

Команда /flash включает/выключает встроенный светодиод фотовспышки.

Фото сделано ночью с использованием встроенной фотовспышки
Фото сделано ночью с использованием встроенной фотовспышки

Команда /readings позволяет запросить температуру, влажность, состояние светодиода вспышки, состояние датчика движения и паузу через какое время присылать сообщения.

/readings
/readings

Если котики начнут выяснять отношения под камерой - Телеграмм будет завален сообщениями, что в поездке не очень удобно. Величина паузы по умолчанию 15 секунд (не более 4-х сообщений в минуту).

Настраивается командами
/pirup (+5 секунд)
/pirdown (-5 секунд)

После выполнения команды
/pir
будет активирован датчик движения, и каждый раз при обнаружении движения ESP32 CAM будет отсылать в Телеграмм фото. В поездке я как правило на ночь отключал датчик движения, а утром включал - вы можете сами придумать подходящий сценарий использования этого функционала)

Кто-то пришел "хомячить" корм
Кто-то пришел "хомячить" корм

Как это прошить?

Код написан в среде Arduino IDE:

  • установить поддержку плат ESP32;
  • установить библиотеки Universal-Arduino-Telegram-Bot-master, Adafruit_SHT31; (есть в архиве в конце этой статьи)
  • установить библиотеку ArduinoJson (через меню "Управлять библиотеками")
  • создать телеграмм бота и получить chatId и BOTtoken

Инструкция по созданию телеграмм бота есть на этом сайте (ENG)

Для проекта опубликованного на данном ресурсе потребуется только ESP32-CAM. Для начала рекомендую собрать его, и уже потом переходить к пайке датчиков движения и температуры.

В скетче также указываем параметры для подключения к домашней сети Wi-Fi: ssid и пароль

const char* ssid = "";
const char* password = "";
String chatId = "";
String BOTtoken = "";

А полный код данного проекта качайте по этой ссылке:

Полный список всех статей канала доступен по этой ссылке:

Всем удачи!