Администрирование Железо ESP8266: справочник по командам AT Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


ESP8266: справочник по командам AT Печать
Добавил(а) microsin   

Каждая инструкция для модуля может находиться в одной строке, которая должна завершаться символом возврата каретки CR, или \r (Enter или Ctrl+M, код 0x0D). После поступления кода возврата каретки команда запускается модулем на выполнение, в результате в терминал консоли выводится ответ, содержащий результат выполнения команды.

Примечание: некоторые старые прошивки (www.ai-thinker.com Version:0.9.2.4) требуют для завершения ввода команды последовательности CRLF, \r\n (т. е. Ctrl+M и Ctrl+J), где символы CR и LF следуют друг за другом (код LF 0x0A). Большинство популярных программ терминала (например putty) после нажатия на Enter выдают только символ возврата каретки \r. 

ESP 01 top 1 GND, общий провод всех сигналов, минус питания.
2 TXD, передача данных TTL RS232.
3 GPIO2.
4 CHIP_EN, лог. 1 на этом выводе разрешает работу модуля ESP-01.
5 GPIO0, если при сбросе удерживается 0, то активируется режим обновления прошивки.
6 EXT_RSTB, если здесь 0, то происходит сброс модуля.
7 RXD, прием данных TTL RS232.
8 +3V, питание модуля.

TXD: синий светодиод, индицирующий передачу данных через TTL RS-232.
PWR: красный светодиод, индицирующий питание модуля.

[Общее описание инструкций]

Каждая инструкция (строка символов, начинающаяся на префикс AT и завершающаяся символом CR) может содержать в себе один из 4 типов команд.

Тип Формат инструкции Описание
test AT+CMD=? Запрашивает либо значение параметра, который был установлен командой типа set (чаще всего такие параметры сохраняются в энергонезависимой памяти модуля), либо внутренние параметры и их диапазон значений.
query AT+CMD? Запрашивает текущее значение параметра.
set AT+CMD=parameter Устанавливает значение параметра, определяемого пользователем, и вводит его в действие.
execute AT+CMD Запуск команды без параметров.

Замечания по инструкциям:

• Не все инструкции AT имеют 4 типа команд, т. е. какой-то тип может отсутствовать (например, у инструкции AT+CIPSEND есть только типы set и execute).
• [] означает значение по умолчанию, оно не требуется или может отсутствовать.
• Строковые значения требуют ввода в двойных кавычках, например: AT+CWSAP="ESP756190","21030826",1,4.
• Инструкция AT должна оканчиваться на последовательностью символов \r\n.
• Если команда выполнена успешно, то сообщение о её завершении оканчивается на OK, иначе на ERROR или FAIL.

Скорость, с которой работает терминал, равна 115200 бод. Некоторые старые прошивки требуют скорости 9600 бод. Остальные параметры стандартные. Ниже показан скриншот настроек сессии Serial популярной утилиты терминала putty.

ESP 01 putty config

[Базовые команды]

Команда Описание
AT Простая проверка - запустился ли модуль.
AT+RST Перезагрузка модуля.
AT+GMR Вывод информации о версии.
AT+GSLP Вход в режим глубокого сна.
ATE Управление повтором принятых символов команд (эхо).

Команда Тип Ответ
AT execute OK

Команда Тип Ответ
AT+RST execute OK

Команда Тип Ответ Описание
AT+GMR execute number OK Выводит информацию о версии прошивки модуля ESP8266.

number информация о версии, длина 8 байт.

Команда Тип Ответ Описание
AT+GSLP=time set time OK Переводит модуль в режим сна на указанное время.

time значение в миллисекундах, устанавливает время сна ESP8266. Модуль ESP8266 автоматически проснется после истечения time миллисекунд времени глубокого сна.

Примечание: для пробуждения из глубокого сна требуется аппаратная поддержка (сигнал XPD_DCDC должен соединяться с сигналом сброса EXT_RSTB через перемычку 0R).

Команда Тип Ответ
ATEn set OK

ATE0 запрещает эхо.
ATE1 разрешает эхо.

[Команды Wi-Fi]

Команда Описание
AT+CWMODE Режим W-Fi (station/softAP/station+softAP).
AT+CWJAP Подключение к AP (AP означает Access Point, точка доступа).
AT+CWLAP Вывод списка доступных AP.
AT+CWQAP Отключение от AP.
AT+CWSAP Установка параметров для режима AP.
AT+CWLIF Получение IP станции, подключенной к ESP8266 в режиме softAP.
AT+CWDHCP Разрешить/запретить DHCP.
AT+CIPSTAMAC Установить MAC-адрес станции ESP8266.
AT+CIPAPMAC Установить MAC-адрес точки доступа (softAP) ESP8266.
AT+CIPSTA Установить IP-адрес станции ESP8266.
AT+CIPAP Установить IP-адрес точки доступа (softAP) ESP8266.

