ESP01s простые проекты
"Робот и Я"Описание контроллера
ESP01s - один из самых простых и дешевых контроллеров с 4 портами ввода/вывода (GPIO0, GPIO1, GPIO2, GPIO3) для подключения устройств, но при этом имеющий на борту WiFi, Bluetooth, Flash-память на 1 Мб.

На модуле ESP-01S установлен один светодиод - на выводе GPIO2
Нам понадобится:
- Модуль ESP-01S, брать нужно с запасом и у разных поставщиков, часто попадаются бракованые, например: ссылка_1 , ссылка_2, ссылка_3. Цена модуля около 70 руб;
- Программатор для загрузки прошивки и подключения по USB. Бывают 3х типов по наличию кнопки перевода в режим загрузки, ценой 50 до 200 руб: самый дешевый (нужно самому паять кнопку), дороже (кнопка припаяна) и красненький;
- Колодка для подключения модуля на макетную плату, ценой около 25 руб (ссылка_1, ссылка_2);
- Модуль питания на макетную плату с переключением питания на колодках 3.3В и 5В (ссылка_1, ссылка_2). Не забываем, что все платы ESP работают только от 3.3 В;
- USB hub с кнопками включения сделает более удобным прошивку модулей. В фикспрайсе 200 руб или подождать из Китая. И можно по очереди прошивать несколько модулей.

Если взяли самый дешевый программатор, нужно припаять кнопку между пинами 1(Gnd) и 5 (gpio0). Кнопу удобно зафиксировать на термоклей с торца программатора

Когда всё доехало, можно приступать к тестированию и проектам.
Подготовка Arduiono IDE
Подробно подготовка Arduiono IDE описана в этой статье.
Необходимо выбрать плату Generic ESP8266 Module и указать COM-порт подключения.
Встроенный светодиод на пине 2.

Проекты
1.Проверка модулей
Для проверки модулей необходимо подключить модуль к программатору и с зажатой кнопкой подключить к USB компьютера, после чего кнопку отпустить. Модуль переводится в режим загрузки скетча.
Открываем: Файл->Примеры->ESP8266->Blink

Можно изметить частоту мигания светодиода, и загрузить в плату. После загрузки необходимо отключить программатор от компьютера, а подключить его НЕ зажимая кнопку. Так модуль ESP01 встает в режим выполнения прошивки.
Увидели мигание на светодиоде (GPIO2) с заданной частотой, значит всё хорошо, если не мигает, скорее всего проблемы с модулем, и пробуем следующий.
Так можно сразу отсортировать рабочие модули, что бы в последствии не тратить время на работу с браком.
2.Простейший пример с кнопкой
Один из самых распространенных способов применения ESP01 - это беспроводная розетка или реле.
3.Управление адресной лентой через браузер
удобно тем, что не требуется установка приложений, а доступ обеспечивается с любых устройств локальной сети через браузер.
Небольшая доработка предыдущего примера позволит сделать удобный доступ к управлению освещением

4.Применение скриптов JS и стилей CSS
5.Создание странички с разметкой и фото
На модуле можно сделать небольшой домашний сайт, на который будет доступ как из локальной сети, так и через интернет.
Самый простой и удобный генератор HTML разметки:
https://html-online.com/editor/

С его помощью можно настроить внешний вид и наполнение странички.
Трудность в том, что придутся построчно заключать теги в кавычки, при этом экранируя двойные кавычки внутри команд следующим образом \"
6. Управление домашними устройствами через TelegramBot
Проблема всех телеграм ботов - необходимость наличия сервера на котором он будет крутиться. Во время написания и отладки он сможет работать на ПК в течение времени пока запущен скрипт бота. После выхода из интерпритатора бот работать перестанет. Покупать серверное пространство для DIY экспериментов не целесообразно.
Отличным выходом может стать использование плат ESP.
Наш простой бот будет работать до тех пор, пока ESP подключена к интернету.
Для работы с ботами есть библиотека Universal-Arduino-Telegram-Bot
Более подробно о библиотеках можно прочитать в статье
Общая информация о возможностях чатботов тут
Полезные ссылки на хорошие статьи
- Ссылка на исходники библиотеки: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
- Подключение АЦП и аналоговых датчиков: https://pikabu.ru/story/dobavlyaem_analogovyiy_vkhod_na_esp01_6927940
- https://smacont.ru/wiki/001/
- https://arduino-tex.ru/news/87/http-server-esp8266-vyvodim-informaciyu-html-javascript-i-css.html
- http://arduino-kid.ru/blog/telegram-bot-knopki-kak-sdelat-knopku-v-telegram
