Модуль WiFi ESP8266 ESP-01 Arduino позволяет подключить устройство к беспроводному интернету или локальной сети. Рассмотрим на этой странице, как подключить модуль ESP8266 ESP-01 к Ардуино, как запрограммировать модуль с помощью AT-команд и как подключить микроконтроллер Arduino к локальной сети WiFi. Мы покажем, как можно легко настроить ESP-01 и проверить связь между модулем и другими устройствами.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- Wi-Fi модуль ESP 01 ESP 8266
- тактовые кнопки
- светодиод и резистор
- макетная плата
- коннекторы
- библиотека SoftwareSerial.h
Дополнительные материалы на эту тему:
WiFi модуль ESP-01 распиновка, характеристики

Характеристики ESP8266 ESP-01 Arduino (datasheet)
- Источник питания: 1,8 — 3,6 В
- Потребляемая мощность: 220 мА
- Wi-Fi 802.11 b/g/n
- Режимы Wi-Fi: клиент, точка доступа
- Порты GPIO: 4
- Тактовая частота процессора: 80 МГц
- Оперативная память: 96 КБ
- Размер: 13 × 21 мм
Модуль Arduino ESP 8266 ESP 01 обеспечивает доступ к локальной сети Wi-Fi. Это автономный SOC (System On a Chip), которому не требуется микроконтроллер для управления входами и выходами, поскольку ESP-01 действует автономно как маленький компьютер. В зависимости от версии ESP8266 доступно до 9 выводов GPIO, что позволяет пользователю программировать есп8266 как микроконтроллер с доступом к Wi-Fi.
WiFi модуль ESP8266 ESP-01 подключение к Ардуино

Будьте внимательны! Модуль работает от 3,3 Вольт. В первом примере esp модуль автоматически подключится к wifi сети и создаст сервер. Вам необходимо только указать в программе имя локальной сети и пароль доступа. Далее надо будет ввести ip адрес сервера в любом браузере на устройстве, подключенного к wifi сети. Если подключение к wifi точке пройдет успешно — вы увидите в браузере надпись «ESP-01 is connected».
Скетч для подключения модуля ESP8266 ESP-01 к WiFi
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3); // RX, TX
#define B1 8 // кнопка включения светодиода
#define B2 9 // кнопка выключения светодиода
bool button1WasUp = true;
bool button2WasUp = true;
bool button1IsUp;
bool button2IsUp;
String IncomingString = "";
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
pinMode(B1, INPUT_PULLUP);
pinMode(B2, INPUT_PULLUP);
pinMode(13, OUTPUT);
// подключение к wifi точке доступа и создание сервера
SendCommand("AT+CWMODE=1", "OK");
// укажите в этой строчке имя wifi сети и пароль
SendCommand("AT+CWJAP=\"WiFiSSID\",\"Password\"", "OK");
SendCommand("AT+CIPMUX=1", "OK");
SendCommand("AT+CIPSERVER=1,80", "OK");
SendCommand("AT+CIFSR", "OK");
digitalWrite(13, HIGH);
// ожидание ввода ip адреса сервера в браузере
while (true) {
if (mySerial.available()) {
char ch = mySerial.read();
Serial.write(ch);
}
button2IsUp = digitalRead(B2);
if (button2WasUp && !button2IsUp) {
delay(10);
button2IsUp = digitalRead(B2);
if (!button2IsUp) {
break;
}
}
}
button2WasUp = button2IsUp;
// отправка на сервер информации о подключении модуля
SendCommand("AT+CIPSEND=0,85", "OK");
SendCommand("<html><title>WiFi ESP-01 8266</title><body><h1>ESP-01 is connected</h1></body></html>", "OK");
delay(1000);
digitalWrite(13, LOW);
SendCommand("AT+CIPSEND=0,13", "OK");
SendCommand("<h2>LED </h2>", "OK");
SendCommand("AT+CIPSEND=0,68", "OK");
SendCommand("<html><style type='text/css'>h2:after{content:\"OFF\";}</style></html>", "OK");
}
void loop() {
button1IsUp = digitalRead(B1);
button2IsUp = digitalRead(B2);
// если нажата 1 кнопка - включаем светодиод и отправляем данные на сервер
if (button1WasUp && !button1IsUp) {
delay(10);
button1IsUp = digitalRead(B1);
if (!button1IsUp) {
digitalWrite(13, HIGH);
SendCommand("AT+CIPSEND=0,67", "OK");
SendCommand("<html><style type='text/css'>h2:after{content:\"ON\";}</style></html>", "OK");
}
}
button1WasUp = button1IsUp;
// если нажата 2 кнопка - выключаем светодиод и отправляем данные на сервер
if (button2WasUp && !button2IsUp) {
delay(10);
button2IsUp = digitalRead(B2);
if (!button2IsUp) {
digitalWrite(13, LOW);
SendCommand("AT+CIPSEND=0,68", "OK");
SendCommand("<html><style type='text/css'>h2:after{content:\"OFF\";}</style></html>", "OK");
}
}
button2WasUp = button2IsUp;
}
// функции отправки сообщений через softwareserial
boolean SendCommand(String cmd, String ack) {
mySerial.println(cmd);
if (!echoFind(ack))
return true;
}
boolean echoFind(String keyword) {
byte current_char = 0;
byte keyword_length = keyword.length();
long deadline = millis() + 5000;
while (millis() < deadline) {
if (mySerial.available()) {
char ch = mySerial.read();
Serial.write(ch);
if (ch == keyword[current_char])
if (++current_char == keyword_length) {
Serial.println();
return true;
}
}
}
return false;
}
Модуль esp8266 esp-01 подключение к сети WiFi с роутером
1. После загрузки скетча, откройте монитор порта Arduino IDE. Вы увидите в нем сообщение о подключение сети и создание локального сервера с ip адресом, как на картинке ниже. Вам необходимо скопировать ip адрес модуля (на скриншоте выделено 192.168.43.84) и ввести его в браузере на устройстве, подключенного к этой же локальной сети.

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