Команда Тип Ответ Описание
AT+CWMODE? query +CWMODE:mode
OK
Запрашивает информацию о настроенном режиме работы WiFi. Команда возвращает код режима mode.
AT+CWMODE=mode execute OK/ERROR Устанавливает режим работы Wi-Fi модуля ESP8266.

Код режима mode:

1 режим станции (станция может подключаться к точке доступа).
2 режим softAP (Access Point, т. е. модуль работает как точка доступа).
3 softAP + station (модуль может работать и как AP, и как станция).

Команда Тип Ответ Описание
AT+CWJAP? query +CWJAP:ssid
OK
Запрашивает информацию о точке доступа, куда подключен модуль ESP8266 (модуль работает как станция).
AT+CWJAP=ssid,pwd execute OK/ERROR Дает команду подключиться к точке доступа.

ssid строка, где в двойных кавычках указан идентификатор (имя) точки доступа.
pwd строка, где в двойных кавычках указан пароль точки доступа. Максимальная длина строки пароля 64 символа.

Пример:

AT+CWJAP="wifi-1","12345678"
 
OK

Команда Тип Ответ Описание
AT+CWLAP=ssid,mac,enc set +CWLAP:enc,ssid,rssi,mac,chn
OK
Запрашивает информацию о доступных точках доступа с применением фильтрации по их параметрам.
AT+CWLAP execute +CWLAP:enc,ssid,rssi,mac,chn
OK
Выводит список всех доступных точек доступа.

enc какое используется шифрование доступа:

0 OPEN (доступ без пароля, доступ не защищен).
1 WEP
2 WPA_PSK
3 WPA2_PSK
4 WPA_WPA2_PSK

ssid строка идентификатора (имени) точки доступа.

rssi уровень сигнала от точки доступа.

mac строка, в которой содержится MAC-адрес точки доступа.

chn номер используемого радиоканала.

Пример:

AT+CWLAP
+CWLAP:(3,"D323",-70,"c0:c1:c0:97:ad:0f",1)
+CWLAP:(4,"Akado52",-78,"44:32:c8:fc:f3:2e",1)
+CWLAP:(3,"SSID1",-86,"38:46:08:44:54:83",1)
+CWLAP:(3,"Mgts 56",-79,"34:4b:50:1c:66:f1",1)
+CWLAP:(2,"beeline-router105E44",-89,"84:c9:b2:10:5e:44",1)
+CWLAP:(3,"MGTS71",-88,"34:4b:50:18:47:86",1)
+CWLAP:(3,"mgts 53",-78,"4c:ac:0a:70:f1:93",6)
+CWLAP:(4,"NetByNet_055",-69,"10:fe:ed:fb:89:92",6)
+CWLAP:(3,"mgts 49",-85,"34:4b:50:1b:c9:4b",6)
+CWLAP:(3,"mgts66",-86,"4c:ac:0a:70:a4:db",6)
+CWLAP:(3,"mgts81",-87,"84:74:2a:09:7e:95",6)
+CWLAP:(3,"SSID1",-92,"4c:ac:0a:70:e9:23",6)
+CWLAP:(4,"onlime56",-77,"d4:bf:7f:0d:8c:d1",9)
+CWLAP:(3,"mgts52",-82,"34:4b:50:1c:77:c2",11)
+CWLAP:(4,"NetBynet",-84,"00:26:18:3d:4f:61",11)
+CWLAP:(0,"Beeline_WiFi",-92,"00:18:b0:ee:e3:d0",1)
+CWLAP:(0,"Beeline_WiFi_WPA",-87,"00:18:b0:ee:e3:d1",1)
 
OK

Команда Тип Ответ Описание
AT+CWQAP execute OK Производит отключение модуля ESP8266 от точки доступа.

Инструкция конфигурирует режим работы softAP модуля ESP8266 (режим, когда модуль работает как точка доступа).

Команда Тип Ответ Описание
AT+CWSAP? query +CWSAP:ssid,pwd,chn,enc
OK
Запрашивает информацию о конфигурации режима softAP.
AT+CWSAP=ssid,pwd,chn,enc set OK/ERROR Конфигурирует режим softAP.

ssid строка, задающая имя (SSID) точки доступа модуля ESP8266. Значение SSID должно быть указано в двойных кавычках.

pwd строка пароля, максимальная длина 64 символа. Значение пароля должно быть указано в двойных кавычках.

