Каждая инструкция для модуля может находиться в одной строке, которая должна завершаться символом возврата каретки 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.
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.
[Базовые команды]
Команда
Описание
AT
Простая проверка - запустился ли модуль.
AT+RST
Перезагрузка модуля.
AT+GMR
Вывод информации о версии.
AT+GSLP
Вход в режим глубокого сна.
ATE
Управление повтором принятых символов команд (эхо).
time значение в миллисекундах, устанавливает время сна ESP8266. Модуль ESP8266 автоматически проснется после истечения time миллисекунд времени глубокого сна.
Примечание: для пробуждения из глубокого сна требуется аппаратная поддержка (сигнал XPD_DCDC должен соединяться с сигналом сброса EXT_RSTB через перемычку 0R).
Запрашивает информацию о настроенном режиме работы WiFi. Команда возвращает код режима mode.
AT+CWMODE=mode
execute
OK/ERROR
Устанавливает режим работы Wi-Fi модуля ESP8266.
Код режима mode:
1 режим станции (станция может подключаться к точке доступа). 2 режим softAP (Access Point, т. е. модуль работает как точка доступа). 3 softAP + station (модуль может работать и как AP, и как станция).
Запрашивает информацию о точке доступа, куда подключен модуль ESP8266 (модуль работает как станция).
AT+CWJAP=ssid,pwd
execute
OK/ERROR
Дает команду подключиться к точке доступа.
ssid строка, где в двойных кавычках указан идентификатор (имя) точки доступа. pwd строка, где в двойных кавычках указан пароль точки доступа. Максимальная длина строки пароля 64 символа.
1 режим станции (станция может подключаться к точке доступа). 2 режим softAP (Access Point, т. е. модуль работает как точка доступа). 3 softAP + station (модуль может работать и как AP, и как станция).
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, означающей, что есть подключение к точке доступа, но сетевых подключений к ESP8266 нет (сервер может быть запущен, но все сетевые подключения разорваны):
AT+CIPSTATUS
STATUS:4
OK
Примечание: если нет обмена данными с сервером ESP8266, то сервер через определенное время (таймаут соединения) разрывает соединение. Таймаут устанавливается командой AT+CIPSTO (значение по умолчанию обычно 180 секунд).
Устанавливает длину отправляемых данных в байтах. Применяется для нормальной отправки, режим одиночного соединения.
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 выходит из прозрачного режима только после аппаратного сброса или передергивания питания.
Закрывает соединение TCP или UDP. Применяется для режима множественных соединений.
AT+CIPCLOSE
execute
OK
Закрывает соединение TCP или UDP. Применяется для режима одиночных соединений.
id номер идентификатора соединения, которое нужно закрыть. Параметр id должен быть от 0 до 4, если нужно закрыть одно соединение. Если указать 5, то закроются все соединения.
Конфигурирует и запускает сервер на модуле ESP8266.
mode:
0 удаляет сервер (после этого нужна перезагрузка). 1 создает сервер.
port номер порта сервера. Не обязательный параметр, если не указан, то по умолчанию используется порт 333.
Примечание: сервер может быть запущен только в том случае, если разрешен режим множественных соединений (выполнена команда AT+CIPMUX=1). Когда создается сервер, то автоматически создается монитор сервера (кто бы объяснил, что это такое?..). Когда клиент подключается к серверу, то он получает одно соединение, и ему присваивается идентификатор соединения id. Всего допускается не более 5 одновременных соединений (идентификаторы 0..4).
Устанавливает режим передачи данных: нормальный или прозрачный режим.
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)).
Комментарии
RSS лента комментариев этой записи