Серия «ESP для Новичков»

ESP для Новичков. Часть 3

ДИСКЛЕЙМЕР. Я не гуру программирования, я чуть больше чем новичок. Цель данных постов - популяризация и только. Если вы считаете, что мне надо было начать с другого, писать о другом или писать по-другому, просьба к вам сделать свою серию постов.

Также хочу выразить благодарность @AlexGyver, за его неоценимую работу в популяризации микроэлектроники, а так же за создание отличных и понятных библиотек.

Итак. В прошлом посте мы настроили ArduinoIDE, так же подключили ESP к компу и загрузили в нее тестовую программу. Сегодня мы разберем проэкт умного реле на ESP с управлением через телеграм бота. Для работы мы используем библиотеку все того же AlexGyver - FastBot, как одну из самых простых и понятных в работе.

Для начала разберемся с физической частью. Так как реле у нас 5VDC а сам микроконтроллер 3.3 VDC, в финальном варианте у нас будет дополнительно установлена AMS1117, но на момент отладки она будет не нужна, так как на макетке есть вывод 5V. Подключение будет выглядеть так. Не обращайте внимания что модуль на 2 реле, он отличается только количеством реле.
GND -> GND
5V -> VCC
IO5 -> In1

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

Далее думаю нужно немного отойти от темы и вернуться к ней после создания своего ТГ бота. По ссылке вы найдете подробный гайд по его созданию. Обязательно сохраните токен бота, он будет необходим, так же желательно узнать свой ID, по ссылке выше это также есть. По этой ссылке есть описание библиотеки, которую мы будем использовать.

После создания бота, можно перейти к разбору кода, прошу критиков заметить, это мой кривой код, но он работает и мне этого достаточно:)

Качаем нужные библиотеки:

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

В поиск вписываем "FastBot"

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

Устанавливаем. Далее перейдем к коду. Код состоит из нескольких основных "этапов", в первой части мы указываем библиотеки и переменные, которые будем использовать в программе, вторая часть это функция при запуске микроконтроллера, обозначается как
void setup( ) { } - Все, что будет указано между фигурных скобок, будет относиться к этой функции. Эта функция запускается один раз при запуске.
Третья часть это функция которая работает по кругу, то есть постоянно исполняется на микроконтроллере и обозначается как
void loop() { } - Все, что будет указано между фигурных скобок, будет относиться к этой функции. Эта функция запускается по кругу до бесконечности.
Так же есть отдельные функции под определенные задачи, они отрабатывают только когда мы их вызываем.

Здесь вы можете найти подробное описание синтаксиса и как пишется код, также у Алекса есть канал на Ютуб где были видеоуроки на эту же тему. (как фанбой ей богу..)

Здесь мы видим часть с объявлением наших переменных и подключением библиотек.
Далее будет код и некоторые пояснения к ниму. Итак.

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

Разберем некоторые положения:
Как видите 15 строка у меня закомменчена, то есть все что идет после "//" не попадает в код и не обрабатывается программой. Закомменченый метод позволяет боту использовать "белый" лист, то есть он будет отвечать только пользователям с ID указанном в скобках-ковычках. В данном случае этот метод исключен.
Строки 26 и 31, в них указано, что при команде Off, положение RELAY(IO5) изменится на ВКЛ, т.е. на этот выход придет логическая единица(иначе говоря придет 3.3 вольта), а на команду On наоборот приходит ВЫКЛ (иначе говоря на выходе будет 0 вольт). Это сделано потому, что сам модуль реле управляется от обратного. Когда на входе модуля реле 0, реле включается и наоборот. Это конечно немного контр-интуитивно, но как есть.
Строка 20, в ней указан метод OTA, что расшифровывается как Over-The-Air. Этот метод позволяет нам прошивать наш контроллер не подключая его к компу, а прямо из ТГ бота. Для этого необходимо экспортировать прошивку как бинарный файл, а затем закинуть ее боту в чат. Делается это так:

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

И собсна сам результат работы контроллера в чате :

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

Если у вас будут вопросы, пишите в комментариях. Я понимаю, что для новичка все это выглядит как набор букв, но без изучения синтаксиса и языка никуда, это нужно просто пройти.. Но спешу заверить, что он не так сложен и не такой объемный как кажется. Так же, могу порекомендовать изучить примеры, что идут в комплекте с ArduinoIDE, найти их можно здесь

ESP для Новичков. Часть 3 Arduino, Электроника, Самоделки, Конструктор, Esp8266, Длиннопост

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

До встречи в следующих постах!

Показать полностью 7

ESP для Новичков. Часть 2

Дисклеймер: Специально для тех 3х людей, что подписались, пишу серию постов про работу с микроконтроллерами. В частности мы будем рассматривать микроконтроллер ESP8266 на примере платы ESP12F. Прошу сразу заметить, я не супер специалист в программировании микроконтроллеров, но за последние пару лет немного в этом поднаторел и считаю что знаю достаточно, чтобы помочь въехать в тему и дальше в ней самостоятельно развиваться. Все ссылки в посте приведены как пример, чтобы понимать цену и как выглядит товар, вы можете найти все это самостоятельно если есть желание на любой другой площадке или другого продавца.

Итак.