chn идентификатор канала.

enc шифрование доступа:

0 OPEN (доступ без пароля, доступ не защищен).
1 WEP
2 WPA_PSK
3 WPA2_PSK
4 WPA_WPA2_PSK

Пример:

AT+CWSAP="esp_123","1234567890",5,3
 
OK

Команда Тип Ответ Описание
AT+CWLIF execute ipaddr OK Выводит список IP-адресов станций, подключенных к модулю ESP8266, находящемуся в режиме softAP (точка доступа).

ipaddr адрес IP станции Wi-Fi, подключенной к модулю ESP8266, работающему как точка доступа.

Команда Тип Ответ
AT+CWDHCP=mode,en set OK/ERROR

mode:

1 режим станции (станция может подключаться к точке доступа).
2 режим softAP (Access Point, т. е. модуль работает как точка доступа).
3 softAP + station (модуль может работать и как AP, и как станция).

en:

0 запретить DHCP.
1 разрешить DHCP.

Команда Тип Ответ Описание
AT+CIPSTAMAC? query +CIPSTAMAC:mac
OK
Запрашивает информацию о MAC-адресе станции ESP8266 (модуль работает как станция).
AT+CIPSTAMAC=mac execute OK/ERROR Устанавливает значение MAC-адреса станции ESP8266.

mac строка MAC-адреса станции ESP8266, заключенная в двойные кавычки.

Пример:

AT+CIPSTAMAC="18:aa:35:97:d4:7b"
 
OK

Команда Тип Ответ Описание
AT+CIPAPMAC? query +CIPAPMAC:mac
OK
Запрашивает информацию о MAC-адресе точки доступа ESP8266 (модуль работает в режиме softAP).
AT+CIPAPMAC=mac execute OK/ERROR Устанавливает значение MAC-адреса точки доступа ESP8266.

mac строка MAC-адреса точки доступа ESP8266, заключенная в двойные кавычки.

Пример:

AT+CIPAPMAC="18:aa:35:97:d4:7b"
 
OK

Команда Тип Ответ Описание
AT+CIPSTA? query +CIPSTA:mac
OK
Запрашивает информацию о IP-адресе станции ESP8266 (модуль работает как станция).
AT+CIPSTA=ip execute OK/ERROR Устанавливает значение IP-адреса станции ESP8266.

ip строка IP-адреса станции ESP8266, заключенная в двойные кавычки.

Пример:

AT+CIPSTA="192.168.0.23"
 
OK

Команда Тип Ответ Описание
AT+CIPAP? query +CIPAP:mac
OK
Запрашивает информацию о IP-адресе точки доступа ESP8266 (модуль работает в режиме softAP).
AT+CIPAP=ip execute OK/ERROR Устанавливает значение IP-адреса точки доступа ESP8266.

ip строка IP-адреса точки доступа ESP8266, заключенная в двойные кавычки.

Пример:

AT+CIPAP="192.168.0.100"
 
OK

[Команды TCP-IP]

Команда Описание
AT+CIPSTATUS Получить состояние соединения.
AT+CIPSTART Устанавливает соединение TCP, или регистрирует порт UDP.
AT+CIPSEND Отправка данных.
AT+CIPCLOSE Закрытие соединения TCP или UDP.
AT+CIFSR Получение локального адреса IP.
AT+CIPMUX Разрешить режим множественных соединений.
AT+CIPSERVER Сконфигурировать и запустить сервер.
AT+CIPMODE Установить режим передачи (нормальный или прозрачный).
AT+CIPSTO Установить таймаут, в течение которого ESP8266 работает как сервер TCP.
AT+CIUPDATE Обновление прошивки ESP8266 через сеть.

Команда Тип Ответ Описание
AT+CIPSTATUS=? test OK Проверка.
AT+CIPSTATUS execute STATUS:stat
+CIPSTATUS:id,type,addr,port,tetype
OK
Выводит информацию о соединении.

stat текущее состояние модуля ESP8266:

2 получение IP-адреса от точки доступа.
3 соединение установлено.
4 отключено (Disconnect, Link (Socket) Closed).
5 отключено (Disconnect from Last Used AP).

id идентификатор соединения (0..4) для режима множественного доступа.

type строка, где в двойных кавычках указан тип IP-соединения, "TCP" или "UDP".

addr строка в двойных кавычках, показывающая IP-адрес.

port десятичный номер порта.

tetype:

0 ESP8266 работает как клиент.
1 ESP8266 работает как сервер.

