Esp 01 прошивка arduino. Микроконтроллер ESP8266: подключение и настройка. Подключение оборудования к вашему ESP8266

… Вообщем, этот материал не ограничивается только одной темой Ардуино.

Тема ESP8266 - довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE - порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей) , причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.

Данное видео, полностью дублирует материал, представленный в статье ниже.

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

Скажу сразу - один раз запрограммировав модуль в среде разработки ардуино, мы сносим родную прошивку, и у нас пропадёт возможность работать с модулем при помощи AT-команд. Лично мне, от этого, не холодно/не жарко, но если кому-то это будет нужно - ближе к концу статьи я покажу, как обратно прошить в модуль родную прошивку, ну или какой-то загручик типа NodeMcu.

Для начала, на офф.сайте качаем последнюю версию Arduino IDE , на данный момент это 1.6.7. Более старые версии типа 1.0.5. не подойдут, потому что банально не имеют нужного функционала, а танцы с бубном нас не интересуют, не так ли?

Запускаем среду разработки и тут же идём в Файл/Настройки:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Потом идём Инструменты/Плата:/Менеджер плат...:

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

Кликаем курсором по надписи "esp8266 by ESP8266 Community " после этого, у нас появилась кнопка «Установка», выбираете нужную версию, я беру последнюю, на сегодняшний день это 2.1.0. и устанавливаю её. Среда разработки закачает нужные ей файлы(около 150 мегабайт) и напротив надписи "esp8266 by ESP8266 Community " появится «INSTALLED» то есть установлено:

Листаем список плат вниз и видим, что в списке у нас появилось много разных ESP, берём «Generic ESP8266 Module»:

Идём в «Инструменты» и выбираем нужный COM порт(у меня это COM32) Arduino или USB UART конвертора , потом ставим Upload Speed:«115200»:

Выставляем скорость 74880 и «NL & CR» и опять же отключаем и подаём питание и он ответит кое какой отладочной информацией:

Заметьте, 74880 - не основная скорость ESP8266, просто он всего лишь на ней отправляет отладочную информацию. Если модуль ничего не отправляет в консоль, тогда возможно что-то подключили не так как надо.

По умолчанию скорость должна быть 115200, но в отдельных случаях может быть и 9600 и другие… Так что попробуйте подобрать.

После подбора нужной скорости отправляем модулю «AT» и он должен ответить что всё «ОК». Команда «AT+GMR» выводит информацию о прошивке.

Прежде чем начать прошивать ESP8266 в Arduino IDE я советую дочитать статью до конца.

Теперь давайте попробуем прошить ESP8266 через Arduino IDE. Переводим модуль в режим программирования(как это сделать я писал в предыдущей статье).

Давайте зашьём мигалку штатным светодиодом:

// By MrПоделкинЦ youtube.com/RazniePodelki // special to geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() { pinMode(TXD, OUTPUT); } void loop() { digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000); }

Замигал? Значит всё сделано правильно. Откуда я взял что светодиод подключен на первый пин? В предыдущей статье есть картинка с распиновкой разных модулей , и там есть разметка портов, при использовании загрузчика Arduino(пины отмечены розовым цветом).

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

А теперь как прошить назад родную прошивку , да и как вообще прошивать модуль сторонними загрузчиками. Для ESP8266 есть такая программа как NodeMCU Flasher , которая изначально предназначена для прошивки загрузчика NodeMCU . Но как оказалось, она отлично прошивает и другие прошивки.

Я прикреплю к статье архив с данной программой и прошивкой для удобства, но всегда можно скачать новую версию NodeMCU Flasher.

В папке «nodemcu-flasher-master» есть 2 папки Win64 и Win32 и в зависимости от того какая разрядность у вашей ОС выбираем нужную. Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы:

Выбираем нужный COM порт и идём во вкладку «Config», убираем хрестик около «INTERNAL://NODEMCU» и ставим его на один пункт ниже, как на скрине:

