В этой статье я Вам покажу как можно встроить ТелеграммБот в модуль ESP32-CAM. И удаленно управлять им, используя только мессенджер Telegram. (показываем получение фото)
к этой статье есть видео на rutube, YouTube, ВКонтакте (ссылки снизу)
Внешний вид нашего модуля ESP32-CAM
Скриншот приложения Telegram - запрос температуры
Скриншот приложения Telegram - запрос фото
Цель статьи:
Мы будет получать фото с модуля ESP32-CAM и как бонус, я приделал к нему датчик DHT-22. т.е. мы в добавок узнаем какая температура и влажность.
С любого смартфона, где установлен мессенджер Telegram. Можно будет написать нашему Боту всего 3 сообщения:
/photo - получить фото (с участием встроенный вспышки),
/temp узнать текущую температуру и влажность воздуха. В ответ придет сообщение и фотография. Все очень просто.
Ну и проверочная коммманда, если мы забыли что можно запрашивать:
/start - модуль выдаст меню с коммандами
Настройка Arduino IDE:
Вам понадобиться скачать файл с проектом: ESP32_Telegram_WEB.ino .
( На всякий случай, он же в виде архива ZIP: ESP32_Telegram_WEB.zip . ) Открыть его с среде разработки Arduino IDE 1.8.13
Внести свои логин и пароль от Wi-Fi. И указать свой ИД + токен от Телеграмм Бота.
Примечание-1: Предполагаем что сам Телеграмм бот - у Вас уже есть (ID + Token). Если нет, то скоро выйдет отдельная статья, про создание бота.
Примечание-2: Среда Arduino IDE «по умолчанию» не умет работать со сторонним модулем ESP32-CAM и ее нужно настроить для этого
Итак: Нужно подключить 3 дополнительные библиотеки : проверено на версии Arduino IDE 1.8.13
(берём по ссылкам с моего сайта, нужную версию, а в самом низу статьи ссылка на официальные сайты, где я их взял, там версии посвежее есть)
Не советую. Можно подключить автоматически, через среду Arduino IDE, меню Скетч, Подключить библиотеку, добавить ZIP библиотеку.
В этом случае все будет работать, но лежать они будут неизвестно где, в том числе могут попасть в папку «Мои документы»
написанную русскими буквами, что очень не желательно ! Потому…
Советую подключать руками. Скачивам эти три ZIP файла, распаковываем, и полученные «папки» кидаем туда где лежит сама Arduino IDE,
там есть папка «libraries», кладём всё в неё (например так C:\Arduino\libraries\)
Добавим поддержку платы ESP32 в среду Arduino IDE:
Запускаем среду Arduino IDE, открываем наш проект, и теперь нам надо выбрать модуль ESP32-CAM, видим на фото что пока модуля нет в списке допустимых для выбора, добавим его поддержку:
Идём в менеджер плат (на фото - Инструменты-Плата-Менеджер плат), добавляем ESP32 или пишем в поиске ESP32
Выбираем esp32 by Espressif System, я взял версию 1.0.6, тут что то скачивается, распаковывается
Потом выбираем нужную плату, AI Thinker ESP32-CAM
Теперь наш проект можно скомпилировать, без ошибок.
В списке появиться несколько десятков плат, выбираем нашу
USB - UART переходник:
Теперь, когда Вы удачно скомпилировали проект (с Вашими данными на Wi-Fi и телеграмм бот).
Его нужно загрузить в модуль, этот модуль не имеет встроенного USB-UART переходника, потому придётся воспользоваться внешним. Вот мой переходник-конвертер
Модуль USB к TTL CP2102https://aliexpress.ru/item/32694152202.html
ему нужен драйвер, обычно он лежит в штанной комплектации с самой Arduino IDE, (перейти в папку с IDE и там будут папка «drivers» внутри есть этот драйвер)
Соединяем ESP32-CAM и CP2102
Нужно соединить 4 провода, плюс-плюс, минус-минус, Tx-Rx, Rx-Tx (плюс и минус соединяем прямо, а провод данных Tx-Rx - перевёртываем)
У нас 2 варианта работы с ESP32-CAM
1. Обычная работа
2. Программирование
Если просто включить наш модуль ESP32-CAM, то это обычная работа, а если замкнуть контакты IoO и Gnd (на фото я их выделил зелёным квадратом),
то микросхема войдёт в режим программирования (ожидания прошивки). Это может быть непривычно для тех, кто привык к стандартной Arduino,
но на самом деле это очень хорошая вещь, нельзя случайно залить прошивку, по ошибке, когда это вовсе не нужно. Так что к этому надо один раз привыкнуть, и всё станет очень удобно.
Итак. подключаем наш модуль, соединённый с конвертером USB-Uart к компьютеру (смотрим на фото выше).
Заходим в Arduino IDE, открываем нужный COM-порт, (который определился при установке драйвера CP2102) на скорости 115200.
И смотрим что у нас в COM порте, самое интересное там при загрузке нашего модуля ESP32-CAM, поэтому нажимаем на модуле кнопку RST.
Чтобы перезагрузить модуль, мы должны увидеть что то вот такое: (фото ниже)
Это успех ! мы правильно подключили наш модуль
Но Если мы этого не видим, то проверяем тот ли COM-порт открыт, верно ли выбрана скорость, может быть провода Tx-Rx подключены неверно.
Добиваемся чтобы в COM-порт при перезагрузке модуля ESP32-CAM по кнопке RST вышло такое сообщение.
Теперь, только при успешном подключении… вводим модуль в режим программирования, для этого соединяем контакты Io0 + Gnd (смотрим фото с подключение конвертера).
И снова нажимаем кнопку RST, теперь в COM-порт выводиться приглашение на внесение нашего «скетча».
А вот так выглядит COM-порт в режиме заливания прошивки
Так наш проект в среде Arduini IDE мы с Вами уже проверили, то просто нажимаем Меню-Скетч – Загрузка, здесь всё штатными средствами Arduino IDE,
как для обычной Arduino. Повторно произойдет компиляция, (заметно дольше чем для обычной Arduino) и начнется сама загрузка скетча в наш модуль ESP32-CAM.
Ждем завершения. Ориентируемся на бегущие проценты, в нижнем чёрном окне. По завершении прошивки там вылезет сообщение. Всё. Прошивка внутри ESP32-CAM.
Снимаем перемычку, для ввода в программирование, и перезапускаем модуль кнопкой RST.
Еще раз повторюсь. План действий для прошивки.
1. Нет перемычки. Убедились, что модуль отвечает в COM-порт, все контакты свободны, датчики отключены.
2. Ставим перемычку на контакты Io0 + Gnd. (Контакты, 3-4 справа сверху)
3. нажимаем RST
4. видим в COM-порту приглашение на прошивку
5. в среде Arduino IDE нажимаем Меню – Скетч - Загрузка
6. ждем завершения передачи данных
7. снимаем перемычку
8. нажимаем RST
9. пользуемся модулем с новой прошивкой (можно подключить датчик DHT)
Несколько слов о питании платы:
Если мы в квартире, со стабильным электроснабжением. То используем обычную зарядку для телефона, а вот если мы за городом, как в моём случае на даче,
то напряжение в сети 220 вольт, очень нестабильно, днём у меня часто 180 вольт, а вот ночью, всё хуже, напряжение поднимает более 260 вольт.
Что приведет зарядку от телефона , работающую круглосуточно, к поломке в течении пол года – год. Потому, при нестабильном напряжении в сети,
лучше использовать регулятор напряжения LM2596. про этот модуль питания я тоже выпущу отдельное видео
5. Нужно подключить дополнительные библиотеки 3 - дополнительных библиотеки (Здесь просто зайти браузером и руками скачать нужную версию) или скачать с моего сайта