Примечание: некоторые модули ESP-01 в ответ на команду AT+CIPSTATUS? выводят ошибку (ERROR), а в ответ на AT+CIPSTATUS выводят STATUS:1 вместо информации, показанной в таблице (означает нет дополнительной информации, но состояние поменялось). На прошивке 0018000902-AI03 эта команда возвращает вместо этого STATUS:2 (нет дополнительной информации, но состояние поменялось). Прошивка 00200.9.5(b1) AI-THINKER Dec 25 2014 выводит вместо этого STATUS:5.

Пример вывода команды AT+CIPSTATUS, означающей, что установлено TCP-подключение к серверу ESP8266 от клиента с IP-адресом 192.168.0.56, порт клиента 29998:

AT+CIPSTATUS
STATUS:3
+CIPSTATUS:0,"TCP","192.168.0.56",29998,1
 
OK

Пример вывода команды AT+CIPSTATUS, означающей, что есть подключение к точке доступа, но сетевых подключений к ESP8266 нет (сервер может быть запущен, но все сетевые подключения разорваны):

AT+CIPSTATUS
STATUS:4
 
OK

Примечание: если нет обмена данными с сервером ESP8266, то сервер через определенное время (таймаут соединения) разрывает соединение. Таймаут устанавливается командой AT+CIPSTO (значение по умолчанию обычно 180 секунд).

Команда устанавливает TCP-соединение с удаленным сервером или регистрирует локальный порт UDP и начинает соединение.

Команда Тип Ответ Описание
AT+CIPSTART=type,addr,port set OK/ERROR Устанавливает соединение как клиент сети (режим одиночного соединения).
AT+CWSAP=id,type,addr,port set OK/ERROR Запускает соединение как клиент (режим множественных соединений).

Описание параметров:

id число от 0 до 4, идентификатор соединения.

type строка, в двойных кавычках указывающая тип соединения "TCP" или "UDP".

addr строка, в двойных кавычках указывающая IP-адрес удаленной точки подключения.

port десятичное число, указывающее порт удаленной точки подключения.

Команда Тип Ответ Описание
AT+CIPSEND=length set SEND OK Устанавливает длину отправляемых данных в байтах. Применяется для нормальной отправки, режим одиночного соединения.
AT+CIPSEND=id,length set SEND OK Устанавливает длину отправляемых данных в байтах. Применяется для нормальной отправки, режим множественных соединений.
AT+CIPSEND execute   Переходит в состояние отправки данных Применяется для режима прозрачной отправки данных.

Описание параметров:

id номер идентификатора сетевого соединения (0..4).
length количество передаваемых данных в байтах, допускается максимум 2048 байт.

Существует 2 режима отправки данных - нормальный (normal) и прозрачный (unvarnished).

Режим normal. В этом режиме данные передаются модулем ESP8266 порциями, при этом отправка каждой порции данных заранее подготавливается командой AT+CIPSEND=length. После ввода этой команды модуль ESP8266 выдает приглашение > и ждет поступления через сигнал RXD указанного length количества байт, после чего автоматически выходит обратно в режим обработки AT-инструкций.

Режим unvarnished. Это прозрачный режим, когда все принимаемые через сигнал RXD данные прозрачно передаются через установленное сетевое соединение на удаленный хост сети, и когда все принимаемые данные от удаленного хоста прозрачно попадают на сигнал TXD. После ввода этой команды модуль выдает приглашение > и начинает работать в прозрачном режиме. Для выхода из прозрачного режима в режим обработки AT-инструкций необходимо поступление "магической" комбинации данных "+++".

Примечание: не все версии прошивки позволяют выйти из прозрачного режима через магическую комбинацию. Например, мой модуль с прошивкой ai-thinker.com Version:0.9.2.4 выходит из прозрачного режима только после аппаратного сброса или передергивания питания.

Команда Тип Ответ Описание
AT+CIPCLOSE=id set OK Закрывает соединение TCP или UDP. Применяется для режима множественных соединений.
AT+CIPCLOSE execute OK Закрывает соединение TCP или UDP. Применяется для режима одиночных соединений.

id номер идентификатора соединения, которое нужно закрыть. Параметр id должен быть от 0 до 4, если нужно закрыть одно соединение. Если указать 5, то закроются все соединения.

Команда Тип Ответ Описание
AT+CIFSR execute +CIFSR:ip
OK
Выводит значение локального IP-адреса.

ip значение IP-адреса для режима станции или softAP.

Команда Тип Ответ Описание
AT+CIPMUX=mode set OK/ERROR Устанавливает режим соединения: разрешает одиночное соединение, или разрешает множественные соединения.

mode:

0 одиночное соединение.
1 множественные соединения.