3. Если подключение прошло успешно, нажмите на кнопку, подключенную к пину 9. После этого программа должна отправить в web браузер сообщение «ESP-01 is connected», а также информацию о состоянии светодиода. Нажимая кнопки, подключенные к Ардуино вы можете менять состояние светодиода с отражением информации в веб браузере.
Как подключить WiFi модуль ESP01 к Arduino через TX RX

В этом примере подключение esp01 к Arduino по UART шине производится наоборот. Контакт RX подключается к пину RX, а контакт TX — к пину TX Arduino. Загружать программу в микроконтроллер не требуется, но лучше всего загрузить пустой скетч в Ардуино. На мониторе последовательного интерфейса необходимо переключиться на скорость 115200 и выбрать режим NL & CR (параметры настроек показаны на изображении ниже).
AT
Чтобы проверить правильность и надежность подключения модуля wifi, введите команду AT в командной строке монитора порта Arduino IDE и нажмите клавишу Enter, если ESP01 ESP8266 подключен правильно и соединение надежное, чип вернет ответ OK.
Настройка WiFi модуля ESP 01 с помощью AT команд

Чтобы просмотреть активные соединения с модулем, используйте команду:
AT+CIPSTATUS
Вы можете переключиться на 9600 бод в любое время с помощью команды:
AT+UART=9600,8,1,0,0
Все настройки сохраняются в памяти, которую всегда можно сбросить:
AT+RESTORE
Перезагрузить модуль вай-фай ESP8266 можно с помощью команды:
AT+RST
Подключение модуля ESP 8266 ESP 01 к WiFi сети

Начните с изменения режима работы модуля на клиентский с помощью команды AT+CWMODE=1. Если вы хотите проверить, в каком режиме работает модуль WiFi, вы можете ввести команду AT+CWMODE? На мониторе порта отобразится номер (1, 2 или 3), связанный с соответствующим режимом работы микросхемы ECP 8266.
AT+CWMODE=1
Теперь мы выясним, какие беспроводные сети находятся в радиусе действия модуля ESP 8266. После отправки команды AT+CWLAP через порт Arduino IDE, на мониторе отобразятся все доступные сети WiFi (обведены рамкой на изображении выше).
AT+CWLAP
Теперь вы можете подключиться к действующей сети WiFi, введя следующую команду с именем доступа к сети и паролем (не убирайте кавычки из команды). Если соединение произойдет успешно, модуль ESP8266 ESP01 вернет ответ WIFI CONNECTED.
AT+CWJAP="Wi-FiNetwork","Password"
Перед конфигурированием модуля ESP8266 ESP-01 в качестве сервера необходимо включить множественные соединения. Введите команду AT+CIPMUX=1, где число соответствует типу соединения (0 — одно соединение, 1 — несколько соединений).
AT+CIPMUX=1
Следующий шаг — запуск сервера. Первая цифра AT+CIPSERVER=1,80 используется для закрытия (0) или открытия режима сервера (1). Вторая цифра указывает на порт, который клиент использует для подключения к серверу (80 порт является стандартным для HTTP).
AT+CIPSERVER=1,80
Чтобы узнать IP адрес ESP8266 ESP01 модуля, введите команду:
AT+CIFSR
Далее откройте веб-браузер на любом устройстве, подключенном к беспроводной сети, и введите IP адрес модуля ESP. В этот момент вы получите ответ на мониторе порта Arduino IDE, как показано на изображении выше. Это HTTP запрос, который компьютер или телефон отправляет на локальный сервер. Запрос содержит имя и версию браузера, тип операционной системы и другую полезную и интересную информацию.

Чтобы отправить информацию в веб-браузер клиента с чипа ESP-01, первое, что нужно сделать, это указать канал (0), который будет использоваться для отправки данных клиенту с нашего сервера, и количество символов, которое будет содержать сообщение (5).
AT+CIPSEND=0,5
После ввода последней команды в окне монитора порта Arduino IDE появится символ 0 — это означает, что можно отправить сообщение из командной строки — HELLO (или другое слово из пяти букв). Если в ответ мы получим сообщение SEND OK, это означает, что данные были успешно отправлены клиенту. Однако в веб-браузере на устройстве ничего не появится, пока мы не закроем канал на сервере следующей командой:
AT+CIPCLOSE=0
Заключение. Мы рассмотрели подключение wi-fi модуля ESP-01 к Arduino Uno, настроили и перепрошили модуль ESP8266 ESP 01 с помощью AT-команд. Используя это небольшое устройство, мы создали локальный веб-сервер на Arduino с подключением к клиентскому серверу и отправили сообщение в веб-браузер телефона. В следующих статьях мы продолжим использование модуля ESP8266 ESP-01 в различных проектах.

можете сделать обзор на есп32?