Перейти к содержанию

Wi-Fi модуль ESP-01 Ардуино, как подключить

Wi-Fi модуль ESP-01 Ардуино, как подключить

Модуль 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

Дополнительные материалы на эту тему:

  1. Подключение Wi-Fi модуля ESP-12E к Ардуино
  2. Подключение Ethernet модуля HR911105A
  3. Подключение HC-06 блютуз модуля к Ардуино

WiFi модуль ESP-01 распиновка, характеристики

WiFi модуль ESP 8266 распиновка, характеристики

Характеристики 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 подключение к Ардуино

WiFi модуль 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

Как подключить WiFi модуль ESP8266 ESP01 к Arduino

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

AT

Чтобы проверить правильность и надежность подключения модуля wifi, введите команду AT в командной строке монитора порта Arduino IDE и нажмите клавишу Enter, если ESP01 ESP8266 подключен правильно и соединение надежное, чип вернет ответ OK.

Настройка WiFi модуля ESP 01 с помощью AT команд

Настройка WiFi модуля ESP 01 с помощью AT команд

Чтобы просмотреть активные соединения с модулем, используйте команду:

AT+CIPSTATUS

Вы можете переключиться на 9600 бод в любое время с помощью команды:

AT+UART=9600,8,1,0,0

Все настройки сохраняются в памяти, которую всегда можно сбросить:

AT+RESTORE

Перезагрузить модуль вай-фай ESP8266 можно с помощью команды:

AT+RST

Подключение модуля ESP 8266 ESP 01 к WiFi сети

Подключение модуля ESP 8266 ESP 01 к Wi-Fi сети

Начните с изменения режима работы модуля на клиентский с помощью команды 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 запрос, который компьютер или телефон отправляет на локальный сервер. Запрос содержит имя и версию браузера, тип операционной системы и другую полезную и интересную информацию.

Arduino WIFI модуль ESP-01 8266 подключение

Чтобы отправить информацию в веб-браузер клиента с чипа 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 в различных проектах.

Комментарии 1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