Модуль ESP8266 WiFi

Модуль ESP8266 позволяет реализовать дистанционное управление микроконтроллерным устройством по WiFi. Реализована поддержка модуля всеми контроллерами Arduino. Исходный код графического интерфейса можно получить для сред разработки Arduino IDE и PLProg.

Для использования модуля ESP8266 выберите этот модуль в настройках конфигурации проекта.


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

Режим работы в качестве точки доступа (Access Point) настраивает модуль ESP8266 как точку доступа и позволяет подключиться к этой точке напрямую. Точка доступа доступна для подключения к ней со смартфона или планшета в радиусе доступности радиосигнала. При этом не требуется какой либо другой сетевой инфраструктуры. Данный режим подключения может быть использован в открытом поле, где нет компьютерных сетей и интернета. Для конфигурации данного режима работы в свойствах конфигурации проекта необходимо выбрать тип соединения "Wi-Fi точка доступа".

Режим работы в качестве клиента предполагает, что ESP8266 будет автоматически подключаться к существующей Wi-Fi точке доступа, например к домашнему маршрутизатору (роутеру) или точке доступа предприятия. При этом подключенный к Arduino модуль ESP8266 должен располагаться в физической доступности радиосигнала этой точки доступа. Подключение к устройству со смартфона или планшета будет происходить не на прямую, а через сеть Ethernet, по IP адресу, выданному модулю ESP8266 DHCP сервером. Появляется возможность подключиться к устройству из любого места локальной сети, а так же из сети интернет. Подключение из сети интернет возможно при правильной настройке маршрутизатора, например использование виртуального сервера. Для конфигурации данного режима работы в свойствах конфигурации проекта необходимо выбрать тип соединения "Ethernet".

Подключение модуля ESP8266 к Arduino осуществляется через последовательный интерфейс. Можно использовать как Software Serial, так и аппаратный Hardware Serial. Вариант подключения модуля выбирается в панели настроек подключения модуля. Модуль управляется посредством AT команд.

Рекомендуется использовать самую последнюю прошивку для ESP8266. Версия AT команд должна быть не ниже v0.40. Используйте инструкцию по обновлению прошивки ESP8266.

Питание модуля можно обеспечить от встроенного источника питания 3.3В на плате Arduino. Некоторые платы, например Arduino Nano может не обеспечить достаточной мощности на выводе 3.3V, в этом случае потребуется отдельный источник питания.

Подключение через Software Serial

Позволяет подключить модуль к произвольным контактам микроконтроллера. Какие контакты использовать, необходимо указать в панели настроек подключения модуля. Так же в панели настроек указывается скорость передачи данных для порта. Модуль ESP8266 по умолчанию настроен на скорость 115200 бит/сек. Для работы через SoftwareSerial необходимо предварительно настроить скорость передачи данных ESP8266 на более низкую скорость. Стабильная работа модуля возможна на скорости не более 19200 бит/сек. Для изменения скорости работы последовательного интерфейса модуля, необходимо его подключить к консоли для возможности выполнения AT команд. Скорость работы модуля может быть изменена при помощи AT команды "AT+UART_DEF=19200,8,1,0,0".


Есть некоторые ограничения на использование контакта RX для плат Arduino. Ограничения связаны с поддержкой прерываний на соответствующих контактах микроконтроллера.

  • Arduino UNO и Nano для RX нельзя использовать контакт 13(LED);
  • Arduino Mega и Mega2560 для RX можно использовать только следующие контакты: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69);
  • Arduino Leonardo и Micro для RX можно использовать только следующие контакты: 8, 9, 10, 11, 14, 15, 16;

Так же при использовании SoftwareSerial вы должны принять следующие ограничения:

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

Пример подключения модуля ESP8266 для SoftwareSerial к контактам 2(RX) и 3(TX) на рисунке. Обратите внимание, что необходимо контакты подключить перекрестием, т.е. контакт Arduino 2(RX) к контакту TX модуля, и контакт 3(TX) к контакту RX модуля.


Подключение через Hardware Serial (аппаратный)

Позволяет подключить модуль к контактам микроконтроллера, поддерживающим один из аппаратных портов последовательного интерфейса. Для разных плат Arduino это разные порты и контакты. Возможна работа на максимальной скорости соединения 115200 бит/сек. Скорость передачи данных для Arduino указывается в панели настроек редактора. ESP8266 необходимо предварительно настроить на работу на той же скорости, что и Arduino. Настройку можно выполнить через AT команды. Следующие последовательные порты Arduino доступны:

  • Arduino UNO и Nano: Serial (RX-0, TX-1);
  • Arduino MEGA и MEGA2560: Serial (RX-0, TX-1), Serial1 (RX-19 и TX-18), Serial2 (RX-17 и TX-16), Serial3 (RX-15 и TX-14);

Какой порт использовать, а следовательно к каким контактам следует подключать модуль, необходимо указать в панели настроек подключения модуля. Следует так же иметь в виду, что для плат Arduino порт Serial задействован для программирования микроконтроллера, и если вы приняли решение использовать этот порт, при программировании необходимо отсоединять модуль ESP8266. Хорошим решением будет использовать на платах Arduino MEGA любой порт, отличный от Serial.


Пример подключения модуля для аппаратного Serial к контактам 0(RX) и 1(TX) на рисунке. Обратите внимание, что необходимо контакты подключить перекрестием, т.е. контакт Arduino 0(RX) к контакту TX модуля, и контакт 1(TX) к контакту RX модуля.