AT команды ESP8266-01S. Описание и примеры использования.
В данной статье мы разберем все известные AT команды, которые поддерживает ESP8266, узнаем, что они делают и как их использовать.
AT команды ESP8266-01S. Описание и примеры использования.
29.02.2024 в 11:05   1769 0
Версия для печати

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. Один из вариантов которого вы можете увидеть на картинке ниже.

USB2TTL

Он свободно продается на Aliexpress по цене около 100 рублей и купить его можно здесь или здесь.

Схема подключения

Для начала разберем назначение пинов конвертера.
Самый верхний контакт - это контакт заземления, а третий контакт - VCC, которые являются линиями питания для устройства (ESP-01). Второй PIN - это CTS, которые означают "очистить для отправки". Мы не будем использовать этот вывод в этой схеме. 4-й и 5-й контакты - это TX и RX, которые будут подключаться к RX и TX модуля ESP-01 соответственно. Последний вывод - DTR, который обозначает готовность терминала передачи данных. Этот вывод также не используется в этой схеме. 

Переходим непосредственно к схеме подключения.

scheme

Если у вас нет преобразователя FTDI TTL в USB, вы можете использовать плату Arduino в качестве замены устройства FTDI. Подключение показано ниже.

arduino connection

Теперь вы можете подключить USB кабель и начать общение со своим компьютером. Но на данном этапе у вас скорее всего ничего не выйдет. Компьютер по умолчанию не поддерживает последовательную связь, поэтому не распознает входящие данные с устройства FTDI. Итак, нам нужен какой-то драйвер, который может считывать шаблон входящих данных. Вы можете использовать любой последовательный терминал. Например  такой как  PuTTY, поскольку он прост в использовании и имеет много других функций.Либо же пойти более простым путем и использовать Монитор последовательного порта в Arduino IDE. На этом плавно переходим к программной части.

Программная часть

Итак, вы подключили оборудование к компьютеру с помощью USB кабеля. Прежде всего нам необходимо узнать номер порта для связи с ESP8266 с помощью последовательного интерфейса. Чтобы найти номер порта, присвоенный FTDI, нам нужно открыть Диспетчер устройств на компьютере. Затем перейти в раздел Порты и посмотреть номер порта, присвоенный преобразователю FTDI TTL в USB или плате Arduino.

ports

Теперь открываем Терминал последовательного порта. Я буду использовать Arduino IDE, но и в других вариантах настройки будут схожими.

Итак, запускаем Arduino IDE и открывает Монитор последовательного порта.  Выберите скорость передачи данных 115200 бод и опцию NL& CR. Здесь NL - новая строка “\ n”, а CR - возврат каретки “\ r”. Если вы выберете эту опцию, Монитор последовательного порта добавит эти значения в вашу команду, а если вы этого не сделаете, вам придется вводить их вручную в конце каждой команды.

serial settings
 

Теперь введите AT, чтобы проверить, отвечает ESP-01 или нет. Если модуль отвечает “ОК”, значит, вы все сделали идеально, и все готово. Но если он отвечает “ERROR”, вам нужно проверить  синтаксис, чтобы он не содержал пробелов или каких-либо других символов, просто “AT”. Если модуль ничего не отвечает, вам нужно проверить ваше соединение. Модуль должен питаться от 3,3 В. Для этого преобразователь FTDI имеет перемычку 3,3 В, а Arduino имеет пин 3,3 В.

ESP responce

Список АТ команд

Ниже приведена таблица со всеми известными 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 программного обеспечения ESP8266
  • pwd: 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.

Параметры:

  • macString, 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

ПРИМЕЧАНИЕ:

  1. Сервер может быть создан только тогда, когда AT + CIPMUX=1
  2. Монитор сервера будет создан автоматически при создании сервера.
  3. Когда клиент подключен к серверу, он будет использовать одно соединение, ему будет присвоен идентификатор.

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: данные получены

Примечание:

По всей видимости команда не работает

Материал также доступен на моем канале: Яндекс Дзен и в группе ВК
Категория: Программирование | Добавил: :, (03.03.2023)
Просмотров: 1769 | Теги: at, ESP8266, AT команды | Рейтинг: 0.0/0
Поделиться:
Всего комментариев: 0
avatar