- Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
- Видеообзор
- Общие сведения
- Работа с AT командами
- Подключение и настройка
- HardwareSerial
- SoftwareSerial
- HardwareSerial Mega
- Примеры работы
- Тестовая команда «AT»
- Настройка режима работы
- Как подключить Wi-Fi модуль ESP-01 к Ардуино
- Wi-Fi модуль ESP-01 распиновка, характеристики
- Характеристики Wi-Fi модуля ESP 01
- Подключение к Ардуино Wi-Fi модуля ESP8266 ESP-01
- Прошивка Wi-Fi модуля ESP-01 ESP8266 от Ардуино
- Подключение модуля ESP8266 ESP-01 к Wi-Fi сети
- ESP8266 ESP-01 AT-команды: отправка и отображение данных
- AT-команды для настройки ESP8266 ESP-01
Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
Модуль ESP-01 с чипом ESP8266 предназначен для связи устройства с беспроводными сетями по WiFi.
Видеообзор
Общие сведения
ESP-01 — плата-модуль WiFi на базе популярного чипсета ESP8266EX . На борту платы находится микросхема Flash-памяти объёмом 2 МБ, чип ESP8266EX, кварцевый резонатор, два индикаторных светодиода и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Flash-память необходима для хранения программного обеспечения. При каждом включении питания, ПО автоматически загружается в чип ESP8266EX.
По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.
Но внутри чипа ESP8266 прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.
Работа с AT командами
Подключение и настройка
В стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART.
На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.
HardwareSerial
На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .
Список поддерживаемых плат:
Для примера подключим модуль Wi-Fi к платформе Iskra Neo.
Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
SoftwareSerial
Некоторые платы Arduino, например Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART . Подключите пины TX и RX ESP-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.
Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 9 контакты управляющей платы. Прошейте управляющую платформу кодом ниже.
Код прошивки
// библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и передаём ему пины TX и RX SoftwareSerial mySerial(8, 9); // serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
HardwareSerial Mega
На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с Wi-Fi модулем и отладки по USB.
Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:
Список поддерживаемых плат:
Подключите Wi-Fi модуль к объекту Serial1 на пины 18 и 19 на примере платы Mega 2560 Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
Примеры работы
Рассмотрим несколько примеров по работе с «AT-командами»
Тестовая команда «AT»
Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.
Настройка режима работы
Wi-Fi модуль умеет работать в трёх режимах:
Как подключить Wi-Fi модуль ESP-01 к Ардуино
Wi-Fi модуль ESP-01 (ESP8266) Arduino позволяет подключить устройство к безпроводному Интернету или локальной сети. Рассмотрим подключение модуля ESP-01 (ESP8266) к плате Ардуино, программирование модуля с помощью AT команд и подключение Arduino к локальной Wi-Fi сети. Покажем, как можно легко настроить Wi-Fi модуль ESP-01 и проверить наличие связи между модулем и другим устройством.
Wi-Fi модуль ESP-01 распиновка, характеристики
Характеристики Wi-Fi модуля ESP 01
- Напряжение питание: 1,8 — 3,6 В
- Ток потребления: 220 мА
- Wi-Fi 802.11 b/g/n
- Режимы WiFi: клиент, точка доступа
- Портов GPIO: 4
- Тактовая частота процессора: 80 МГц
- Оперативная память: 96 КБ
- Размеры: 13 × 21 мм
ESP8266 ESP-01 обеспечивает доступ к сети Wi-Fi. Представляет собой автономный SOC (System On a Chip), которому не нужен микроконтроллер для управления входами и выходами, поскольку ESP-01 действует как маленький компьютер. В зависимости от версии ESP8266, возможно наличие до 9 портов GPIO что позволяет пользователю запрограммировать ESP8266 в качестве микроконтроллера с доступом к Wi-Fi.
Подключение к Ардуино Wi-Fi модуля ESP8266 ESP-01
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- Wi-Fi модуль ESP8266 ESP-01;
- макетная плата;
- провода «папа-мама».
Модули ESP8266 ESP-01 поставляется с предустановленной прошивкой AT. Можно запрограммировать чип с помощью другой прошивки, но стандартная прошивка AT ESP8266 ESP-01 совместима с Arduino IDE, поэтому мы будем использовать ее в этом обзоре. Для начала с помощью коннекторов подключите модуль Wi-Fi к Arduino, как показано на изображении. И откройте монитор последовательного порта в Arduino IDE.
Внимание! Модуль работает от 3.3 Вольт. Контакт RX подключается к пину 0, а контакт TX к 1 пину Ардуино. Скетч в микроконтроллер Ардуино загружать не нужно. А на мониторе последовательного интерфейса требуется переключиться на скорость 115200 и выбрать режим NL & CR (настройки показаны на картинке ниже). После этого можно отправить на модуль ESP-01 ESP8266 команды АТ для настройки.
Прошивка Wi-Fi модуля ESP-01 ESP8266 от Ардуино
Для проверки подключения модуля введите в командной строке AT и нажмите ввод, если ESP подключен правильно и соединение надежное, то чип вернет ответ OK
Переключить скорость на 9600 бод можно в любой момент следующей командой
Далее переключим режим работы модуля на клиент командой AT+CWMODE=1. Если требуется проверить, в каком режиме работает Wi-Fi модуль, вы можете ввести команду AT+CWMODE? Это приведет к отображению номера (1, 2 или 3) на мониторе порта, связанного с соответствующим режимом работы чипа ESP-01.
Узнаем какие беспроводные сети есть в зоне действия модуля. После отправки команды AT+CWLAP на мониторе последовательного порта Arduino IDE отобразятся все доступные WiFi сети (обведены оранжевым квадратом на картинке выше).
Подключение модуля ESP8266 ESP-01 к Wi-Fi сети
Теперь можно подключиться к WiFi сети введя в следующей команде имя и пароль доступа к сети (кавычки удалять не надо). Модуль вернет ответ WIFI CONNECTED.
AT+CWJAP="Wi-FiNetwork","Password"
Прежде чем, настроить модуль ESP8266 ESP-01 в качестве сервера, необходимо включить несколько подключений. Введите команду AT+CIPMUX=1, где число связано с типом соединения (0 — одиночное, 1 — множественное подключение).
Следующий этап — запуск локального сервера на порту 80. Первое число в команде AT+CIPSERVER=1,80 используется закрытия режима сервера (0) или открытия сервера (1). Второе число указывает порт, который клиент использует для подключения к нашему серверу (порт 80 используется по умолчанию для протокола HTTP).
Чтобы узнать IP адрес ESP8266 ESP-01 wifi модуля, введите команду
После этого открывайте веб-браузер на устройстве, подключенного к беспроводной сети, и вводите IP-адрес модуля ESP. В этот момент вы получите ответ на мониторе порта Aruino IDE, как показано на изображении выше. Это HTTP-запрос, который компьютер или телефон отправляет на наш сервер. Запрос содержит название и версию браузера, тип операционной системы и другую интересную информацию.
ESP8266 ESP-01 AT-команды: отправка и отображение данных
Чтобы отправить информацию на браузер клиента с чипа ESP необходимо первым делом сообщить по какому каналу (0) будут отправлены данные клиенту с сервера и какое количество символов будет в сообщении (5).
После ввода команды, в окне монитора порта Arduino IDE появится символ «>» — это означает, что можно вводить символы в командной строке (в нашем примере мы отправили сообщение HELLO). Через пару секунд мы получим ответ SEND OK, это говорит о том, что данные успешно переданы клиенту. Однако в веб-браузере ничего не появится, пока мы не закроем канал на сервере (0) следующей командой:
AT-команды для настройки ESP8266 ESP-01
Все настройки сохраняются в памяти чипа, сбросить настройки можно командой:
Перезагрузка модуля производится командой:
Узнать список активных подключений к модулю:
Заключение. Мы рассмотрели подключение вай фай модуля есп-01 к Arduino IDE, прошивку модуля ESP8266 ESP 01 с помощью AT-команд. С помощью этого устройства мы создали локальный web-сервер на Arduino с подключением к серверу клиента и отправили на web-браузер клиентского устройства сообщение. В следующих обзорах мы продолжим рассматривать модуль ESP-01 есп8266 в различных проектах