Первое сообщение от устройства после включения
| Уведомление | |
|---|---|
| Сообщение | +STARTED |
Тестовая команда
| Команда | |
|---|---|
| Сообщение | AT |
| Ответ | OK |
Включить / выключить эхо
| Команда | |
|---|---|
| Сообщение | ATE <echo> |
| Ответ | OK |
| Ошибка | FAIL |
| Параметры | <echo>0 - выключить 1 - включить |
| Пример | ATE1ATE0 |
Запрос версии устройства
| Команда | |
|---|---|
| Сообщение | AT+VERSION |
| Ответ | +VERSION:<dev-model>,<app-name>,<app-version>,<app-date>OK |
| Параметры | <dev-model> - модель устройства<app-name> - название прошивки <app-version> - версия прошивки<app-date> - дата выпуска прошивки |
AT+VERSION
+VERSION:"M-3003","AT_MODEM","1.0.1","16.09.2025"
OK
Уникальный идентификатор устройства
| Команда | |
|---|---|
| Сообщение | AT+UID |
| Ответ | +UID:<uid>OK |
| Параметры | <uid> - уникальный идентификатор устройства |
Перезагрузка устройства
| Команда | |
|---|---|
| Сообщение | AT+RESET |
| Ответ | OK |
Переход в режим низкого энергопотребления
| Команда | |
|---|---|
| Сообщение | AT+SLEEP |
| Ответ | OK |
Для выхода из данного режима, нужно отправить любую AT-команду и ожидать сообщение
+STARTED.
Настройка режима WiFi
| Запрос | |
|---|---|
| Сообщение | AT+WFMODE? |
| Ответ | +WFMODE:<mode>OK |
| Параметры | <mode> - режим работы0 - выключен 1 - станция 2 - точка доступа 3 - станция + точка доступа |
| Установка | |
|---|---|
| Сообщение | AT+WFMODE= <mode> |
| Ответ | OK |
| Ошибка | +WFMODE ERROR:<error>FAIL |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+WFMODE=0AT+WFMODE=1 |
| Тест | |
|---|---|
| Сообщение | AT+WFMODE=? |
| Ответ | +WFMODE:<mode>OK |
| Параметры | см. таблицу "Запрос" |
Сканировать доступные точки доступа
Устройство должно работать в режиме "Станция" (см. настройку)
| Команда | |
|---|---|
| Сообщение | AT+WFSCANAP |
| Ответ | +WFSCANAP:<ssid>,<mac>,<channel>,<auth>,<rssi>,<bandwidth>,<pairwise_cipher>,<group_cipher>,<phy>,<wps>OK |
| Ошибка | +WFSCANAP ERROR:<error>FAIL |
| Параметры | <ssid> - название<mac> - MAC-адрес<channel> - канал<auth> - тип авторизации (список значений)<rssi> - мощность сигнала в dBm<bandwidth> - используемая полоса частот0 - HT20 1 - 20 MHz 2 - HT40 3 - 40 MHz 4 - 80 MHz 5 - 160 MHz 6 - 80 + 80 MHz <pairwise_cipher> - тип парного шифра (список значений)<group_cipher> - тип группового шифра (список значений)<phy> - маска поддерживаемой сетиbit0 - 802.11b bit1 - 802.11g bit2 - 802.11n <wps> - поддержка wps |
AT+WFSCANAP
+WFSCANAP:"ESP_E70839","f4-12-fa-e7-08-39",1,0,-25,2,0,0,1,0
+WFSCANAP:"70mai_d02_98ba","44-27-f3-13-98-ba",3,4,-87,1,5,3,1,0
+WFSCANAP:"BEG","9c-e3-74-0f-90-d4",4,4,-68,1,5,3,1,0
+WFSCANAP:"GKU_D200_9a0a","bc-c7-da-be-9a-0a",5,4,-90,1,4,3,1,0
+WFSCANAP:"A1-FT34-A8A038-2.4G","20-57-af-a8-a0-3e",7,4,-85,2,5,3,1,1
+WFSCANAP:"TD1","60-08-10-3c-e0-c4",10,4,-40,1,5,3,1,0
+WFSCANAP:"HUAWEI-h48W","dc-99-14-24-01-cc",10,4,-59,1,5,3,1,1
OK
Настройка формата для команды AT+WFSCANAP
| Запрос | |
|---|---|
| Сообщение | AT+WFSCANAPOPT? |
| Ответ | +WFSCANAPOPT:<mask>OK |
| Ошибка | +WFSCANAPOPT ERROR:<error>FAIL |
| Параметры | <mask> - маска отображаемых параметровbit0 - параметр ssidbit1 - параметр macbit2 - параметр channelbit3 - параметр authmodebit4 - параметр rssibit5 - параметр bandwidthbit6 - параметр pairwise_cipherbit7 - параметр group_cipherbit8 - параметр phybit9 - параметр wpsЗначения битов: 0 - не передавать параметр 1 - передавать параметр |
| Установка | |
|---|---|
| Сообщение | AT+WFSCANAPOPT= <mask> |
| Ответ | +WFSCANAPOPT:<mask>OK |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+WFSCANAPOPT=1023 |
| Тест | |
|---|---|
| Сообщение | AT+WFSCANAPOPT=? |
| Ответ | +WFSCANAPOPT:<mask>OK |
| Параметры | см. таблицу "Запрос" |
Настройка IP-адреса станции
Устройство должно работать в режиме "Станция" (см. настройку)
| Запрос | |
|---|---|
| Сообщение | AT+WFSTAIP? |
| Ответ | +WFSTAIP=<static>,<ip>,<mask>,<gateway>OK |
| Ошибка | +WFSTAIP ERROR:<error>FAIL |
| Параметры | <static>0 - использовать DHCP 1 - статический IP-адрес <ip> - IP-адрес станции<mask> - маска подсети<gateway> - адрес основного шлюза |
| Установка | |
|---|---|
| Сообщение | AT+WFSTAIP= <static>[,<ip>,<mask>,<gateway>] |
| Ответ | OK |
| Ошибка | см. таблицу "Запрос" |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+WFSTAIP=0AT+WFSTAIP=1,"192.168.1.2","255.255.255.0","192.168.1.1" |
Настройка MAC-адреса станции
Устройство должно работать в режиме "Станция" (см. настройку)
| Запрос | |
|---|---|
| Сообщение | AT+WFSTAMAC? |
| Ответ | +WFSTAMAC=<mac>OK |
| Ошибка | +WFSTAMAC ERROR:<error>FAIL |
| Параметры | <mac> - MAC-адрес станции |
| Установка | |
|---|---|
| Сообщение | AT+WFSTAMAC= <mac> |
| Ответ | OK |
| Ошибка | см. таблицу "Запрос" |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+WFSTAMAC="11:22:33:44:55:66" |
Подключиться к точке доступа
Устройство должно работать в режиме "Станция" (см. настройку)
| Команда | |
|---|---|
| Сообщение | AT+WFCONNAP= <ssid> [,<password>,<mac>] |
| Ответ | OK |
| Ошибка | +WFCONNAP ERROR:<error>FAIL |
| Параметры | <ssid> - название точки доступа<password> - пароль для авторизации<mac> - MAC-адрес |
| Пример | AT+WFCONNAP="Ntc","12345678","11:22:33:44:55:66" |
Если команда вернула ответ
OK, то впоследствии будет сгенерировано одно из уведомлений:
➜+STA_CONNECTED
➜+STA_DISCONNECTED
Если команда вернула ошибку, то уведомления не генерируются.
Устройство успешно подключено к точке доступа в режиме "Станция"
| Уведомление | |
|---|---|
| Сообщение | +STA_CONNECTED |
Устройство отключилось от точки доступа или подключение установить не удалось.
| Уведомление | |
|---|---|
| Сообщение | +STA_DISCONNECTED: <reason> |
| Параметры | <reason> - причина отключения (список значений) |
Отключиться от точки доступа
Устройство должно работать в режиме "Станция" (см. настройку)
| Команда | |
|---|---|
| Сообщение | AT+WFDISCONNAP |
| Ответ | OK |
| Ошибка | +WFDISCONNAP ERROR:<error>FAIL |
Настройка IP-адреса точки доступа
Устройство должно работать в режиме "Точка доступа" (см. настройку)
| Запрос | |
|---|---|
| Сообщение | AT+WFAPIP? |
| Ответ | +WFAPIP=<ip>,<mask>OK |
| Ошибка | +WFAPIP ERROR:<error>FAIL |
| Параметры | <ip> - адрес основного шлюза<mask> - маска подсети |
| Установка | |
|---|---|
| Сообщение | AT+WFAPIP= <ip>[,<mask>] |
| Ответ | OK |
| Ошибка | см. таблицу "Запрос" |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+WFAPIP="192.168.1.1","255.255.255.0" |
Настройка MAC-адреса точки доступа
Устройство должно работать в режиме "Точка доступа" (см. настройку)
| Запрос | |
|---|---|
| Сообщение | AT+WFAPMAC? |
| Ответ | +WFAPMAC=<mac>OK |
| Ошибка | +WFAPMAC ERROR:<error>FAIL |
| Параметры | <mac> - MAC-адрес точки доступа |
| Установка | |
|---|---|
| Сообщение | AT+WFAPMAC= <mac> |
| Ответ | OK |
| Ошибка | см. таблицу "Запрос" |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+WFAPMAC="11:22:33:44:55:66" |
Настроить точку доступа
Устройство должно работать в режиме "Точка доступа" (см. настройку)
| Команда | |
|---|---|
| Сообщение | AT+WFAPCONF= <ssid> [,<password>,<channel>,<auth>,<max_conn>,<hidden>] |
| Ответ | OK |
| Ошибка | +WFAPCONF ERROR:<error>FAIL |
| Параметры | <ssid> - название<password> - пароль<channel> - канал1 .. 13 - допустимые значения <auth> - тип авторизации (список значений)<max_conn> - максимальное количество станций (клиентов)<hidden>0 - видимая точка доступа 1 - скрытая точка доступа |
| Пример | AT+WFAPCONF="Ntc","12345678",1,1,5,0 |
Пинг
| Команда | |
|---|---|
| Сообщение | AT+PING=<ip>[,<timeout>,<interval>,<data-size>,<count>] |
| Ответ | +PING,<n>:<result>+PING: <req>,<resp>,<full-time>OK |
| Ошибка | +PING ERROR:<error>FAIL |
| Параметры | <ip> - IP-адрес<timeout> - таймаут на запрос в миллисекундах (по умолчанию 250)<interval> - интервал между запросами в миллисекундах (по умолчанию 250)<data-size> - размер данных в байтах (по умолчанию 16)<count> - количество запросов (по умолчанию 4)<n> - номер запроса <result> - результат: время ответа или таймаут<req> - количество запросов <resp> - количество ответов<full-time> - общее время |
| Пример | AT+PING="192.168.1.1" |
Определение IP-адреса домена
| Команда | |
|---|---|
| Сообщение | AT+DNS=<domain> |
| Ответ | +DNS:<ip>OK |
| Ошибка | +DNS ERROR:<error>FAIL |
| Параметры | <domain> - доменное имя<ip> - IP-адрес |
| Пример | AT+DNS="ya.ru" |
Открыть UDP сокет
| Команда | |
|---|---|
| Сообщение | AT+UDPOPEN[=<src-port>,<dst-addr>,<dst-port>,<index>] |
| Ответ | +UDPOPEN:<index>OK |
| Ошибка | +UDPOPEN ERROR:<error>FAIL |
| Параметры | <src-port> - исходящий порт (если не указан, то присваивается автоматически)<dst-addr> - DNS/IP-адрес получателя<dst-port> - порт получателя<index> - номер сокета (если не указан, то будет назначен автоматически) |
| Пример | AT+UDPOPENAT+UDPOPEN=,"example.com",12345 |
Подключиться к TCP сокету
| Команда | |
|---|---|
| Сообщение | AT+TCPCONN=<dst-addr>,<port>[,<index>] |
| Ответ | +TCPCONN:<index>OK |
| Ошибка | +TCPCONN ERROR:<error>FAIL |
| Параметры | <dst-addr> - целевой DNS/IP-адрес<port> - целевой порт<index> - номер сокета (если не указан, то будет назначен автоматически) |
| Пример | AT+TCPCONN="192.168.1.100",12345 |
TCP сокет успешно подключился по целевому адресу
| Уведомление | |
|---|---|
| Сообщение | +CONNECTED,<index> |
| Параметры | <index> - номер сокета |
TCP сокет отключился
| Уведомление | |
|---|---|
| Сообщение | +DISCONNECTED,<index> |
| Параметры | <index> - номер сокета |
Если получено данное уведомление, то сокет автоматически закрывается и высвобождает ресурсы (не нужно вызывать команду
AT+CLOSE)
Ожидать входящее соединение к TCP сокету
| Команда | |
|---|---|
| Сообщение | AT+TCPLISTEN=<port>[,<conn-count>,<index>] |
| Ответ | +TCPLISTEN:<index>OK |
| Ошибка | +TCPLISTEN ERROR:<error>FAIL |
| Параметры | <port> - порт<conn-count> - максимальное число подключений<index> - номер сокета (если не указан, то будет назначен автоматически) |
| Пример | AT+TCPLISTEN=12345 |
При входящем подключении к данному сокету, придёт уведомление
+CONNECTEDс номером сокета, с помощью которого можно принимать и отправлять данные
Закрыть UDP или TCP сокет
| Команда | |
|---|---|
| Сообщение | AT+CLOSE=<index> |
| Ответ | OK |
| Ошибка | +CLOSE ERROR:<error>FAIL |
| Параметры | <index> - номер сокета |
| Пример | AT+CLOSE=0 |
Отправить данные через UDP или TCP сокет
| Команда | |
|---|---|
| Сообщение | AT+WRITE=<index>,<data>[,<dst-addr>,<port>] |
| Ответ | OK |
| Ошибка | +WRITE ERROR:<error>FAIL |
| Параметры | <index> - номер сокета<data> - данные в текстовом или HEX-формате:HEX-формат - по два символа на один байт Текст - печатный текст, заключенный в кавычки Только для UDP-сокета: dst-addr - DNS/IP-адрес назначенияport - порт назначения.Можно не указывать, если параметры были указаны при открытии, в предыдущей отправке данных или уже были приняты данные от исходящего соединения |
| Пример | AT+WRITE=0,3031323334AT+WRITE=0,"01234" |
Отправка последовательности из 35 байт 404e5443000000000100000013004c472a3e533a313233343531323334353132333435
AT+WRITE=0,404e544301000000000000001300464d2a3e533a383636373935303333333233383634
OK
+READ,0:19,404E544300000000010000000300455E2A3C53
Отправить данные через UDP или TCP сокет
| Команда | |
|---|---|
| Сообщение | AT+WRITEB=<index>,<size>[,<dst-addr>,<port>]<CRLF> <BIN> |
| Ответ | OK |
| Ошибка | +WRITEB ERROR:<error>FAIL |
| Параметры | <index> - номер сокета<size> - размер данных<CRLF> - Разделитель текстовой и бинарной части сообщения (последовательность байт 0x0D, 0x0A)<BIN> - данные в BIN-форматеТолько для UDP-сокета: dst-addr - DNS/IP-адрес назначенияport - порт назначения.Можно не указывать, если параметры были указаны при открытии, в предыдущей отправке данных или уже были приняты данные от исходящего соединения |
Отправка последовательности из 35 байт 404e5443000000000100000013004c472a3e533a313233343531323334353132333435
AT+WRITEB=0,35 <- Текст
404e5443000000000100000013004c472a3e533a313233343531323334353132333435 <- перевод строки и бинарные данные
OK <- Текст
+READB,0:19 <- Текст
404e544300000000010000000300455e2a3c53 <- перевод строки и бинарные данные
Настройка режима приёма данных
| Запрос | |
|---|---|
| Сообщение | AT+DATAMODE? |
| Ответ | +DATAMODE=<data-mode>OK |
| Параметры | <data-mode> - режим приёма данных: |
| Установка | |
|---|---|
| Сообщение | AT+DATAMODE= <data-mode> |
| Ответ | OK |
| Ошибка | +DATAMODE ERROR:<error>FAIL |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+DATAMODE=1 |
Приём данных (в HEX формате) через UDP или TCP сокет
| Уведомление | |
|---|---|
| Сообщение | +READ,<index>[,<addr>,<port>]:<size>,<data> |
| Параметры | <index> - номер сокета<addr> - DNS/IP-адрес отправителя (только если UDP сокет)<port> - порт отправителя (только если UDP сокет)<size> - размер данных<data> - данные в HEX формате (по два символа на один байт) |
Пример использования можно посмотреть в разделе AT+WRITE
Приём данных (в BIN формате ) через UDP или TCP сокет
| Уведомление | |
|---|---|
| Сообщение | +READB,<index>[,<addr>,<port>]:<size> <CRLF> <BIN> |
| Параметры | <index> - номер сокета<addr> - DNS/IP-адрес отправителя (только если UDP сокет)<port> - порт отправителя (только если UDP сокет)<size> - размер данных<CRLF> - Разделитель текстовой и бинарной части сообщения (последовательность байт 0x0D, 0x0A)<BIN> - данные в BIN формате |
Пример использования можно посмотреть в разделе AT+WRITEB
Сокет был закрыт по какой-либо причине
| Уведомление | |
|---|---|
| Сообщение | +CLOSED,<index> |
| Параметры | <index> - номер сокета |
Если получено данное уведомление, то сокет автоматически закрывается и высвобождает ресурсы (не нужно вызывать команду
AT+CLOSE)
Информация об использующихся сокетах
| Команда | |
|---|---|
| Сообщение | AT+SSTAT |
| Ответ | +SSTAT:<index>,<type>,<local-port>[,<remote-ip>,<remote-port>]OK |
| Параметры | <index> - номер сокета<type> - тип сокета:1 - UDP 2 - TCP сервер 3 - TCP исходящее клиентское соединение 4 - TCP входящее клиентское соединение <local-port> - локальный порт<remote-ip> - удалённый IP-адрес<remote-port> - удалённый порт |
AT+SSTAT
+SSTAT:0,3,57683,193.193.165.165,21626
+SSTAT:1,3,57684,193.193.165.165,21627
+SSTAT:2,3,57685,193.193.165.165,21628
OK
Информация о прошивках в устройстве
| Команда | |
|---|---|
| Сообщение | AT+FWINFO |
| Ответ | +FWINFO:<index>,<id>,<app-name>,<app-version>,<app-date>,<active>OK |
| Параметры | <index> - номер прошивки<id> - идентификатор прошивки<app-name> - название прошивки <app-version> - версия прошивки<app-date> - дата выпуска прошивки<active> - работает в данный момент |
Переключение прошивки
| Команда | |
|---|---|
| Сообщение | AT+FWSEL=<index> |
| Ответ | OK |
| Ошибка | +FWSEL ERROR:<error>FAIL |
| Параметры | <index> - номер прошивки |
Запись прошивки (данные в HEX формате)
| Команда | |
|---|---|
| Сообщение | AT+FWWRITE=<id>,<address>,<data> |
| Ответ | OK |
| Ошибка | +FWWRITE ERROR:<error>FAIL |
| Параметры | <id> - идентификатор прошивки, для основной прошивки равен 0 (можно не указывать)<address> - адрес (смещение)<data> - данные в HEX формате (по два символа на один байт) |
Запись прошивки (данные в BIN формате)
| Команда | |
|---|---|
| Сообщение | AT+FWWRITEB=<id>,<address>,<data-size> <CRLF> <BIN> |
| Ответ | OK |
| Ошибка | +FWWRITEB ERROR:<error>FAIL |
| Параметры | <id> - идентификатор прошивки, для основной прошивки равен 0 (можно не указывать)<address> - адрес (смещение)<data-size> - размер данных <CRLF> - Разделитель текстовой и бинарной части сообщения (последовательность байт 0x0D, 0x0A)<BIN> - данные в BIN |
Обновление на записанную прошивку
| Команда | |
|---|---|
| Сообщение | AT+FWUPDATE[=<id>,<size>,<crc>] |
| Ответ | OK |
| Ошибка | +FWUPDATE ERROR:<error>FAIL |
| Параметры | <id> - идентификатор прошивки<size> - размер записанного файла прошивки<crc> - контрольная сумма прошивки |
Инициализировать BLE
| Команда | |
|---|---|
| Сообщение | AT+BLEEN |
| Ответ | OK |
| Ошибка | +BLEEN ERROR:<error>FAIL |
До выполения данной команды все сервисы и характеристики должны быть добавлены (команды:
AT+BLESSVC,AT+BLESCHR). После выполнения данной команды сервисы и характеристики добавить нельзя. Если до выполнения данной команды сервисы и характеристики не добавлялись, то устройство будет неподключаемым. Подключаеться можно только к первому BLE экземпляру (<instance>= 0), остальные всегда неподключаемые.
Добавить сервис
| Команда | |
|---|---|
| Сообщение | AT+BLESSVC=<uuid-data> |
| Ответ | OK |
| Ошибка | +BLESVCADD ERROR:<error>FAIL |
| Параметры | <uuid-data> - UUID сервиса в HEX формате (2, 4 или 16 байт данных) |
Добавить характеристику в последний добавленный сервис
| Команда | |
|---|---|
| Сообщение | AT+BLESCHR=<uuid-data>[,<flags>,<data>,<data-size>,<format>,<exponent>,<units>,<namespace>,<description>] |
| Ответ | +BLECHRADD:<handle>OK |
| Ошибка | +BLECHRADD ERROR:<error>FAIL |
| Параметры | <uuid-data> - UUID сервиса в HEX формате (2, 4 или 16 байт данных)<flags> - тип доступа к характеристике:bit0 - не используеться bit1 - чтение bit2 - запись без подтверждения bit3 - запись bit4 - уведомление при изменении bit5 - индикация при изменении <data> - данные в HEX формате<data-size> - размер данных (если указано данное поле, то поле <data> можно не указывать, и характеристика будет инициализированна нулевыми значениями)<format> - формат значения (если не указано или указан 0 - то остальные парметры не имеют значения) (значения смотрите в спецификации Assigned Numbers - 2.4.1 GATT Format Types)<exponent> - степень множителя 10, на который нужно домножить значение для получения корректного результат (допустимые значения: -128..127) <units> - единицы измерения (значения смотрите в спецификации Assigned Numbers - 3.5.1 Units by Name)<namespace> - простанство имён, обычно равно 1<description> - идентификатор описания<handle> - идентификатор характеристики |
Название BLE устройтсва
| Запрос | |
|---|---|
| Сообщение | AT+BLENAME=[<instance>]? |
| Ответ | +BLENAME,<instance>=<name>OK |
| Ошибка | +BLENAME ERROR:<error>FAIL |
| Параметры | <instance> - номер BLE экземпляра (по-умолчанию 0)<name> - название |
| Установка | |
|---|---|
| Сообщение | AT+BLENAME=[<instance>],<name> |
| Ответ | OK |
| Ошибка | см. таблицу "Запрос" |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+BLENAME=0,"Abc" |
Тип (appearance) BLE устройства
| Запрос | |
|---|---|
| Сообщение | AT+BLEAPP=[<instance>]? |
| Ответ | +BLEAPP,<instance>=<appearance>OK |
| Ошибка | +BLEAPP ERROR:<error>FAIL |
| Параметры | <instance> - номер BLE экземпляра (по-умолчанию 0)<appearance> - тип устройства |
| Установка | |
|---|---|
| Сообщение | AT+BLEAPP=[<instance>],<appearance> |
| Ответ | OK |
| Ошибка | см. таблицу "Запрос" |
| Параметры | см. таблицу "Запрос" |
| Пример | AT+BLEAPP=0,512 |
Настроить BLE устройство
| Команда | |
|---|---|
| Сообщение | AT+BLECONF[=<instance>,<type>,<interval-min>,<interval-max>,<channel-mask>,<address>,<primary-phy>,<secondary-phy>] |
| Ответ | OK |
| Ошибка | +BLECONF ERROR:<error>FAIL |
| Параметры | <instance> - номер BLE экземпляра (по-умолчанию 0)<type> - тип уведомления:0 - классический BLE (размер данных сообщения до 31 байта) 1 - расширенный BLE (размер данных сообщения до 254 байт) <interval-min> - минимальный интервал между уведомлениями (мс)<interval-max> - максимальный интервал между уведомлениями (мс)<channel-mask> - маска используемых каналов для уведомлений:bit0 - канал 37 bit1 - канал 38 bit2 - канал 39 <address> - адрес<primary-phy> - PHY каналов уведомлений:0 - Uncoded 1M 1 - Uncoded 2M 2 - Coded <secondary-phy> - PHY каналов после подключения:0 - Uncoded 1M 1 - Uncoded 2M 2 - Coded |
| Пример | AT+BLECONF=0,0,1000,2000,4,"01:02:03:04:05:06" |
Запустить BLE устройство
| Команда | |
|---|---|
| Сообщение | AT+BLESTART[=<instance>] |
| Ответ | OK |
| Ошибка | +BLESTART ERROR:<error>FAIL |
| Параметры | <instance> - номер BLE экземпляра (по-умолчанию 0) |
Остановить BLE устройство
| Команда | |
|---|---|
| Сообщение | AT+BLESTOP[=<instance>] |
| Ответ | OK |
| Ошибка | +BLESTOP ERROR:<error>FAIL |
| Параметры | <instance> - номер BLE экземпляра (по-умолчанию 0) |
Установить сырые данные в BLE маячок
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDATA=[<instance>],<data> |
| Ответ | OK |
| Ошибка | +BLEADVDATA ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<data> - данные в HEX формате |
Данная команда позволяет установить любые данные в сообщение BLE маячка. Для установки стандартных данных используйте команды:
AT+BLEADVDF,AT+BLEADVDFMSD,AT+BLEADVDFURI,AT+BLEADVDFSDU16,AT+BLEADVDFSDU32,AT+BLEADVDFSDU128.
Установить стандартные поля в сообщение BLE маячка
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDF=[<instance>],[<flags-enable>,<name-enable>,<appearance-enable>,<tx-power-enable>] |
| Ответ | OK |
| Ошибка | +BLEADVDF ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<flags-enable> - включить поле флагов (0x01)<name-enable> - включить поле названия (0x09)<appearance-enable> - включить поле типа (0x19)<tx-power-enable> - включить поле уровня мощности TX сигнала (0x0A) |
Установить поле: специфические данные производителя (0xFF)
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDFMSD=[<instance>],<data> |
| Ответ | OK |
| Ошибка | +BLEADVDFMSD ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<data> - данные в HEX формате |
Установить поле: URI ссылка (0x24)
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDFURI=[<instance>],[<uri-prefix>],<uri> |
| Ответ | OK |
| Ошибка | +BLEADVDFURI ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<uri-prefix> - префикс ссылки:1 - без префикса (значение по умолчанию) 17 - ftp: 22 - http: 23 - https: Другие значения смотрите в документации (Assigned Numbers - 2.7 URI Scheme Name String Mapping) <uri> - ссылка в текстовом формате |
| Пример | AT+BLEADVDFURI=,,"navtelecom.ru" |
Установить поле: сервисные данные - 16-битный UUID (0x16)
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDFSDU16=[<instance>],<uuid-data>,<data> |
| Ответ | OK |
| Ошибка | +BLEADVDFSDU16 ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<uuid-data> - 16-битный UUID в HEX формате (2 байта данных)<data> - данные в HEX формате |
| Пример | AT+BLEADVDFSDU16=,1001,0A0B0C0D |
Установить поле: сервисные данные - 32-битный UUID (0x20)
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDFSDU32=[<instance>],<uuid-data>,<data> |
| Ответ | OK |
| Ошибка | +BLEADVDFSDU32 ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<uuid-data> - 32-битный UUID в HEX формате (4 байта данных)<data> - данные в HEX формате |
| Пример | AT+BLEADVDFSDU32=,1001001,0A0B0C0D |
Установить поле: сервисные данные - 128-битный UUID (0x21)
| Команда | |
|---|---|
| Сообщение | AT+BLEADVDFSDU128=[<instance>],<uuid-data>,<data> |
| Ответ | OK |
| Ошибка | +BLEADVDFSDU128 ERROR:<error>FAIL |
| Параметры | <instance> - номер маячка (по-умолчанию 0)<uuid-data> - 128-битный UUID в HEX формате (16 байт данных)<data> - данные в HEX формате |
| Пример | AT+BLEADVDFSDU128=,0102030405060708090A0B0C0D0E0F10,0A0B0C0D |
Прочитать значение характеристики в режиме BLE сервера
| Команда | |
|---|---|
| Сообщение | AT+BLESRD=<handle> |
| Ответ | +BLESRD:<handle>,<data>OK |
| Ошибка | +BLESRD ERROR:<error>FAIL |
| Параметры | <handle> - идентификатор характеристики<data> - значение характеристики (данные в HEX формате) |
Записать значение характеристики в режиме BLE сервера
| Команда | |
|---|---|
| Сообщение | AT+BLESWR=<handle>,<data> |
| Ответ | OK |
| Ошибка | +BLESWR ERROR:<error>FAIL |
| Параметры | <handle> - идентификатор характеристики<data> - значение характеристики (данные в HEX формате) |
В характеристику было записано значение (в режиме сервера)
| Уведомление | |
|---|---|
| Сообщение | +BLESWRN:<handle>,<data> |
| Параметры | <handle> - идентификатор характеристики<data> - значение характеристики (данные в HEX формате) |
К устройству (в режиме сервера) подключился клиент
| Уведомление | |
|---|---|
| Сообщение | +BLESCONN |
От устойства (в режиме сервера) отключился клиент
| Уведомление | |
|---|---|
| Сообщение | +BLESDISCONN |
Для устройства (в режиме сервера) обновлено значение MTU (Maximum transmition unit)
| Уведомление | |
|---|---|
| Сообщение | +BLESMTU:<mtu-value> |
| Параметры | <mtu-value> - новое значение MTU |
Сканировать BLE устройства
| Команда | |
|---|---|
| Сообщение | AT+BLEDISC[=<filter-dublicates>,<interval>,<out-mode>] |
| Ответ | OK |
| Ошибка | +BLEDISC ERROR:<error>FAIL |
| Параметры | <filter-dublicates> - отфильтровывать одинаковые уведомления (по-умолчанию 1)<interval> - время сканирования (0 - непрерывное сканирование)<out-mode> - режим вывода уведомлений (если не указано, то не изменяется) (по умолчанию уставнолен в 1)0 - режим данных 1 - режим полей |
Остановить сканирование BLE устройств
| Команда | |
|---|---|
| Сообщение | AT+BLEDISCSTOP |
| Ответ | OK |
| Ошибка | +BLEDISCSTOP ERROR:<error>FAIL |
Добавить адреса в белый список сканирования
| Команда | |
|---|---|
| Сообщение | AT+BLEWLADD=<addr1>[,<addr2>,...] |
| Ответ | +BLEWLADD:<addrN>,<error>OK |
| Ошибка | FAIL |
| Параметры | <addr1> - адрес 1<addr2> - адрес 2... <addrN> - адрес который не удалось добавить |
Удалить адреса из белого списка сканирования
| Команда | |
|---|---|
| Сообщение | AT+BLEWLREM=<addr1>[,<addr2>,...] |
| Ответ | +BLEWLREM:<addrN>,<error>OK |
| Ошибка | FAIL |
| Параметры | <addr1> - адрес 1<addr2> - адрес 2... <addrN> - адрес который не удалось удалить |
Очистить белый список сканирования
| Команда | |
|---|---|
| Сообщение | AT+BLEWLCLR |
| Ответ | OK |
Сканинирование BLE устройств завершено
| Уведомление | |
|---|---|
| Сообщение | +BLEDISCCOMP |
Получено уведомление от BLE устройства
| Уведомление | |
|---|---|
| Сообщение | +BLEADV:<parent>,<addr>,<legacy_type>,<rssi>,(<data>)|(<field_type1>,<field-value1>,<field_type2>,<field-value2>,...) |
| Параметры | <addr-type> - тип адреса:0 - публичный 1 - рандомный <addr> - адрес устройства<legacy_type> - тип уведомления0 - доступно для подключения и сканирования 1 - направлено для конкретного устройства 2 - доступно для сканирования (недоступно для подключения) 3 - недоступно для сканирования и подключения 4 - ответ на запрос сканирования <rssi> - уровень мощности сигнала<data> - данные уведомления в HEX формате (используется в режиме данных)<field_typeN> - тип поля (используется в режиме полей)<field_valueN> - значение поля (используется в режиме полей). Формат зависит от типа поля. |
Форматы полей:
| Тип | Описание | Формат |
|---|---|---|
| 0x01 | Флаги | Беззнаковое DEC число |
| 0x08 | Неполное имя устройства | Строка |
| 0x09 | Имя устройства | Строка |
| 0x0A | TX уровень мощности | Знаковое DEC число |
| 0x17 | Публичный целевой адрес | Адрес |
| 0x18 | Рандомный целевой адрес | Адрес |
| 0x19 | Тип устройство | Беззнаковое DEC число |
| 0x1A | Интервал между уведомлениями | Беззнаковое DEC число |
| 0x1С | LE роль | Беззнаковое DEC число |
| 0x1B | Адрес устройства | Тип адреса + адрес (<addr-type>/<type>) |
| 0x24 | Ссылка (URI) | Строка |
| 0x27 | Поддерживаемые функции LE | Беззнаковое DEC число |
| ... | По умолчанию | HEX данные |
Подключить к BLE устройству
| Команда | |
|---|---|
| Сообщение | AT+BLECCONN[=<addr-type>],<addr>,[<timeout>] |
| Ответ | OK |
| Ошибка | +BLECCONN ERROR:<error>FAIL |
| Параметры | <addr-type> - тип адреса (по умолчанию 0):0 - публичный 1 - приватный <addr> - адрес<timeout> - таймаут (мс) |
Если команда успешно принята на исполнение, то должно прийти уведомление
+BLECCONNDили по истечению таймаута+BLECDISCONND.
Отключиться от BLE устройства
| Команда | |
|---|---|
| Сообщение | AT+BLECDISCONN |
| Ответ | OK |
| Ошибка | +BLECDISCONN ERROR:<error>FAIL |
Произошло подключение к BLE устройству
| Уведомление | |
|---|---|
| Сообщение | +BLECCONND |
После получения данного сообщения, автоматически запускается процесс определения сервисов BLE устройства.
Произошло отключение от BLE устройства
| Уведомление | |
|---|---|
| Сообщение | +BLECDISCONND |
Определён сервис
| Уведомление | |
|---|---|
| Сообщение | +BLEADV=[<parent-handle>],<handle>,<uuid> |
| Параметры | <parent-handle> - номер родительского сервиса (для первичных сервисов опущен)<handle> - номер<uuid> - идентификатор в HEX формате |
Определена характеристика
| Уведомление | |
|---|---|
| Сообщение | +BLEADV=<service-handle>,<handle>,<flags>,<uuid> |
| Параметры | <service-handle> - номер сервиса<handle> - номер<flags> - флаги:bit0 - широковещательная bit1 - чтение bit2 - записи без ответа bit3 - записи bit4 - нотификация (notify) bit5 - индикация (indicate) <uuid> - идентификатор в HEX формате |
Определено описание
| Уведомление | |
|---|---|
| Сообщение | +BLECDSC=<parent-handle>,<handle>,<uuid> |
| Параметры | <parent-handle> - номер характеристики<handle> - номер<uuid> - идентификатор в HEX формате |
Процесс определения сервисов завершён
| Уведомление | |
|---|---|
| Сообщение | +BLECDISCDONE |
Прочитать BLE атрибут (в режиме клиента)
| Команда | |
|---|---|
| Сообщение | AT+BLECRD=<handle> |
| Ответ | OK |
| Ошибка | +BLECRD ERROR:<error>FAIL |
| Параметры | <handle> - номер характеристики или описания |
Подписать на изменения характеристики (в режиме клиента)
| Команда | |
|---|---|
| Сообщение | AT+BLECSUBS=<handle>[,<subs-type>] |
| Ответ | OK |
| Ошибка | +BLECSUBS ERROR:<error>FAIL |
| Параметры | <handle> - номер характеристики<subs-type> - тип подписки (если опущен, то автоматичекий выбор):0 - отключить подписку 1 - нотификация/notify 2 - индикация/indicate |
Получено значение атрибута
| Уведомление | |
|---|---|
| Сообщение | +BLECRDD=<handle>,<error>,<data-index>,<data> |
| Параметры | <handle> - номер характеристики или описания<error> - ошибка, если не удалось прочитать атрибут, в противном случае данное поле опущено<data-index> - номер буфера<data> - данные в HEX формате |
Записать BLE атрибут (в режиме клиента)
| Команда | |
|---|---|
| Сообщение | AT+BLECWR=<handle>,[<write-type>],<data> |
| Ответ | OK |
| Ошибка | +BLECWR ERROR:<error>FAIL |
| Параметры | <handle> - номер характеристики или описания<write-type> - тип записи (если опустить, то автоматический выбор):0 - с уведомлением 1 - без уведомления <data> - данные в HEX формате |
Атрибута записан
| Уведомление | |
|---|---|
| Сообщение | +BLECWRN=<handle>,<error> |
| Параметры | <handle> - номер характеристики или описания<error> - ошибка, если не удалось прочитать атрибут, в противном случае данное поле опущено |
Запрос на изменение MTU (в режиме клиента)
| Команда | |
|---|---|
| Сообщение | AT+BLECMTU=<data-size> |
| Ответ | OK |
| Ошибка | +BLECMTU ERROR:<error>FAIL |
| Параметры | <data-size> - размер данных |
Напряжение питания
| Команда | |
|---|---|
| Сообщение | AT+POWER |
| Ответ | +POWER:<main-voltage>,<bat-voltage>OK |
| Параметры | <main-voltage> - напряжение питания<bat-voltage> - напряжение питания батареи |
Настройка входа
| Запрос | |
|---|---|
| Сообщение | AT+INCONF=[<index>]? |
| Ответ | +INCONF,<index>=<u-filter-coeff>,<u-hi-thr>,<u-lo-thr>,<inverse>,<debounce>,<f-filter-coeff>,<f-min>,<notify-enabled>OK |
| Ошибка | +INCONF ERROR:<error>FAIL |
| Параметры | <index> - номер входа (по умолчанию 0)<u-filter-coeff> - коэффициент фильтрации напряжения (мс)<u-hi-thr> - напряжение при котором логический вход переходит в состояние '1'<u-lo-thr> - напряжение при котором логический вход переходит в состояние '0'<inverse> - инвертировать логических вход <debounce> - время дребезга контактов для логического входа (мс)<f-filter-coeff> - коэффициент фильтрации частоты (мс)<f-min> - минимально измеряемая частота<notify-enabled> - включить уведомления о изменении логического состояния входа |
| Установка | |
|---|---|
| Сообщение | AT+INCONF=[<index>,<u-filter-coeff>,<u-hi-thr>,<u-lo-thr>,<inverse>,<debounce>,<f-filter-coeff>,<f-min>,<notify-enabled>] |
| Ответ | OK |
| Ошибка | +INCONF ERROR:<error>FAIL |
| Параметры | см. выше |
Значение на входе
| Команда | |
|---|---|
| Сообщение | AT+IN[=<index>] |
| Ответ | +IN:<index>,<discrete>,<voltage>,<counter>,<frequence>OK |
| Ошибка | +IN ERROR:<error>FAIL |
| Параметры | <index> - номер хода (по умолчанию 0)<discrete> - логическое значение входа<voltage> - напряжение на входе<counter> - значение счётчка (количество переходов их логического '0' в логическую '1')<frequence> - частота на входе |
На входе изменилось логическое значени
| Уведомление | |
|---|---|
| Сообщение | +DISC=<index>,<discrete>,<voltage> |
| Параметры | <index> - номер хода<discrete> - логическое значение<voltage> - напряжение на входе |
Значение на выходе
| Запрос | |
|---|---|
| Сообщение | AT+OUT[=<index>]? |
| Ответ | +OUT,<index>=<discrete>OK |
| Ошибка | +OUT ERROR:<error>FAIL |
| Параметры | <index> - номер выхода (по умолчанию 0)<discrete> - значение на выходе (0 или 1) |
| Установка | |
|---|---|
| Сообщение | AT+OUT=[<index>],<discrete>] |
| Ответ | OK |
| Ошибка | +OUT ERROR:<error>FAIL |
| Параметры | <index> - номер выхода (по умолчанию 0)<discrete> - значение на выходе (0 или 1) |
| Значение | Описание |
|---|---|
-1 |
Общая ошибка |
1 |
Недостаточно памяти |
2 |
Истекло время ожидания операции (таймаут) |
3 |
Недопустимый адрес |
4 |
Недопустимый аргумент |
5 |
Неправильные данные |
6 |
Недопустимое состояние |
7 |
Недопустимый размер |
8 |
Получен некорректный ответ |
9 |
Неверный идентификатор ресурса |
10 |
Неверная CRC или контрольная сумма |
11 |
Некорректная версия |
12 |
Недопустимый MAC-адрес |
13 |
Запрашиваемый ресурс не найден |
14 |
Операция или функция не поддерживается |
15 |
Операция не завершена полностью |
16 |
Операция не разрешена |
17 |
Операция уже исполняется |
18 |
Операция уже выполнена |
19 |
Операция не выполнена, попробуйте повторить позже |
20 |
Соединение отсутствует |
21 |
Ресурс занят |
22 |
Чтение запрещено |
23 |
Запись запрещена |
24 |
Прикладная ошибка |
25 |
Системная ошибка |
26 |
Неизвестная ошибка |
27 |
Ошибка аутентификации |
28 |
Ошибка авторизации |
29 |
Ошибка синхронизации |
30 |
Криптографическая ошибка |
41 |
Wi-Fi не был инициализирован |
42 |
Wi-Fi не был запущен |
43 |
Wi-Fi не был остановлен |
44 |
Ошибка Wi-Fi |
45 |
Ошибка режима Wi-Fi |
46 |
Ошибка внутреннего состояния Wi-Fi |
47 |
Ошибка внутреннего блока управления станции или точки доступа |
48 |
Ошибка внутреннего модуля NVS Wi-Fi |
49 |
Недопустимый MAC-адрес |
50 |
Недопустимый SSID |
51 |
Недопустимый пароль |
52 |
Ошибка таймаута |
53 |
Wi-Fi в режиме сна (RF выключен), и пробуждение не удалось |
54 |
Вызывающий поток был бы заблокирован |
55 |
Станция все еще в состоянии отключения |
58 |
Не удалось отправить событие в задачу Wi-Fi |
59 |
Недопустимое состояние Wi-Fi |
60 |
Возвращается, когда Wi-Fi останавливается |
61 |
Wi-Fi соединение не ассоциировано |
62 |
Передача Wi-Fi запрещена |
63 |
Нет доступного ID потока |
64 |
Таймаут приема ответа на настройку TWT |
65 |
Ошибка отправки кадра настройки TWT |
66 |
Запрос настройки TWT отклонен точкой доступа |
67 |
Кадр отброшен |
68 |
Операция сканирования в процессе выполнения |
70 |
BLE: InvalidPdu |
71 |
BLE: InsufficientAuthen |
72 |
BLE: ReqNotSupported |
73 |
BLE: InvalidOffset |
74 |
BLE: InsufficientAuthor |
75 |
BLE: PrepareQueueFull |
76 |
BLE: AttrNotFound |
77 |
BLE: AttrNotLong |
78 |
BLE: InsufficientKeySize |
79 |
BLE: InvalidAttrValueSize |
80 |
BLE: Unlikely |
81 |
BLE: InsufficientEnc |
82 |
BLE: UnsupportedGroup |
83 |
BLE: InsufficientRes |
84 |
BLE: DbOutOfSync |
| Значение | Описание |
|---|---|
0 |
open |
1 |
WEP |
2 |
WPA_PSK |
3 |
WPA2_PSK |
4 |
WPA_WPA2_PSK |
5 |
Wi-Fi EAP security |
6 |
Wi-Fi EAP security |
7 |
WPA3_PSK |
8 |
WPA2_WPA3_PSK |
9 |
WAPI_PSK |
10 |
OWE |
11 |
WPA3_ENT_SUITE_B_192_BIT |
12 |
WIFI_AUTH_WPA3_PSK |
13 |
WIFI_AUTH_WPA3_PSK |
14 |
DPP |
15 |
WPA3-Enterprise Only |
16 |
WPA3-Enterprise Transition |
| Значение | Описание |
|---|---|
0 |
не используется |
1 |
WEP40 |
2 |
WEP104 |
3 |
TKIP |
4 |
CCMP |
5 |
TKIP and CCMP |
6 |
AES-CMAC-128 |
7 |
SMS4 |
8 |
GCMP |
9 |
GCMP-256 |
10 |
AES-GMAC-128 |
11 |
AES-GMAC-256 |
| Значение | Описание |
|---|---|
1 |
Неизвестна |
2 |
Истек срок аутентификации |
3 |
Деаутентификация из-за выхода из сети |
4 |
Разрыв связи из-за неактивности |
5 |
Слишком много подключенных станций |
6 |
Получен кадр класса 2 от неаутентифицированной STA |
7 |
Получен кадр класса 3 от непривязанной STA |
8 |
Разрыв связи из-за выхода из сети |
9 |
Ассоциация без аутентификации |
10 |
Разрыв связи из-за низкой мощности |
11 |
Разрыв связи из-за неподдерживаемого канала |
12 |
Разрыв связи из-за перехода BSS |
13 |
Некорректный информационный элемент (IE) |
14 |
Ошибка проверки MIC |
15 |
Таймаут 4-этапного рукопожатия |
16 |
Таймаут обновления группового ключа |
17 |
Различие IE в 4-этапном рукопожатии |
18 |
Недопустимый групповой шифр |
19 |
Недопустимый парный шифр |
20 |
Недопустимый AKMP |
21 |
Неподдерживаемая версия RSN IE |
22 |
Некорректные возможности RSN IE |
23 |
Ошибка аутентификации 802.1X |
24 |
Отклоненный набор шифров |
25 |
TDLS-узел недоступен |
26 |
Неуказанная ошибка TDLS |
27 |
SSP запросил разрыв связи |
28 |
Отсутствует соглашение о роуминге SSP |
29 |
Плохой шифр или AKM |
30 |
Нет авторизации в этом местоположении |
31 |
Изменение сервиса исключает TS |
32 |
Неуказанная причина QoS |
33 |
Недостаточно пропускной способности |
34 |
Отсутствуют подтверждения (ACK) |
35 |
Превышен TXOP |
36 |
Станция покидает сеть |
37 |
Конец блочного подтверждения (BA) |
38 |
Неизвестное блочное подтверждение (BA) |
39 |
Таймаут |
46 |
Разрыв связи инициирован узлом |
47 |
Разрыв связи инициирован точкой доступа |
48 |
Некорректное количество FT-кадров |
49 |
Некорректный PMKID |
50 |
Некорректный MDE |
51 |
Некорректный FTE |
67 |
Ошибка установки линии передачи |
68 |
Альтернативный канал занят |
200 |
Таймаут маячковых сигналов (Beacon) |
201 |
Точка доступа не найдена |
202 |
Ошибка аутентификации |
203 |
Ошибка ассоциации |
204 |
Таймаут рукопожатия |
205 |
Ошибка подключения |
206 |
Сброс TSF точки доступа |
207 |
Роуминг |
208 |
Слишком долгое время возврата ассоциации |
209 |
Таймаут запроса SA |
210 |
Не найдена точка доступа с совместимой защитой |
211 |
Не найдена точка доступа в пределах порога аутентификации |
212 |
Не найдена точка доступа в пределах порога RSSI |