ESP для Новичков. Часть 3
ДИСКЛЕЙМЕР. Я не гуру программирования, я чуть больше чем новичок. Цель данных постов - популяризация и только. Если вы считаете, что мне надо было начать с другого, писать о другом или писать по-другому, просьба к вам сделать свою серию постов.
Также хочу выразить благодарность @AlexGyver, за его неоценимую работу в популяризации микроэлектроники, а так же за создание отличных и понятных библиотек.
Итак. В прошлом посте мы настроили ArduinoIDE, так же подключили ESP к компу и загрузили в нее тестовую программу. Сегодня мы разберем проэкт умного реле на ESP с управлением через телеграм бота. Для работы мы используем библиотеку все того же AlexGyver - FastBot, как одну из самых простых и понятных в работе.
Для начала разберемся с физической частью. Так как реле у нас 5VDC а сам микроконтроллер 3.3 VDC, в финальном варианте у нас будет дополнительно установлена AMS1117, но на момент отладки она будет не нужна, так как на макетке есть вывод 5V. Подключение будет выглядеть так. Не обращайте внимания что модуль на 2 реле, он отличается только количеством реле.
GND -> GND
5V -> VCC
IO5 -> In1
Далее думаю нужно немного отойти от темы и вернуться к ней после создания своего ТГ бота. По ссылке вы найдете подробный гайд по его созданию. Обязательно сохраните токен бота, он будет необходим, так же желательно узнать свой ID, по ссылке выше это также есть. По этой ссылке есть описание библиотеки, которую мы будем использовать.
После создания бота, можно перейти к разбору кода, прошу критиков заметить, это мой кривой код, но он работает и мне этого достаточно:)
Качаем нужные библиотеки:
В поиск вписываем "FastBot"
Устанавливаем. Далее перейдем к коду. Код состоит из нескольких основных "этапов", в первой части мы указываем библиотеки и переменные, которые будем использовать в программе, вторая часть это функция при запуске микроконтроллера, обозначается как
void setup( ) { } - Все, что будет указано между фигурных скобок, будет относиться к этой функции. Эта функция запускается один раз при запуске.
Третья часть это функция которая работает по кругу, то есть постоянно исполняется на микроконтроллере и обозначается как
void loop() { } - Все, что будет указано между фигурных скобок, будет относиться к этой функции. Эта функция запускается по кругу до бесконечности.
Так же есть отдельные функции под определенные задачи, они отрабатывают только когда мы их вызываем.
Здесь вы можете найти подробное описание синтаксиса и как пишется код, также у Алекса есть канал на Ютуб где были видеоуроки на эту же тему. (как фанбой ей богу..)
Здесь мы видим часть с объявлением наших переменных и подключением библиотек.
Далее будет код и некоторые пояснения к ниму. Итак.
Разберем некоторые положения:
Как видите 15 строка у меня закомменчена, то есть все что идет после "//" не попадает в код и не обрабатывается программой. Закомменченый метод позволяет боту использовать "белый" лист, то есть он будет отвечать только пользователям с ID указанном в скобках-ковычках. В данном случае этот метод исключен.
Строки 26 и 31, в них указано, что при команде Off, положение RELAY(IO5) изменится на ВКЛ, т.е. на этот выход придет логическая единица(иначе говоря придет 3.3 вольта), а на команду On наоборот приходит ВЫКЛ (иначе говоря на выходе будет 0 вольт). Это сделано потому, что сам модуль реле управляется от обратного. Когда на входе модуля реле 0, реле включается и наоборот. Это конечно немного контр-интуитивно, но как есть.
Строка 20, в ней указан метод OTA, что расшифровывается как Over-The-Air. Этот метод позволяет нам прошивать наш контроллер не подключая его к компу, а прямо из ТГ бота. Для этого необходимо экспортировать прошивку как бинарный файл, а затем закинуть ее боту в чат. Делается это так:
И собсна сам результат работы контроллера в чате :
Если у вас будут вопросы, пишите в комментариях. Я понимаю, что для новичка все это выглядит как набор букв, но без изучения синтаксиса и языка никуда, это нужно просто пройти.. Но спешу заверить, что он не так сложен и не такой объемный как кажется. Так же, могу порекомендовать изучить примеры, что идут в комплекте с ArduinoIDE, найти их можно здесь
Дополнительно почти к каждой библиотеке идут свои примеры работы. В частности если вы хотите написать свой код, воспользуйтесь примерами нужной библиотеки, зачастую там уже есть готовые решения ее работы, которые можно скопипастить в свой код и использовать как вам нужно.
До встречи в следующих постах!