Примечание: этот режим можно поменять только после того, как все соединения были закрыты. Если запущен сервер, то требуется перезагрузка.

Команда Тип Ответ Описание
AT+CIPSERVER=mode[,port] set OK/ERROR Конфигурирует и запускает сервер на модуле ESP8266.

mode:

0 удаляет сервер (после этого нужна перезагрузка).
1 создает сервер.

port номер порта сервера. Не обязательный параметр, если не указан, то по умолчанию используется порт 333.

Примечание: сервер может быть запущен только в том случае, если разрешен режим множественных соединений (выполнена команда AT+CIPMUX=1). Когда создается сервер, то автоматически создается монитор сервера (кто бы объяснил, что это такое?..). Когда клиент подключается к серверу, то он получает одно соединение, и ему присваивается идентификатор соединения id. Всего допускается не более 5 одновременных соединений (идентификаторы 0..4).

Команда Тип Ответ Описание
AT+CIPMODE? query +CIPMODE:mode
OK
Запрашивает текущий режим отправки данных.
AT+CIPMODE=mode set OK/ERROR Устанавливает режим передачи данных: нормальный или прозрачный режим.

mode:

0 нормальный (normal) режим передачи.
1 прозрачный (unvarnished) режим передачи.

Существует 2 режима отправки данных - нормальный (normal) и прозрачный (unvarnished).

Режим normal. В этом режиме данные передаются модулем ESP8266 порциями, при этом отправка каждой порции данных заранее подготавливается командой AT+CIPSEND=length. После ввода этой команды модуль ESP8266 выдает приглашение > и ждет поступления через сигнал RXD указанного length количества байт, после чего автоматически выходит обратно в режим обработки AT-инструкций. Нормальный режим позволяет выполнять AT-команды в перерывах между передачами блоков данных.

Режим unvarnished. Это прозрачный режим, когда все принимаемые через сигнал RXD данные прозрачно передаются через установленное сетевое соединение на удаленный хост сети, и когда все принимаемые данные от удаленного хоста прозрачно попадают на сигнал TXD. После ввода этой команды модуль выдает приглашение > и начинает работать в прозрачном режиме. Для выхода из прозрачного режима в режим обработки AT-инструкций необходимо поступление "магической" комбинации данных "+++".

Примечание 1: не все версии прошивки позволяют выйти из прозрачного режима через магическую комбинацию. Например, мой модуль с прошивкой ai-thinker.com Version:0.9.2.4 выходит из прозрачного режима только после аппаратного сброса или передергивания питания.

Примечание 2: к сожалению, мне не удалось заставить работать ESP-01 в режиме сервера с прозрачной передачей данных. Прозрачная передача почему-то работает только в режиме клиента. Экспериментировал с прошивками 0018000902-AI03 (Version:0.9.2.4) и 00200.9.5(b1) (Version:0.9.5(b1)).

Команда Тип Ответ Описание
AT+CIPSTO? query +CIPSTO:time Выводит значение таймаута сервера.
AT+CIPSTO=time set OK/ERROR Устанавливает значение таймаута сервера.

time таймаут сервера в секундах, может быть установлен в диапазоне 0..7200 секунд.

Команда Тип Ответ Описание
AT+CIUPDATE execute +CIUPDATE:n
OK
Запускает обновление прошивки через сеть.

n:

1 найден сервер.
2 произошло соединение с сервером.
3 получена редакция.
4 запущено обновление.

[Разное]

Команда Описание
+IPD Это не команда, а маркер приема данных через сеть.
AT+IPR=baud Устанавливает скорость работы порта TTL RS232 модуля ESP8266.

Команда Тип Ответ Описание
  execute +IPD,len:data Получены данные через одиночное сетевое соединение.
  execute +IPD,id,len:data Получены данные через сетевое соединение в режиме множественных соединений.

id идентификатор соединения (0..4).
len длина полученных данных.
data принятые данные.

Команда Тип Ответ Описание
AT+IPR=baud execute OK/ERROR Настраивает скорость работы порта TTL RS232.

baud скорость в бодах.

[Ссылки]

1. AT_Description site:github.com.
2. ESP8266: микросхема Wi-Fi.
3. ESP8266: пример тестирования команд AT.

 

Комментарии  

 
+1 #2 Владимир 23.07.2023 11:44
Для выхода из "Режим unvarnished" нужно отправить +++ без CRLF.
Цитировать
 
 
0 #1 Сергей 08.11.2020 19:10
Спасибо добрый человек! Особенно помогли комменты сереньким про режимы и макс. длину передачи.
Цитировать
 

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


Защитный код
Обновить

Top of Page