(Если захотите прошить загрузчик NodeMCU - убираете хрестик там где его не было, и ставите - где он был, то есть около «INTERNAL://NODEMCU»).

Потом жмём по шестеренке и выбираем где лежит наша прошивка, прошивка как правило в формате *.bin(в прикреплённом архиве это «v0.9.5.2 AT Firmware.bin» которая лежит в основной папке), и так же выбираем «0x00000» как и выше.

Возвращаемся опять на вкладку «Operation» переводим модуль в режим программирования и жмём «Flash»:

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

Проверяем AT-командой «AT+GMR» сделали ли мы всё верно:

Как видите всё нормально прошилось.

Как использовать модуль ESP-01 для управления светодиодом через Интернет, модуль, который позволяет вам управлять любым электрическим устройством.

В этом уроке по ESP8266 мы используем модуль ESP-01 для управления светодиодом через Интернет. ESP8266 - дешевая, но эффективная платформа для общения через Интернет.

Он также прост в использовании с Ардуино. Пройдя этот урок, вы получите основные знания по управлению любым электрическим устройством через Интернет из любой точки мира!

Здесь мы будем использовать USB-to-TTL конвертер для программирования ESP8266 ESP-01. И мы будем использовать для разработки веб-сервера для удаленного управления светодиодом.

Как это работает

ESP8266 можно контролировать из локальной сети Wi-Fi или из Интернета (после переадресации портов). Модуль ESP-01 имеет контакты GPIO, которые могут быть запрограммированы для включения или выключения светодиода или реле через Интернет. Модуль можно запрограммировать с помощью конвертера Arduino USB-to-TTL через последовательные контакты (RX, TX).

Подключение оборудования к вашему ESP8266

Мы можем использовать конвертер USB-to-TTL или использовать Arduino для программирования ESP8266. Вот три способа, которым вы можете следовать, чтобы загрузить код в ESP8266 - выберите тот, который вам подходит лучше всего. Обратитесь к диаграммам для каждого варианта и соответствующим образом настройте своё оборудование.

1. Конвертер USB-to-TTL с использованием разъема DTR

Если вы используете конвертер USB-to-TTL с выводом DTR, загрузка будет идти гладко. Пожалуйста, имейте в виду, что серийный монитор не будет работать при этом.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. Конвертер USB в TTL без вывода DTR

Чтобы подключить конвертер USB-TTL без вывода DTR, мы должны использовать ручную передачу. Для этого мы используем две кнопки - см. следующую диаграмму:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Reset Button → RST
Flash Button → GPIO0

При загрузке кода нажмите кнопку "Загрузки" (Flash). Держите кнопку нажатой, в тот момент когда вы нажимаете один раз кнопку "Перезагрузка/Сброс" (Reset). Теперь вы можете отпустить кнопку Flash. ESP8266 теперь находится в режиме в котором вы сможете загрузить эскиз.

3. Использование Arduino Uno для загрузки кода в ESP8266

Вы можете использовать для запуска кода ESP8266 ESP-01. При загрузке кода следуйте той же процедуре, что во втором пункте, - удерживайте кнопку "Загрузки" нажатой, когда вы нажимаете один раз на сброс, а после отпускаете кнопку Flash.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Кнопка Reset → RST
Кнопка Flash → GPIO0

Загрузка кода ESP8266

Используйте любой из приведенных выше способов и откройте , затем выберите плату ESP8266 в меню:

Tools → Board → Generic ESP8266 Module
(Инструменты → Плата → Модуль ESP8266)

Примечание. Если вы не установили и не настроили плату ESP8266 для Arduino, сделайте это, выполнив шаги выше этого руководства. Затем можете идти дальше.

Теперь скопируйте приведенный ниже код в Arduino IDE и нажмите кнопку загрузки. Измените SSID на точку доступа Wi-Fi и измените пароль на свой пароль Wi-Fi и скомпилируйте.

#include const char* ssid = "YOUR_SSID";//type your ssid const char* password = "YOUR_PASSWORD";//type your password int ledPin = 2; // GPIO2 of ESP8266 WiFiServer server(80);//Service Port void setup() { Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil("\r"); Serial.println(request); client.flush(); // Match the request int value = LOW; if (request.indexOf("/LED=ON") != -1) { digitalWrite(ledPin, HIGH); value = HIGH; } if (request.indexOf("/LED=OFF") != -1){ digitalWrite(ledPin, LOW); value = LOW; } //Set ledPin according to the request //digitalWrite(ledPin, value); // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println(""); client.println(""); client.print("Led pin is now: "); if(value == HIGH) { client.print("On"); } else { client.print("Off"); } client.println("

"); client.println("Click here turn the LED on pin 2 ON
"); client.println("Click here turn the LED on pin 2 OFF
"); client.println(""); delay(1); Serial.println("Client disconnected"); Serial.println(""); }

Откройте последовательный монитор и откройте URL, показанный на вашем последовательном мониторе, через веб-браузер. Подключите GPIO 2 от ESP8266 к более длинному выводу светодиода. Теперь вы можете управлять светодиодом удаленно через Интернет!

Удалите все провода, которые были необходимы для загрузки кода. Модуль LM1117 используется для обеспечения регулируемого выхода 3,3 В. Это позволит вам сделать модуль ESP8266 или ESP-01 автономным.

Подключение ESP8266 к Интернету

В настоящее время модуль ESP8266 доступен только через локальную сеть Wi-Fi. Чтобы управлять устройствами из Интернета, вам необходимо выполнить переадресацию портов на маршрутизаторе.

Для этого найдите IP-адрес вашей системы либо с помощью команды «ifconfig» в вашем терминале, либо перейдите на страницу whatsmyip.org. Скопируйте свой IP-адрес. Теперь откройте настройку маршрутизатора и перейдите в настройки «Переадресация». Введите данные для «Сервисного порта» и «IP-адреса». Сервисный порт - это номер порта из вашего кода Arduino (служебный порт: 80):

WiFiServer server(80);//Service Port

IP-адрес тот, который вы указали ранее. Оставьте остальные настройки по умолчанию. Теперь перейдите в свой браузер и введите адрес: xxx.xxx.xx.xx: 80. Должна открыться страница для управления светодиодом.

Моуль esp-01
Схема правильного подключения модуля esp-01 для программирования и прошивки.

Прошивка модуля производится переводом в режим программирования, для этого зажимает кнопку FLASH затем не отпуская кратковременно нажимаем на кнопку RESET и отпускаем FLASH.
Модуль переведён в режим программирования.
В терминале в этот момент можно увидеть

ets Jan 8 2013,rst cause:2, boot mode:(1,6)
boot mode:(1,6) - перезагрузка по RESET в режим программирования
boot mode:(1,7) - перезагрузка по питанию в режим программирования - что не совсем правильно.

Для прошивки буду использовать программу NODEMCU FIRMWARE PROGRAMMER
(К топику будет приложен архив с программой)
Распаковываем архив и запускаем в моём случае 32 разрядную версию программы\Win32\Release\ESP8266Flasher.exe
Настраиваем под модуль, в моём случае это 1 Мегабайт флэш памяти или 8 Мегабит.




Первым делом требуется стереть память пустым файлом в 1 Мб.
Это необязательный пункт. Стирание можно пропустить и перейти к прошивке.
У кого память больше или меньше - требуется пустой файл соответствующего размера.
Далее определяемся какая нужна прошивка!
Можно использовать как готовые прошивки на NODEMCU так и с конструктора собрать с нужными себе модулями.
Например одна из старых проверенных NODEMCU

Конструктор wifi-iot.com/
Конструктор nodemcu-build.com/
или качаем последнюю

Проблемы при прошивке
Если модуль esp8266 не прошивается, проверьте подтяжки и корректность замыкания на GND GPIO0. А также не перепутаны ли RX TX.
В терминале можно проверить чтобы выдавалось boot mode:(1,6) или boot mode:(1,7).

Если после неудачной прошивке модуль не работает, пробуйте стереть память пустым файлом бланк размером с вашу память.

Если модуль после успешной прошивки не работает и в порт шлёт без конца мусор(может мигать светодиод передачи данных), случается это при прошивке последних сборок Nodemcu то дополнительно потребуется прошить файл в область памяти в зависимости от чипа памяти.
С сайта nodemcu взята информация по памяти.
0x7c000 для 512 kB, модули такие как ESP-01,03,07
0xfc000 for 1 MB, модули типа ESP8285, PSF-A85 но и некоторые разновидности esp-01,01s
0x1fc000 for 2 MB
0x3fc000 for 4 MB, тип модуля ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini идр

Если ничего не помогает, то пишите…

Добавлю официальнаг группа производителя оборудования

Китайская компания Espressif в 2014 году, начала продавать Wi-Fi модули, на чипах ESP8266. который сразу завоевал большую популярность у радиолюбителей из-за своей дешевизны и большими возможностями. На сегодняшний день существует большое количество различных модулей основанных на чипе ESP8266, в этой статье расскажу о ESP-01.

Технические параметры

Напряжение питания: 3 В ~ 3.6 В
Максимальный рабочий ток: 220 мА
Рабочая частота: 2.4 ГГц
Режимы: P2P (клиент), soft-AP (точка доступа)
Количество GPIO: 2.
Flash память: 1024 кб.
Выходная мощность в режиме 802.11b: +19.5dBm
Поддержка беспроводного стандарта: 802.11 b / g / n
Габариты: 24.8мм х 14.3мм х 8мм

Общие сведения о ESP-01

По сути, чип ESP8266 представляет собой миниатюрный микроконтроллер с Wi-Fi передатчиком, который может функционировать в условиях полной автономии, без дополнительной платы Arduino. С помощью модуля ESP-01 можно передавать данные о температуре, влажности, включать реле и так далее. Для удобства использования чипа ESP8266, производитель изготовил серию модулей от ESP-01 по ESP-14. Первый в этой серии, это модуль ESP-01 (существует еще ESP-01S, о нем чуть позже), являющийся одним из известным, из-за свой цены и небольшими размерами, всего 14,3 мм на 24,8 мм. Но в нем, есть два недостатка, это ограниченное количество программированных выводов GPIO и их неудобное расположение (неудобно макетировать).


Модуль ESP-01 представляет собой небольшую плату, черного цвета, на которой расположены два основных чипа, это микроконтроллером ESP8266 и flash память на 1 Мб. Рядом расположен кварцитовый резонатор и напечатанная антенна. На плате установлены два светодиода, красный и голубой. Красный светодиод, светится когда на модуле есть питание, а синий мигает при выполнении команд (в NSP-01S удален красный светодиод, из-за постоянного потребления электроэнергии). Для подключения модуля ESP-01, предусмотрено восемь выводов (два ряда по четыре вывода, шагом 2.54 мм), два из готовых являются цифровым входами-выходом, поддерживающие широтно импульсную модуляцию. Хотя модуль имеет по умолчанию два вывода GPIO, можно использовать другие доступные контакты, если у вас есть необходимый инструмент для пайки.


Назначение выводов
GND: «-» питание модуля
GPIO2: (Digital I / O программируемый)
GPIO0: (Digital I / O программируемый, также используется для режимов загрузки)
RX: UART прием
TX: UART передача
CH_PD: (включение / отключение питания, должны быть выведены на 3.3 В непосредственно или через резистор)
RST: сброс, необходимо потянуть к 3.3В
VCC: «3.3В» питание модуля

Подключение модуля
Для работы модуля ESP-01, необходим источник питания постоянного тока, который должен выдавать 3.3 В и током не менее 250 мА. К сожалению, штатный стабилизатор установленный на Arduino не способен выдать необходимой ток для работы ESP-01 (если решите все равно подключить ESP-01, ждите нестабильную работу и постоянную перезагрузку). Кроме того, логические сигнал, данного модуля, рассчитан на 3.3 В, то есть на вывод RX необходимо подавать напряжение 3.3В, а с вывода TX будет напряжение равное 3.3 В (так же и для других выводов). Если необходимо подключить модуль к Arduino или другим контроллерам, которые выдают на логический вывод 5 В, необходимо использовать резисторы или модуль логических уровней, если подключать напрямую, модуль выйдет из строя.

Внимание! ESP-01 очень капризные к питанию, необходимо использовать внешний стабилизатор напряжения на 3.3В, в качестве первого примера буду использовать адаптер USB

С таблице выше, видно, что модуль ESP-01 может работать в нескольких режимах сна, с минимальным потреблением тока, вызываются они программном путем, кроме последнего «Power Off», чтобы задействовать данный режим, необходимо установить перемычку, между GPIO16 и RST, позже приведу пример.

Установка ESP8266 в IDE Arduino

Скачиваем с сайта arduino.cc программу IDE Arduino
Далее, необходимо установить ESP плату в IDE Arduino, для этого запускаем программу IDE Arduino, открываем: Файл -> Настройка .
В новом открытом окне, в поле «Дополнительные ссылки для Менеджера плат: » добавляем ссылку:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

В открытом окне, ищем «esp8266 by ESP8266 Communit y» и нажимаем «Установить «. Установка займет несколько минут, затем появиться надпись «Installed «, жмем «Закрыть «

Нажимаем «Инструменты -> Платы -> Generis ESP8266 Module «.

Теперь необходимо подключить модуль ESP-01 к компьютеру через специальный адаптер USB на чипе CH340G


Настраиваем частоту процессора «CPU Frequency: «80 MHz» «, скорость «Upload Speed: «115200» » и выбираем «Порт «.

Затем загружаем скетч, который заставит ESP8266 мигать светодиодом.

/* Тестировалось на Arduino IDE 1.8.5 Дата тестирования 15.06.2018г. */ #define TXD 1 // GPIO1 / TXD01 void setup() { pinMode(TXD, OUTPUT); } void loop() { digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000); }

Всё больше набирает популярности, и уже Arduino подхватывает инициативу - добавляя эти Wi-Fi модули в список поддерживаемых плат.
Но как же его подключить к ардуино? И возможно как-то обойтись вообще без ардуино? Сегодня именно об этом и пойдёт речь в этой статье.

Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля ESP8266 в среде разработки Arduino IDE . Но, обо всём по порядку.

Этот видеоролик, полностью дублирует материал, представленный в статье.



На данный момент, существует много разновидностей этого модуля, вот некоторые из них:

А вот распиновка ESP01, ESP03, ESP12:


* Данную картинку можно посмотреть в хорошем качестве на офф. сайте pighixxx.com .

Лично мне, больше всего нравится версия ESP07. Как минимум за то, что тут есть металлический экран (он защищает микросхемы от внешних наводок, тем самым обеспечивает более стабильную работу), своя керамическая антенна, разъём для внешней антенны. Получается, подключив к нему внешнюю антенну, например типа биквадрат , то можно добиться неплохой дальности. К тому же, тут есть немало портов ввода вывода, так называемых GPIO(General Purpose Input Output - порты ввода-вывода общего назначения), по аналогии с ардуино - пинов.

Давайте вернёмся к нашим баранам Wi-Fi модулям и Arduino. В этой статье, я буду рассматривать подключение ESP8266(модели ESP01) к Arduino Nano V3.

Но, данная информация будет актуальна для большинства модулей ESP8266 и так же разных Arduino плат, например самой популярной Arduino UNO.

Пару слов по ножкам ESP01:

Vcc и GND (на картинке выше это 8 и 1) - питание, на ножку Vcc можно подавать, судя по документации , от 3 до 3.6 В , а GND - земля (минус питания). Я видел, как один человек подключал этот модуль к двум AA аккумуляторам (напряжение питания в этом случае было примерно 2.7 В) и модуль был работоспособным. Но всё же разработчики указали диапазон напряжений, в котором модуль должен гарантированно работать, если вы используете другой - ваши проблемы.

Внимание! Этот модуль основан на 3.3 В логике, а Arduino в основном - 5 В логика. 5 В запросто могут вывести из строя ESP8266, потому на него нужно отдельно от ардуино подавать питание .

- На моей ардуинке есть ножка, где написано 3.3 В, почему бы не использовать её?

Наверное подумаете вы. Дело в том, что ESP8266 довольно таки прожорливый модуль, и в пиках может потреблять токи до 200 мА, и почти никакая ардуинка по умолчанию не способна выдать такой ток, разве что исключением является Arduino Due , у которой ток по линии 3.3 В может достигать 800 мА, чего с запасом хватит, в других же случаях советую использовать дополнительный стабилизатор на 3.3 В, например AMS1117 3.3 В . Таких валом как в Китае, так и у нас.

Ножка RST 6 - предназначена «железной» для перезагрузки модуля, кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Хоть и на видео я этим пренебрёг, но всё же вам советую «прижимать» данную ногу резистором на 10 кОм к плюсу питания , дабы добиться лучшей стабильности в работе модуля, а то у меня перезагружался от малейших наводок.

Ножка CP_PD 4(или по-другому EN ) - служит, опять же, для «железного» перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова - не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питалова. На видео я тупо закоротил эту ногу на Vcc, потому как под рукой не оказалось такого резистора.

Ноги RXD0 7 TXD0 2 - аппаратный UART, который используется для перепрошивки, но ведь никто не запрещает использовать эти порты как GPIO(GPIO3 и GPIO1 соотвественно). GPIO3 на картинке почему-то не размечен, но в даташите он есть:

К стати, к ножке TXD0 2 подключен светодиод «Connect», и горит он при низком логическом уровне на GPIO1, ну или когда модуль отправляет что-то по UART.

GPIO0 5 - может быть не только портом ввода/вывода, но и переводить модуль в режим программирования. Делается это подключив этот порт к низкому логическому уровню(«прижав» к GND) и подав питание на модуль. На видео я делаю это обычной кнопкой. После перепрошивки - не забудьте вытащить перемычку/отжать кнопку(кнопку во время перепрошивки держать не обязательно, модуль при включении переходит в режим программирования, и остаётся в нём до перезагрузки).

GPIO2 3 - порт ввода/вывода.

И ещё один немаловажный момент, каждый GPIO Wi-Fi модуля может безопасно выдавать ток до 6 мА , чтобы его не спалить, обязательно ставьте резисторы последовательно портам ввода/вывода на… Вспоминаем закон Ома R = U/I = 3.3В / 0.006 А = 550 Ом, то есть, на 560 Ом . Или же пренебрегайте этим, и потом удивляйтесь почему оно не работает.

В ESP01 все GPIO поддерживают ШИМ, так что к нашим четырём GPIO, то есть GPIO0-3 можно подключить драйвер двигателя, аля L293 / L298 и рулить двумя двигателями, например катера, или же сделать RGB Wi-Fi приблуду. Да, да, данный модуль имеет на борту много чего, и для простеньких проектов скрипач Arduino не нужен, только для перепрошивки. А если использовать ESP07 то там вообще портов почти как у Uno, что даёт возможность уже уверенно обходиться без ардуино. Правда есть один неприятный момент, аналоговых портов у ESP01 вообще нет, а у ESP07 только один, ADC зовётся. Это конечно усугубляет работу с аналоговыми датчиками. В таком случае ардуино аналоговый мультиплексор в помощь.

Всё вроде как по распиновке пояснил, и вот схема подключения ESP8266 к Arduino Nano:

Видите на Arduino Nano перемычка на ножках RST и GND? Это нужно для того, чтобы ардуинка не мешала прошивке модуля, в случае подключения ESP8266 при помощи Arduino - обязательное условие.

Так же если подключаете к Arduino - RX модуля должен идти к RX ардуинки, TX - TX. Это потому, что микросхема преобразователь уже подключена к ножкам ардуино в перекрестном порядке.

Так же немаловажен резистивный делитель, состоящий из резисторов на 1 кОм и 2 кОм (можно сделать из двух резисторов на 1 кОм последовательно соединив их) по линии RX модуля. Потому как ардуино это 5 В логика а модуль 3.3. Получается примитивный преобразователь уровней. Он обязательно должен быть, потому что ноги RXD TXD модуля не толерантные к 5 В.

Ну и можно вообще обойтись без ардуино, подключив ESP8266 через обычный USB-UART преобразователь. В случае подключения к ардуино, мы, по сути, используем штатный конвертер интерфейсов usb и uart, минуя мозги. Так зачем тратиться лишний раз, если можно обойтись и без ардуино вообще? Только в этом случае, мы подключаем RXD модуля к TXD конвертора, TXD - RXD.

Если вам лениво заморачиваться с подключением, возится с резисторами и стабилизаторами - есть готовые решения NodeMcu:

Тут всё значительно проще, воткнул кабель в компьютер, установил драйвера и программируй, только не забывай задействовать перемычку/кнопку на GPIO0 для перевода модуля в режим прошивки.

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

Установка драйверов