Малиновый дом raspberry house

ESP32-CAM + Telegram Bot + настройка Arduino IDE

В этой статье я Вам покажу как можно встроить ТелеграммБот в модуль 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 (берём по ссылкам с моего сайта, нужную версию, а в самом низу статьи ссылка на официальные сайты, где я их взял, там версии посвежее есть)

ArduinoJson-7.0.0.zip

Universal-Arduino-Telegram-Bot-master.zip (1.3.0)

DHT_sensor_library-1.2.3.zip

Не советую. Можно подключить автоматически, через среду 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 CP2102 https://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. про этот модуль питания я тоже выпущу отдельное видео


Ссылки на файлы, Группа ВКонтакте, YouTube.:

Файл с проектом : ESP32_Telegram_WEB.ino
Он же в виде архива ZIP: ESP32_Telegram_WEB.zip

Ссылка на группу ВКонтакте: https://vk.com/raspberry_house
Ссылка на конкретное видео в ВКонтакте: https://vk.com/raspberry_house

Ссылка на канал rutube: https://rutube.ru/channel/39860147/
Ссылка на конкретное видео в rutube: https://rutube.ru/channel/39860147/

Ссылка на канал YouTube: https://www.youtube.com/@raspberry800
Ссылка на конкретное видео на YouTube: https://www.youtube.com/@raspberry800


Ссылки на сторонние сайты, откуда я взял проект и некоторые файлы:

1. Вот этот сайт ( https://voltiq.ru ) помог мне настроить среду Arduino IDE: https://voltiq.ru/instruction-installing-esp32-board-in-arduino-ide-for-windows/

2-1. (яндекс-дзен: Электроника, ESP32, Arduino) здесь я скачал прям готовый пример: https://dzen.ru/esp32

2-2. конкретная статья (ESP32 CAM подключение и прошивка): https://dzen.ru/a/X6HVz138lCrXj9qF

2-3. про кошек, прям готовый пример который я скачал: https://dzen.ru/a/Yr1MFCHCYGuW_akT

3. еще статья про ESP32 CAM: https://dzen.ru/a/ZBRSpOhPwj_I-BXB

4. статья с подключением к COM-порту: https://arduino-tex.ru/news/34/raspinovka-esp32-cam-ai-thinker-naznachenie-gpio.html



5. Нужно подключить дополнительные библиотеки 3 - дополнительных библиотеки (Здесь просто зайти браузером и руками скачать нужную версию) или скачать с моего сайта

5-1. – ArduinoJson, я взял версию 7.0.0: https://www.arduino.cc/reference/en/libraries/arduinojson/

5-1+. Или взять с моего сайта – ArduinoJson, 7.0.0: ArduinoJson-7.0.0.zip

5-2. – Universal-Arduino-Telegram-Bot-master: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot

5-2+. Или взять с моего сайта – Universal-Arduino-Telegram-Bot-master.zip, 1.3.0: Universal-Arduino-Telegram-Bot-master.zip

5-3. – DHT, я взял версию 1.2.3: https://www.arduino.cc/reference/en/libraries/dht-sensor-library/

5-3+. Или взять с моего сайта – DHT, 1.2.3: DHT_sensor_library-1.2.3.zip



6-1. Производитель чипа ESP32 – Espressif: https://www.espressif.com/

6-2. производитель платы - AI Thinker ( AI Thinker ESP32-CAM (ссылка на саму плату) ): https://docs.ai-thinker.com/en/esp32-cam


7. Интересный блогер, если хотите профессионально работать с этой микросхемой: https://www.youtube.com/@narodstream552

7+. Он же, на своём сайте, очень много информации: https://narodstream.ru


8. Скачать Arduino IDE 1.8.13 - windows (официальный сайт) https://downloads.arduino.cc/arduino-1.8.13-windows.exe








Малиновый дом - дом в котором живёт малина

http://raspberry.msk.ru