ESP для Новичков. Часть 2 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Платка вставлена в макетку и поджата прищепкой. Далее подключаем к компьютеру через USB и выбираем COM порт. Самый простой способ определить правильный COM порт - это посмотреть какие порты доступны без подключения макетки к компу и после.

ESP для Новичков. Часть 2 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

4ая строка с низу не активна, значит у меня нет активных COM портов. Подключаем макетку

ESP для Новичков. Часть 2 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Появился порт COM3 - это и есть нужный нам порт для заливки прошивки. Проверяем что все работает и пишем простенький код, для проверки работоспособности.


void setup() {

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

digitalWrite(LED_BUILTIN, HIGH);

delay(1000);

digitalWrite(LED_BUILTIN, LOW);

delay(1000);

}


ESP для Новичков. Часть 2 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

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

ESP для Новичков. Часть 2 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Ждем завершения загрузки и смотрим на ESP12F, на ней должен начать мигать встроенный светодиод синего цвета раз в 1 секунду.

Если в результате у вас все получилось, мы можем переходить к следующей части с разбором кода и созданием умного реле. Спасибо за внимание.

Показать полностью 5

ESP для Новичков. Часть 1

Дисклеймер: Специально для тех 3х людей, что подписались, пишу серию постов про работу с микроконтроллерами. В частности мы будем рассматривать микроконтроллер ESP8266 на примере платы ESP12F. Прошу сразу заметить, я не супер специалист в программировании микроконтроллеров, но за последние пару лет немного в этом поднаторел и считаю что знаю достаточно, чтобы помочь въехать в тему и дальше в ней самостоятельно развиваться. Все ссылки в посте приведены как пример, чтобы понимать цену и как выглядит товар, вы можете найти все это самостоятельно если есть желание на любой другой площадке или другого продавца.

Начнем с вопроса - Сколько стоит, где купить и что необходимо чтобы начать вливаться.

1) Сама по себе платка ESP12F, я знаю что есть Wemos и он основан на этой же платке, только с ногами, но я специально буду рассматривать платку в отрыве от внешней обвязки. Хотя бы потому что так она занимает меньше места. Для меня это плюс. Ссылка на саму платку.

2) Макетная платка для программирования ESP12F. Без макетки тут "никак", на самом деле можно без нее, но тогда нужен будет UART конвертер и будут сложности чисто по части удобства. Ссылка на макетку. По ссылке есть так же макетки для платок на основе ESP32, но мы их рассматривать не будем.

3) Кабель microUSB-USB для подключения макетки к компьютеру, тут я думаю проблем не возникнет.

4) Модуль реле для Ардуины, нам он будет нужен только для примера работы (спойлер: сделаем свое умное реле с управлением через телеграм бот). Ссылка.

5) Блок питания на 5V DC(вольт постоянного тока), вольтаж такой же как в любом заряднике. Можете взять например старую USB зарядку от ненужного телефона, либо взять что то вроде того что по ссылке ниже. Питание самого микроконтроллера у нас 3.3V DC, но мы возьмем 5V DC, потому что нам нужно запитать модуль реле, а он 5 вольт. Ссылка.

6) AMS1117. Эта замечательная микрушка позволяет нам сделать из 5 вольт 3.3 вольта. Ссылка.

Так же мы можем добавить сюда батарею и модуль зарядки, но это уже как нибудь потом разберем.

Так же на компьютере нам нужно установить Arduino IDE. Да, я в курсе что есть PlatformIO, но для новичка Arduino IDE выглядит менее нагруженым и более понятным. Сама по себе программа бесплатна и качается с официального сайта. Ссылка

С установкой Arduino IDE проблем возникнуть не должно, она проста как 2 копейки. Перейдем сразу к настройкам. Первое что нам необходимо, это сделать доступными профили плат ESP. Переходим в настройки

ESP для Новичков. Часть 1 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Вставляем вот эту строку "http://arduino.esp8266.com/stable/package_esp8266com_index.j..." в указанное в скриншоте поле.

ESP для Новичков. Часть 1 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Далее переходим в менеджер плат

ESP для Новичков. Часть 1 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

В поле поиска "ESP8266", устанавливаем. В моем случае уже все готово, потому кнопки Install нет.

ESP для Новичков. Часть 1 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Закрываем это окно и теперь у нас доступны платы на базе ESP8266. В нашем случае нужно выбрать Generic ESP8266 Module

ESP для Новичков. Часть 1 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Из настроек нас интересует 2, Flash Size и Erase Flash. Выставляем как на скриншоте.

ESP для Новичков. Часть 1 Arduino, Электроника, Самоделки, Конструктор, Длиннопост, Esp8266

Далее перейдем к подключению. Сама по себе ESP12F вставляется в макетку с щелчком от подпружиненых ножек и должна в ней держаться, но у меня бывали случаи самовольного выщелкивания, потому стоит использовать "крабик". Лимит поста:(

Показать полностью 6

ESP для Новичков. Дополнение

Как оказалось, в прошлой части я не добавил схему подключения к AMS1117, исправляюсь)

ESP для Новичков. Дополнение Arduino, Электроника, Самоделки, Конструктор, Esp8266

Распиновка USB Type A, на всякий случай. Если не уверены, лучше протестить мультиметром, чтобы определить + -.

ESP для Новичков. Дополнение Arduino, Электроника, Самоделки, Конструктор, Esp8266
Показать полностью 2
Отличная работа, все прочитано!