AT команды ESP8266-01S. Описание и примеры использования.
ESP8266 в конфигурации по умолчанию загружается в режим последовательного модема. В этом режиме вы можете взаимодействовать с ним, используя набор AT-команд. В данной статье мы разберем все известные AT команды, которые поддерживает ESP8266, узнаем, что они делают и как их использовать.
Введение
AT команды - это инструкции для ESP8266, которые мы передаем модулю с хост-устройства для взаимодействия с ним. Данные передаются через последовательный интерфейс. Для отправки команды с компьютера на модуль ESP8266 вам потребуется конвертер FTDI TTL в USB. Это специальное устройство, которое преобразует протокол USB в последовательный интерфейс и наоборот.
Подключение ESP8266 для выполнения AT-команд
Как обсуждалось ранее, ESP8266-01 отправляет или получает команду по протоколу последовательной связи, но компьютер отправляет или получает данные через USB. Оба являются разными протоколами передачи данных. Итак, мы должны добавить устройство-посредник, которое может преобразовывать последовательные данные в данные USB и отправлять на компьютер через USB-кабель и USB-данные в последовательные данные, которые может понять модуль ESP-01. Это устройство представляет собой конвертер FTDI TTL в USB. Один из вариантов которого вы можете увидеть на картинке ниже.
Он свободно продается на Aliexpress по цене около 100 рублей и купить его можно здесь или здесь.
Схема подключения
Для начала разберем назначение пинов конвертера.
Самый верхний контакт - это контакт заземления, а третий контакт - VCC, которые являются линиями питания для устройства (ESP-01). Второй PIN - это CTS, которые означают "очистить для отправки". Мы не будем использовать этот вывод в этой схеме. 4-й и 5-й контакты - это TX и RX, которые будут подключаться к RX и TX модуля ESP-01 соответственно. Последний вывод - DTR, который обозначает готовность терминала передачи данных. Этот вывод также не используется в этой схеме.
Переходим непосредственно к схеме подключения.
Если у вас нет преобразователя FTDI TTL в USB, вы можете использовать плату Arduino в качестве замены устройства FTDI. Подключение показано ниже.
Теперь вы можете подключить USB кабель и начать общение со своим компьютером. Но на данном этапе у вас скорее всего ничего не выйдет. Компьютер по умолчанию не поддерживает последовательную связь, поэтому не распознает входящие данные с устройства FTDI. Итак, нам нужен какой-то драйвер, который может считывать шаблон входящих данных. Вы можете использовать любой последовательный терминал. Например такой как PuTTY, поскольку он прост в использовании и имеет много других функций.Либо же пойти более простым путем и использовать Монитор последовательного порта в Arduino IDE. На этом плавно переходим к программной части.
Программная часть
Итак, вы подключили оборудование к компьютеру с помощью USB кабеля. Прежде всего нам необходимо узнать номер порта для связи с ESP8266 с помощью последовательного интерфейса. Чтобы найти номер порта, присвоенный FTDI, нам нужно открыть Диспетчер устройств на компьютере. Затем перейти в раздел Порты и посмотреть номер порта, присвоенный преобразователю FTDI TTL в USB или плате Arduino.
Теперь открываем Терминал последовательного порта. Я буду использовать Arduino IDE, но и в других вариантах настройки будут схожими.
Итак, запускаем Arduino IDE и открывает Монитор последовательного порта. Выберите скорость передачи данных 115200 бод и опцию NL& CR. Здесь NL - новая строка “\ n”, а CR - возврат каретки “\ r”. Если вы выберете эту опцию, Монитор последовательного порта добавит эти значения в вашу команду, а если вы этого не сделаете, вам придется вводить их вручную в конце каждой команды.
Теперь введите AT, чтобы проверить, отвечает ESP-01 или нет. Если модуль отвечает “ОК”, значит, вы все сделали идеально, и все готово. Но если он отвечает “ERROR”, вам нужно проверить синтаксис, чтобы он не содержал пробелов или каких-либо других символов, просто “AT”. Если модуль ничего не отвечает, вам нужно проверить ваше соединение. Модуль должен питаться от 3,3 В. Для этого преобразователь FTDI имеет перемычку 3,3 В, а Arduino имеет пин 3,3 В.
Список АТ команд
Ниже приведена таблица со всеми известными AT командами
Основные | WiFI слой | TCPIP слой |
---|---|---|
AT | AT+CWMODE | AT+CIPSTATUS |
AT+RST | AT+CWJAP | AT+CIPSTART |
AT+GMR | AT+CWLAP | AT+CIPSEND |
AT+GSLP | AT+CWQAP | AT+CIPCLOSE |
ATE | AT+CWSAP | AT+CIFSR |
AT+CWLIF | AT+CIPMUX | |
AT+CWDHCP | AT+CIPSERVER | |
AT+CIPSTAMAC | AT+CIPMODE | |
AT+CIPAPMAC | AT+CIPSTO | |
AT+CIPSTA | AT+CIUPDATE | |
AT+CIPAP | +IPD |
Варианты команд
Каждая команда может иметь до 4 вариантов, изменяющих ее функцию. Вы можете выбирать между ними, добавляя одно из четырех возможных значений в конец самой корневой команды. Эти четыре приложения могут иметь следующие значения ""
,=<parameter|[parameters]>
,"?"
,=?
Тип | Пример | Описание |
---|---|---|
Тест | AT+CIPSTART=? | Запрос диапазона значений (пока только AT +CWMODE=? использует его) |
Запрос | AT + CMD? | Возвращает текущее значение параметра. |
Установка | AT +CMD=параметр | Установите значение пользовательских параметров в командах и запустите. |
Выполнение | AT+CMD | Запускает команды без пользовательских параметров. |
- Не все команды AT поддерживают все 4 варианта.
- [] = значение по умолчанию, не требуется или может не отображаться.
- Для строковых значений требуются двойные кавычки, например:
AT+CWSAP="ESP756190","21030826",1,4
. - Скорость передачи данных в бодах = 115200
- Инструкция AT заканчивается на “\ r \ n”
AT - тест запуска AT
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнить | AT | ОК | Проверьте, правильно ли работает система AT |
AT+RST - Перезапуск модуля
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнить | AT+RST | ОК | Перезагрузка модуля |
AT+GMR- Просмотр информации о версии ПО
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнить | AT + GMR | version , ОК |
Вывод версия встроенного ПО |
Параметры:
version
: номер версии прошивки
AT+GSLP- Переход в режим глубокого сна
Вариант | Команда | Ответ | Функция |
---|---|---|---|
набор | AT+GSLP=time |
time ОК |
Перейти в режим глубокого сна на time ( миллисекунды) |
Параметры:
time
: Время сна в миллисекундах
Пример:
AT+GSLP=1500
Примечание:
Аппаратное обеспечение должно поддерживать пробуждение в режиме глубокого сна (Уровень сигнала на RST пине должен быть высоким).
ATE - Включить / отключить вывод отладочной информации
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнить | ATE0 | ОК | Отключить эхо (не отправляет обратно полученную команду) |
Выполнить | ATE1 | ОК | Включить эхо (отправляет обратно полученную команду до ответа) |
AT+CWMODE - Режим Wi-FI (станция, точка доступа, станция + точка доступа)
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Тест | AT+CWMODE=? | +CWMODE: (1-3) OK | Список допустимых режимов |
Запрос | AT +CWMODE? | +CWMODE:mode OK |
Запросите информацию о точке доступа, которая подключается с помощью ESP8266. |
Выполнить | AT+CWMODE=mode |
ОК | Задайте информацию о точке доступа, к которой будет подключаться ESP8266. |
Параметры:
mode
: Целое число, обозначающее режим работы 1, 2 или 3.
1 = Режим станции (клиент)
2 = Режим точки доступа (хост)
3 = Точка доступа + режим станции (Да, ESP8266 имеет двойной режим!)
Примечание:
ESP-12 по умолчанию настроен как хост с ssid, установленным на ESP_A0A3F2, без пароля, канал 1. Вы можете использовать AT + CWSAP?, чтобы найти текущие настройки
AT+CWJAP - Подключение к точке доступа
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CWJAP? | + CWJAP:ssid ОК |
Выводит SSID точки доступа, к которой подключен ESP8266. |
Выполнить | AT+CWJAP=ssid ,pwd |
ОК | Команда ESP8266 для подключения SSID с предоставленным паролем. |
Параметры:
ssid
:Строка, SSID точки доступаpwd
:Строка длиной не более 64 символов
AT+CWLAP - Список доступных точек доступа<
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Установка | AT+CWLAP=ssid ,mac ,ch |
+CWLAP:ecn ,ssid ,rssi ,mac ОК |
Поиск доступных точек доступа с конкретными условиями. |
Выполнение | AT + CWLAP | AT + CWLAP:ecn ,ssid ,rssi ,mac OK |
Список доступных точек доступа. |
Параметры:
ecn
:- 0 = ОТКРЫТО
- 1 = WEP
- 2 = WPA_PSK
- 3 = WPA2_PSK
- 4 = WPA_WPA2_PSK
ssid
: тип String, SSID точки доступаrssi
: уровень сигналаmac
: тип String, MAC-адрес
Примечание:
На ESP-01 команда (AT+CWLAP=...
). не дает какого-то видимого результата.
На ESP-12 установленная версия команды позволяет увидеть, существует ли определенный SSID с определенным MAC на определенном канале. Если это произойдет, она возвращается в виде одной строки выполняемой версии этой команды.
AT+CWQAP - Отключиться от точки доступа
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнить | AT +CWQAP | ОК | Отключить ESP8266 от точки доступа, к которой он в данный момент подключен. |
Примечание:
После выполнения этой команды, если вы ее запуститеAT+CWJAP?
, она все равно покажет точку доступа, к которой вы были подключены ранее.
AT+CWSAP - Настройка режима SoftAP
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CWSAP? | +CWSAP:ssid ,pwd ,ch ,ecn ОК |
Запрос конфигурации программного режима ESP8266. |
Установка | AT+CWSAP=ssid ,pwd ,ch ,ecn |
ОК | Установить конфигурацию режима SoftAP. |
Параметры:
ssid
: String, SSID программного обеспечения ESP8266pwd
: String, пароль, длиной не более 64 символовch
:номер каналаecn
:- 0 = ОТКРЫТО
- 2 = WPA_PSK
- 3 = WPA2_PSK
- 4 = WPA_WPA2_PSK
Пример
AT+CWSAP="esp_123","1234test",5,3
AT+CWSAP? => +CWSAP:"esp_123","1234test",5,3
AT+CWLIF - Список клиентов, подключенных к ESP8266
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнение | AT+CWLIF | [ip ,other ] OK |
Вывод информации о подключенных клиентах. |
Параметры:
ip
: IP-адрес клиента, подключенного к ESP8266other
:
AT+CWDHCP - Включить / отключить DHCP
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Установка | AT + CWDHCP=mode ,en |
ОК | Включить или отключить DHCP для выбранного режима |
Параметры:
mode
:- 0: установить ESP8266 в качестве softAP
- 1. установить ESP8266 в качестве станции
- 2. установить для ESP8266 как SoftAP, так и станцию
en
:- 0: Включить DHCP
- 1. Отключить DHCP
Примечание:
Похоже, что эта команда не работает ни с прошивкой 00160901 (ESP-01), ни с 0018000902-AI03 (ESP-12).
AT+CIPSTAMAC - Установить MAC-адрес станции ESP8266
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CIPSTAMAC? | +CIPSTAMAC:mac ОК |
Вывести текущий MAC-адрес ESP8266. |
Выполнение | AT + CIPSTAMAC =mac |
ОК | Задайте MAC-адрес ESP8266. |
Параметры:
mac
: String, MAC-адрес станции ESP8266.
Пример:
AT+CIPSTAMAC="18:aa:35:97:d4:7b"
Примечание:
Похоже, эта команда не работает с прошивкой 00160901
AT+CIPAPMAC - Установить MAC-адрес softAP ESP8266
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CIPAPMAC? | +CIPAPMAC:mac ОК |
Получить MAC-адрес softAP ESP8266. |
Выполнение | AT + CIPAPMAC =mac |
ОК | Установка mac-адрес ыsoftAP ESP8266. |
Параметры:
mac
String, MAC-адрес softAP ESP8266.
Пример:
AT + CIPAPMAC=”2c: aa:35:97:d4:7b”
Примечание:
Похоже, эта команда не работает с прошивкой 00160901
AT+CIPSTA - Установить IP-адрес станции ESP8266
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CIPSTA? | +CIPSTA:ip ОК |
Получить IP-адрес станции ESP8266. |
Выполнение | AT + CIPSTA =ip |
ОК | Установить IP-адрес станции ESP8266. |
Параметры:
ip
: String, ip-адрес станции ESP8266.
Пример:
AT + CIPSTA=”192.168.101.108”
Примечание:
Похоже, эта команда не работает с прошивкой 00160901
AT + CIPAP - Установить IP-адрес softAP ESP8266
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CIPAP? | +CIPAP:ip ОК |
Получить IP-адрес softAP ESP8266. |
Выполнение | AT + CIPAP =ip |
ОК | Установить IP-адрес softAP ESP8266. |
Параметры:
ip
: Строка, ip-адрес softAP ESP8266.
Пример:
AT+CIPAP="192.168.5.1"
Примечание:
Похоже, эта команда не работает с прошивкой 00160901
AT+CIPSTATUS - Информация о подключении
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Тест | AT+CIPSTATUS=? | ОК | |
Выполнение | AT + CIPSTATUS | СТАТУС:status + CIPSTATUS:id ,type ,addr ,port ,tetype OK |
Получить информацию о подключении. |
Параметры:
status
:- 2: Получен IP-адрес
- 3: Подключен
- 4: Отключен
id
: идентификатор соединения (0 ~ 4), для множественного подключенияtype
: Строка, “TCP” или “UDP”addr
: Строка, IP-адрес.port
: номер портаtetype
:- 0 = ESP8266 запускается как клиент
- 1 = ESP8266 запускается как сервер
Примечание:
На ESP-01 вместо этого возвращается эта команда STATUS:1
(без дополнительной информации, но статус меняется) На 0018000902-AI03 вместо этого возвращается эта команда STATUS:2
(без дополнительной информации, но статус меняется)
AT+CIPSTART - Установить TCP-соединение или зарегистрировать UDP-порт и запустить соединение
Вариант | Команда | Ответ | Функция |
Установка | AT+CIPSTART=type ,addr ,port |
ОК | Запустить соединение как клиент. (Режим одиночного подключения) |
Установка | AT+ CIPSTART=id ,type ,addr ,port |
ОК | Запустить соединение как клиент. (Режим множественного подключения) |
Тест | AT+CIPSTART=? | [+CIPSTART: (идентификатор) (“тип”), (“ip-адрес”), (порт)] OK | Перечислить возможные варианты команд) |
Параметры:
id
: 0-4, идентификатор соединенияtype
: String, “TCP” или “UDP”addr
: String, удаленный IP-адресport
: String, удаленный порт
AT+CIPSEND - Отправка данных
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Тест | AT+CIPSEND=? | ОК | |
Установка | AT+CIPSEND=length |
ОТПРАВИТЬ OK | Установить длину данных, которые будут отправляться. Для обычной отправки (однократное соединение). |
Установка | AT+CIPSEND=id ,length |
ОТПРАВИТЬ OK | Установить длину данных, которые будут отправляться. Для обычной отправки (множественное соединение). |
Выполнение | AT+CIPSEND | Отправить данные. Для режима передачи без прикрас. |
Обычный режим
Параметры:
id
: ИДЕНТИФИКАЦИОННЫЙ номер передающего соединенияlength
: длина данных, НЕ БОЛЕЕ 2048 байт
Режим передачи без прикрас
Завершить передачу “>” после выполнения команды. Вводит передачу без прикрас, интервал 20 мс между каждым пакетом, максимум 2048 байт на пакет. При получении одного пакета, содержащего “+++”, он возвращается в командный режим.
AT+CIPCLOSE - Закрыть TCP или UDP соединение
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Тест | AT+CIPCLOSE=? | ОК | |
Установка | AT + CIPCLOSE=id |
ОК | Закрыть соединение TCP или UDP.Для режима многократного подключения |
Выполнение | AT + CIPCLOSE | ОК | Закрыть соединение TCP или UDP.Для режима одиночного подключения |
Параметры:
id
: Идентификационный номер соединения для закрытия, когда id = 5, все соединения будут закрыты.
Примечание:
В режиме сервера id = 5 не имеет никакого эффекта!
AT+CIFSR - Получить локальный IP-адрес
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Тест | AT+CIFSR=? | ОК | |
Выполнение | AT+CIFSR | +CIFSR:ip ОК |
Получить локальный IP-адрес. |
Параметры:
ip
: IP-адрес ESP8266 в качестве клиента.
Пример
AT+CIFSR
AT+CIPMUX - Включить несколько подключений или нет
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Установка | AT + CIPMUX =mode |
ОК | Включение / выключение режима мультиплексирования (до 4 соединений) |
Запрос | AT + CIPMUX? | +CIPMUX:mode НОРМАЛЬНО |
Вывод текущего режима мультиплексирования. |
Параметры:
mode
:- 0: Однократное подключение
- 1: Несколько подключений (МАКСИМУМ 4)
ПРИМЕЧАНИЕ:
Этот режим может быть изменен только после отключения всех соединений. Если сервер запущен, требуется перезагрузка.
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Установка | AT+CIPSERVER=mode [,port ] |
ОК | Настроить ESP8266 в качестве сервера |
Параметры:
mode
:- 0: Удалить сервер (необходимо выполнить перезапуск)
- 1. Создать сервер
port
: номер порта, по умолчанию 333
ПРИМЕЧАНИЕ:
- Сервер может быть создан только тогда, когда AT + CIPMUX=1
- Монитор сервера будет создан автоматически при создании сервера.
- Когда клиент подключен к серверу, он будет использовать одно соединение, ему будет присвоен идентификатор.
AT+CIPMODE - Установить режим передачи
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | РЕЖИМ AT + CIP? | +CIPMODE:mode НОРМАЛЬНО |
Установить режим передачи, обычную или прозрачную передачу. |
Установка | РЕЖИМ AT + CIP =mode |
ОК | Установить режим передачи, обычную или прозрачную передачу. |
Параметры:
mode
:- 0: обычный режим
- 1: режим передачи без прикрас
AT+CIPSTO - Установить время ожидания сервера
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Запрос | AT + CIPSTO? | +CIPSTO:time |
Время ожидания сервера запросов. |
Установка | AT + CIPSTO =time |
ОК | Установить время ожидания сервера. |
Параметры:
time
: время ожидания сервера, диапазон 0 ~ 7200 секунд
AT+CIUPDATE - обновление по сети
!!! Не запускайте это, если вы не знаете, что делаете!!!
!!! Скорее всего, это приведет к блокировке вашего устройства!!!
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнение | AT+CIUPDATE | + CIUPDATE:n ОК |
Запуск обновления по сети |
Параметры:
-n
:
- 1: найден сервер
- 2: подключение к серверу
- 3: получено издание
- 4: начать обновление
Пример:
AT+CIUPDATE
+CIUPDATE: 1
+CIUPDATE: 2
+CIUPDATE: 3
+CIUPDATE: 4
+IPD - Прием сетевых данных
Вариант | Команда | Ответ | Функция |
---|---|---|---|
Выполнение | +IPD,len :data |
Прием сетевых данных из одного соединения. | |
Выполнение | +IPD,id ,len :data |
Прием сетевых данных из нескольких соединений. |
Параметры:
id
: идентификационный номер соединенияlen
: длина данныхdata
: данные получены
Примечание:
По всей видимости команда не работает