-
Здравствуйте!
Есть набор «Интернет вещей» от Амперки (дополнение для Матрешки). При работе с первым экспериментом (изучение WiFi-модуля) сервер корректно поднимается командой AT+CIPSERVER=1,80 но не отключается указанной в буклете командой AT+CIPSERVER=0,80. Как решить эту проблему?
Заранее спасибо за помощь! -
Похоже, никому не интересно разобраться, почему в заводской прошивке модуля находятся ошибки. Очень жаль. Спасибо за помощь!
-
Arduino_man нравится это.
-
Интересно, почему модуль поставляется с бракованной прошивкой?
Не подскажете, как перепрошить модуль? -
Я не уверен что прошивка «бракованная».
На тему перепрошивки есть у Амперки инструкция где-то, поищите. Точно есть.
Arduino_man нравится это.
-
А мне так очень кажется. Либо заводская прошивка бракованная, либо в «Продолжении конспекта хакера» ошибка. Может быть, сервер отключается командой AT+CIPSERVER=2,80, но вряд ли. Я склоняюсь к плохой прошивке.
В любом случае буду перепрошивать модуль, т.к. уже программировал его. -
Я так понимаю, что AT+CIPMUX=1 перед запуском сервера сделана? Попробуйте после посылки AT+CIPSERVER=0,80 послать AT+CIPMUX=0
-
Нет. Делал строго по инструкции. Позже попробую. Похоже, проблемы с заводской прошивкой не только у меня.
-
Вы ее уже перешили на последнюю? Чего воздух то вибрировать?
-
Уже пару лет юзаю ESP с заводской прошивкой AT 0.40 — нет проблем.
-
Нет. Работаю с программированием модуля. Прошивку сменю.
Hello,
have problem with ESP8266 HTTP server. I’m pretty sure that this is a firmware problem. using ESP8266 NONOS SDK
HTTP Server is configured this way:
AT+CIPSERVER=1,80
Between ESP8266 and Internet is a Router. Router is configured to listen at Port 5001 and move all requests to Port 80 at the ESP.
http://my domain:5001
In this case a local connect to ESP with FireFox show the expected Web Page but via router only the HTML source is shown. FireFox message:
«The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature.»
If router is configured to use Port 80 instead of Port 5001 than it works. But router is not the problem.
AT+CIPSERVER=1,5001
do also not work for local/direct connection. Same problem. HTML code is shown.
MS IE works. Nevertheless I use Apache 2.0 and IIS here as reference. Everything works fine if doing same with Apache or IIS. That’s why it is most likely that there is a bug in the firmware.
regards
Gerald
In my opinion this is just a bug in the firmware. Your software developers should be able to reproduce ist.
Code: Select all
AT+CWMODE?
+CWMODE:3
OK
AT+CWJAP_CUR="KULKARNI","rathana47"
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"5e:cf:7f:36:d1:a1"
+CIFSR:STAIP,"192.168.1.9"
+CIFSR:STAMAC,"5c:cf:7f:36:d1:a1"
OK AT+CIPMUX=1
OK
AT+CIPSERVER=1,80
OK
0,CONNECT
+IPD,0,383:GET / HTTP/1.1
Host: 192.168.1.9
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6
1,CONNECT
2,CONNECT
1,CLOSED
2,CLOSED
AT+CIPSEND=0,5
OK
>
busy s...
Recv 5 bytes
SEND OK
AT+CIPCLOSE=0
0,CLOSED
OK
0,CONNECT
+IPD,0,348:GET /favicon.ico HTTP/1.1
Host: 192.168.1.9
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: image/webp,image/*,*/*;q=0.8
Referer: http://192.168.1.9/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6
1,CONNECT
2,CONNECT
+IPD,1,409:GET / HTTP/1.1
Host: 192.168.1.9
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Linux; Android 5.0.2; XT1068 Build/LXB22.46-28) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6
1,CLOSED
2,CLOSED
1,CONNECT
+IPD,1, 409:GET / HTTP/1.1
Host: 192.168.1.9
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6
0,CLOSED
AT+CIPSEND=0,6
[b]link is not valid[/b]
ERROR
AT+CIPSERVER=1,80
ERROR
AT+CIPCLOSE=0
UNLINK
ERROR
1,CLOSED
AT+CIPSERVER=1,80
no change
OK
AT+CIPSEND=0,6
link is not valid
ERROR
AT+CIPCLOSE=0
UNLINK
ERROR
this is what happened when i first started this but even after AT+RESTORE and AT+RST
same thing happens when i send AT+CIPSEND=0,5
why is it showing link is not valid?
is any good tutorial are there please send the link
- Радиоэлектроника
- Цифровая электроника
- Отладочные комплекты
- ESP8266
Добавлено 15 июня 2018 в 18:36
ESP8266 в своей конфигурации по умолчанию загружается в режим последовательного модема. В этом режиме вы можете общаться с ним с помощью набора AT-команд. AT-команды ESP8266 можно разделить на три категории: базовые, уровень Wi-Fi и уровень TCP/IP. Ниже приведен список всех AT команд уровня TCP/IP, поддерживаемых ESP8266, с объяснением, что они делают, и как их использовать.
Варианты команд
Каждая команда имеет до 4 вариантов, изменяющих ее назначение. Вы можете выбирать между ними, добавляя одно из четырех возможных значений в конце основной команды. Эти четыре дополнения могут иметь следующие значения: ""
, =<parameter|[parameters]>
, "?"
, =?
.
Тип | Формат команды | Описание |
---|---|---|
Тест | AT+<x>=? |
Запрос внутренних параметров и диапазона их значений для заданной команды. |
Запрос | AT+<x>? |
Возвращает текущее значение параметра. |
Установка | AT+<x>=<…> |
Установка параметров, заданных в команде пользователем, и запуск этой команды. |
Выполнение | AT+<x> |
Запуск команды без заданных пользователем параметров. |
Примечание:
- не все команды поддерживают все 4 варианта;
- квадратные скобки
[]
обозначают значение по умолчанию; оно либо не требуется, либо может не отображаться; - строковые значения необходимо заключать в двойные кавычки, например,
AT+CWSAP="ESP756290","21030826", 1,4
; - скорость передачи данных по умолчанию равна 115200;
- AT команды должны печататься заглавными буквами и оканчиваться новой строкой (
CR LF
).
AT команды уровня TCP/IP
Список команд
Команда | Описание |
---|---|
AT+CIPSTATUS |
Получить статус соединения |
AT+CIPDOMAIN |
Работа DNS |
AT+CIPSTART |
Установить TCP соединение, UDP передачу или SSL соединение |
AT+CIPSSLSIZE |
Установить размер буфера SSL |
AT+CIPSEND |
Отправить данные |
AT+CIPSENDEX |
Отправить данные, когда длина данных равна <length> , или когда в данных появится |
AT+CIPSENDBUF |
Записать данные в TCP буфер отправки |
AT+CIPBUFRESET |
Сбросить счетчик ID сегментов |
AT+CIPBUFSTATUS |
Проверить состояние TCP буфера отправки |
AT+CIPCHECKSEQ |
Проверить, отправлен ли конкретный сегмент или нет |
AT+CIPCLOSE |
Закрыть TCP/UDP/SSL соединение |
AT+CIFSR |
Получить локальный IP адрес |
AT+CIPMUX |
Настроить режим нескольких соединений |
AT+CIPSERVER |
Удалить/создать TCP сервер |
AT+CIPSERVERMAXCONN |
Установить максимальное количество соединений, допускаемое сервером |
AT+CIPMODE |
Настроить режим передачи |
AT+SAVETRANSLINK |
Сохранить линк прозрачной передачи во флеш-памяти |
AT+CIPSTO |
Установить время ожидания, когда ESP8266 запущен как TCP сервер |
AT+PING |
Отправить ping пакеты |
AT+CIUPDATE |
Обновить программное обеспечение через сеть |
AT+CIPDINFO |
Показывать удаленный IP адрес и удаленный порт с +IPD |
AT+CIPSNTPCFG |
Настроить временную зону и SNTP сервер |
AT+CIPSNTPTIME |
Запросить время SNTP |
AT+CIPDNS_CUR |
Установить определенные пользователем DNS серверы; конфигурация не сохраняется во флеш-памяти |
AT+CIPDNS_DEF |
Установить определенные пользователем DNS серверы; конфигурация сохраняется во флеш-памяти |
AT команды
AT+CIPSTATUS
– получить состояние соединения-
Команда выполнения AT+CIPSTATUS
Отклик STATUS:<stat>
+CIPSTATUS:<link ID>,<type>,<remote IP>,<remote port>,<local port>,<tetypeПараметры <stat>
– состояние интерфейса станции ESP8266:- 2 – станция ESP8266 подключена к точке доступа, и ей предоставлен IP адрес;
- 3 – у станции ESP8266 есть созданное TCP или UDP соединение;
- 4 – TCP или UDP передача станции ESP8266 отключено;
- 5 – станция ESP8266 НУ подключена к точке доступа;
<link ID>
– ID соединения (0–4), используется при нескольких соединениях;<type>
– строковый параметр, «TCP» или «UDP«;<remote IP>
– строковый параметр, указывающий удаленный IP адрес;<remote port>
– номер удаленного порта;<local port>
– номер локального порта ESP8266;<tetype>
:- 0 – ESP8266 запущен как клиент;
- 1 – ESP8266 запущен как сервер.
AT++CIPDOMAIN
– работа DNS-
Команда выполнения AT+CIPDOMAIN=<domain name>
Отклик +CIPDOMAIN:<IP address>
OKили
DNS Fail
ERRORПараметр <domain name>
– имя домена, длина должна быть меньше 64 байтов.Пример AT+CWMODE=1
// установить режим станцииAT+CWJAP="SSID","password"
// доступ в интернетAT+CIPDOMAIN="iot.espressif.cn"
// работа DNS AT+CIPSTART
– установить TCP соединение, UDP передачу или SSL соединение-
Установление TCP соединения
Команда установки Одиночное TCP соединение ( AT+CIPMUX=0
):AT+CIPSTART=<type>,<remote IP>,<remote port>[,<TCP keep alive>]
Несколько TCP соединений ( AT+CIPMUX=1
):AT+CIPSTART=<link ID>,<type>,<remote IP>,<remote port>[,<TCP keep alive>]
Отклик OK или
ERROR
Если TCP соединение уже установлено, то отклик будет:
ALREADY CONNECTED
Параметры <link ID>
– ID сетевого соединения (0–4), используется при нескольких соединениях;<type>
– строковый параметр, указывающий тип соединения: «TCP», «UDP» или «SSL»;<remote IP>
– строковый параметр, указывающий удаленный IP адрес;<remote port>
– номер удаленного порта;[<TCP keep alive>]
– временной интервал обнаружения, когда TCP соединение сохраняется; по умолчанию эта функция выключена:- 0 – выключить сохранение TCP соединения;
- 1–7200 – временной интервал обнаружения; единица; секунда.
Примеры AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="TCP","192.168.101.110",1000
Установление UDP передачи
Команда установки Одиночное TCP соединение ( AT+CIPMUX=0
):AT+CIPSTART=<type>,<remote IP>,<remote port>[,(<UDP local port>),(<UDP mode>)]
Несколько TCP соединений ( AT+CIPMUX=1
):AT+CIPSTART=<link ID>,<type>,<remote IP>,<remote port>[,(<UDP local port>),(<UDP mode>)]
Отклик OK или
ERROR
Если UDP передача уже установлена, то отклик будет:
ALREADY CONNECTED
Параметры <link ID>
– ID сетевого соединения (0–4), используется при нескольких соединениях;<type>
– строковый параметр, указывающий тип соединения: «TCP», «UDP» или «SSL»;<remote IP>
– строковый параметр, указывающий удаленный IP адрес;<remote port>
– номер удаленного порта;[<UDP local port>]
– необязательный параметр; UDP порт ESP8266;[<UDP mode>]
– необязательный параметр; в режиме прозрачной UDP передачи, значение данного параметра должно быть 0.- 0 – одноранговый узел назначения UDP не изменяется; это значение по умолчанию;
- 0 – одноранговый узел назначения UDP может быть изменен один раз;
- 0 – одноранговый узел назначения UDP доступен для изменения.
Внимание:
Чтобы использовать<UDP mode>
, сперва необходимо указать<UDP local port>
.Пример AT+CIPSTART="UDP","192.168.101.110",1000,1002,2
Установление SSL соединения
Команда установки AT+CIPSTART=<link ID>[,<type>],<remote IP>,<remote port>[,<TCP keep alive>]
Отклик OK или
ERROR
Если TCP соединение уже установлено, то отклик будет:
ALREADY CONNECTED
Параметры <link ID>
– ID сетевого соединения (0–4), используется при нескольких соединениях;<type>
– строковый параметр, указывающий тип соединения: «TCP», «UDP» или «SSL»;<remote IP>
– строковый параметр, указывающий удаленный IP адрес;<remote port>
– номер удаленного порта;[<TCP keep alive>]
– временной интервал обнаружения, когда TCP соединение сохраняется; по умолчанию эта функция выключена:- 0 – выключить сохранение TCP соединения;
- 1–7200 – временной интервал обнаружения; единица; секунда.
Примечания - ESP8266 может устанавливать максимум одно SSL соединение.
- SSL соединение не поддерживает режим сквозной передачи UART-WiFi (прозрачную передачу).
- SSL соединение требует большого объема памяти; иначе оно может вызвать перезагрузку системы. Для увеличения размера буфера SSL может использоваться команда
AT+CIPSSLSIZE=<size>
.
Пример AT+CIPSTART="SSL","iot.espressif.cn",8443
AT+CIPSSLSIZE
– установить размер буфера SSL-
Команда установки AT+CIPSSLSIZE=<size>
Отклик OK Параметры <size>
– размер буфера SSL; диапазон значений: [2048, 4096].Пример AT+CIPSSLSIZE=4096
AT+CIPSEND
– отправить данные-
Команда Команда установки: - Одно соединение (
+CIPMUX=0
):AT+CIPSEND=<length>
- Несколько соединений (
+CIPMUX=1
):AT+CIPSEND=<link ID>,<length>
- Во время UDP передачи могут быть установлены удаленный IP адрес и порт:
AT+CIPSEND=[<link ID>,]<length>[,<remote IP>,<remote port>]
Назначение: настройка длина данных в нормальном режиме передачи.
Команда выполнения: AT+CIPSEND
Назначение: начать отправку данных в режиме прозрачной передачиОтклик Отправка данных указанной длины. Возвращает символ > после команды установки. Начинает прием данных с последовательного порта. Когда длина данных доходит до значения
<length>
, начинается передача данных.Если соединение не может быть установлено или происходит разрыв во время передачи данных, система возвращает:
ERROR
Если данные были переданы успешно, система возвращает:
SEND OK
В случае неудачи система возвращает:
SEND FAIL
Возвращает символ > после выполнения данной команды. Входит в режим прозрачной передачи с 20-миллисекундным интервалом между пакетами и максимальной длиной пакета 2048 байт.
Когда принимается пакет, содержащий +++, ESP8266 возвращается в нормальный командный режим. Пожалуйста, подождите минимум одну секунду перед отправкой следующей команды.
Данная команда может использоваться только в режиме прозрачной передачи, который требует одиночного соединения.
Для прозрачной UDP передачи при использовании
AT+CIPSTART
значение<UDP mode>
должно быть 0.Параметры <link ID>
– ID сетевого соединения (0–4), используется при нескольких соединениях;<length>
– длина данных; максимум 2048 байтов;[<remote IP>]
– удаленный IP адрес, который может быть установлен для UDP передачи;[<remote port>]
– удаленный порт, который может быть установлен для UDP передачи.
– - Одно соединение (
AT+CIPSENDEX
– отправить данные-
Команда установки - Одно соединение (
+CIPMUX=0
):AT+CIPSENDEX=<length>
- Несколько соединений (
+CIPMUX=1
):AT+CIPSENDEX=<link ID>,<length>
- Во время UDP передачи могут быть установлены удаленный IP адрес и порт:
AT+CIPSENDEX=[<link ID>,]<length>[,<remote IP>,<remote port>]
Назначение: настроить длину данных для режима нормальной передачи.
Отклик Отправка данных указанной длины. Возвращает символ > после команды установки. Начинает прием данных с последовательного порта. Когда длина данных доходит до значения
<length>
, или в данных появляется , начинается передача данных.Если соединение не может быть установлено или происходит разрыв во время передачи данных, система возвращает:
ERROR
Если данные были переданы успешно, система возвращает:
SEND OK
В случае неудачи система возвращает:
SEND FAIL
Параметры <link ID>
– ID сетевого соединения (0–4), используется при нескольких соединениях;<length>
– длина данных; максимум 2048 байтов;[<remote IP>]
– удаленный IP адрес, который может быть установлен для UDP передачи;[<remote port>]
– удаленный порт, который может быть установлен для UDP передачи;- чтобы передать , используйте его как \0.
- Одно соединение (
AT+CIPSENDBUF
– записать данные в TCP буфер отправки-
Команда установки - Одиночное соединение (
+CIPMUX=0
):AT+CIPSENDBUF=<length>
- Несколько соединений (
+CIPMUX=1
):AT+CIPSENDBUF=<link ID>,<length>
Отклик <ID текущего сегмента>,<ID сегмента, который был отправлен успешно>
OK
>- Возвращает символ > и начинает прием данных с последовательного порта. Когда длина данных доходит до значения
<length>
, данные отправляются; если длина данных превышает значение<length>
, данные отбрасываются и команда возвращает
busy - Если соединение не может быть установлено, или если это не TCP соединение, или буфер полон, или в случае возникновения каких-либо других ошибок, команда возвращает:
ERROR - Если данные переданы успешно,
- для одиночного соединения отклик будет таким:
<segment ID>,SEND OK - для нескольких соединений отклик будет таким:
<link ID>,<segment ID>,SEND OK
- для одиночного соединения отклик будет таким:
- В случае неудачи система вернет:
SEND FAIL
Параметры <link ID>
– ID соединения (0–4), используется при нескольких соединениях<segment ID>
– uint32; ID, назначаемый каждому пакету данных, начиная с 1; номер ID увеличивается на 1 каждый раз, когда пакет данных записывается в буфер;<length>
– длина данных; максимум 2048 байтов.
Примечания - Данная команда только записывает данные в TCP буфер отправки, поэтому она может вызываться постоянно, и пользователю нет необходимости ждать SEND OK; если TCP сегмент отправлен успешно, она вернет <segment ID>,SEND OK.
- До того момента, когда длина данных достигнет значения
<length>
, ввод +++ может переключить обратно в режим команд, и принятые ранее данные будут отброшены. - Данная команда НЕ может использоваться в SSL соединениях.
- Одиночное соединение (
AT+CIPBUFRESET
– сбросить счетчик ID сегментов-
Команда установки - Одиночное соединение (
+CIPMUX=0
):AT+CIPBUFRESET
- Несколько соединений (
+CIPMUX=1
):AT+CIPBUFRESET=<link ID>
Отклик OK Если соединение не установлено, или еще есть данные, ожидающие отправки, отклик будет следующим:
ERROR
Параметры <link ID>
– ID соединения (0–4), используется при нескольких соединениях.Примечание Данная команда может использоваться, только когда используется AT+CIPSENDBUF
. - Одиночное соединение (
AT+CIPBUFSTATUS
– проверить состояние TCP буфера отправки-
Команда установки - Одиночное соединение (
+CIPMUX=0
):AT+CIPBUFSTATUS
- Несколько соединений (
+CIPMUX=1
):AT+CIPBUFSTATUS=<link ID>
Отклик <next segment ID>,<segment ID sent>,<segment ID successfully sent>,<remain buffer
size>,<queue number>
OKПараметры <next segment ID>
– следующий ID сегмента, предоставляемыйAT+CIPSENDBUF
;<segment ID sent>
– ID последнего отправленного TCP сегмента;- вызвать
AT+CIPBUFRESET
, чтобы сбросить счетчик, можно, только когда<next segment ID> – <segment ID sent> = 1
; <segment ID successfully sent>
– ID последнего успешно отправленного TCP сегмента;<remain buffer size>
– оставшийся размер TCP буфера отправки;<queue number>
– доступный размер TCP очереди; это значение не является надежным и может использоваться только для справки.
Примечания Данная команда не может использоваться для SSL соединений. Пример Например, при одиночном соединении, команда AT+CIPBUFSTATUS
вернула:20,15,10,200,7
Описание:- 20 – означает, что ID последнего сегмента был равен 19; поэтому при следующем вызове
AT+CIPSENDBUF
будет возвращен ID сегмента, равный 20; - 15 – означает, что TCP сегмент с ID 15 был отправлен последним, но отправка этого сегмента может быть неудачной;
- 10 – означает, что TCP сегмент с ID 10 был отправлен успешно;
- 200 – означает, что оставшийся размер TCP буфера отправки равен 200 байтов;
- 7 – доступный размер TCP очереди; этот параметр ненадежен и может использоваться только для справки; когда размер очереди равен 0, то для отправки нет TCP данных.
- Одиночное соединение (
AT+CIPCHECKSEQ
– проверить, был ли конкретный сегмент отправлен успешно-
Команда установки - Одиночное соединение (
+CIPMUX=0
):AT+CIPCHECKSEQ=<segment ID>
- Несколько соединений (
+CIPMUX=1
):AT+CIPCHECKSEQ=<link ID>,<segment ID>
Отклик [<link ID>,]<segment ID>,<status>
OKПараметры - Данная команда может использоваться только для получения статуса максимум последних 32 сегментов.
[<link ID>]
– ID соединения (0–4), используется при нескольких соединениях;<segment ID>
– ID сегмента, предоставленный при вызове AT+CIPSENDBUF;<status>
:FALSE
– отправка сегмента неудачна;TRUE
– сегмент был отправлен успешно.
Примечания Данная команда может использоваться, только когда используется AT+CIPSENDBUF
. - Одиночное соединение (
AT+CIPCLOSE
– закрыть TCP/UDP/SSL соединение-
Команда Команда установки (используется при нескольких соединениях): AT+CIPCLOSE=<link ID>
Назначение: закрывает TCP/UDP соединения.Команда выполнения (используется при нескольких соединениях): AT+CIPCLOSE
Отклик OK Параметры <link ID>
– ID соединения, которое необходимо закрыть. Когда ID равен 5, будут закрыты все соединения. (В режиме сервера ID 5 не действует.) AT+CIFSR
– получить локальный IP адрес-
Команда выполнения AT+CIFSR
Отклик +CIFSR:APIP,<SoftAP IP address>
+CIFSR:APMAC,<SoftAP MAC address>
+CIFSR:STAIP,<Station IP address>
+CIFSR:STAMAC,<Station MAC address>
OKПараметры <SoftAP IP address>
– IP адрес точки доступа SoftAP ESP8266;<SoftAP MAC address>
– MAC адрес точки доступа SoftAP ESP8266;<Station IP address>
– IP адрес станции ESP8266;<Station MAC address>
– MAC адрес станции ESP8266;
Примечание IP адрес станции может быть запрошен, только когда станция ESP8266 подключена к точке доступа. AT+CIPMUX
– включить или выключить множественные соединения-
Команда Команда запроса: AT+CIPMUX?
Команда установки: AT+CIPMUX=<mode>
Назначение: установить тип соединений.Отклик +CIPMUX:<mode>
OKOK Параметры <mode>
:- 0 – одно соединение;
- 1 – несколько соединений.
Примечания - Режим по умолчанию – это режим одного соединения.
- Несколько соединений может быть включено, только когда прозрачная передача выключена (
AT+CIPMODE=0
). - Этот режим может быть изменен, только когда все соединения отключены.
- Если запущен TCP сервер, то перед активацией режима одного соединения он должен быть удален (
AT+CIPSERVER=0
).
Пример AT+CIPMUX=1
AT+CIPSERVER
– удалить/создать TCP сервер-
Команда установки AT+CIPSERVER=<mode>[,<port>]
Отклик OK Параметры <mode>
:- 0 – удалить сервер
- 1 – создать сервер
[<port>]
– номер порта; по умолчанию 333.
Примечания - TCP сервер может быть создан, только когда активирован режим нескольких соединений (
AT+CIPMUX=1
). - При создании TCP сервера автоматически создается монитор сервера.
- Когда клиент подключается к серверу, он забирает одно соединение и ему назначается ID.
Пример AT+CIPMUX=1
AT+CIPSERVER=1,1001
AT+CIPSERVERMAXCONN
– установить максимальное количество соединений, допускаемое сервером-
Команда Команда запроса: AT+CIPSERVERMAXCONN?
Назначение: предоставить максимальное количество клиентов, которые могут быть подключены к TCP или SSL серверу.Команда установки: AT+CIPSERVERMAXCONN=<num>
Назначение: устанавливает максимальное количество клиентов, которые могут быть подключены к TCP или SSL серверу.Отклик +CIPSERVERMAXCONN:<num>
OKOK Параметры <num>
– максимальное количество клиентов, которые могут быть подключены к TCP или SSL серверу; диапазон [1, 5].Примечания Чтобы выставить эту настройку, вы должны вызвать AT+CIPSERVERMAXCONN=<num>
до создания сервера.Пример AT+CIPMUX=1
AT+CIPSERVERMAXCONN=2
AT+CIPSERVER=1,80
AT+CIPMODE
– установить режим передачи-
Команда выполнения Команда запроса: AT+CIPMODE?
Назначение: предоставить информацию о режиме передачи.Команда установки: AT+CIPMODE=<mode>
Назначение: установить режим передачи.Отклик +CIPMODE:<mode>
OKOK Параметры <mode>
:- 0 – нормальный режим передачи;
- 1 – режим сквозной передачи UART-WiFi (прозрачная передача), который может быть включен только в режиме одного TCP соединения или в UDP режиме, когда удаленный IP адрес и порт не изменяются.
Примечания - Изменения конфигурации не сохраняются во флеш-памяти.
- Если во время сквозной передачи UART-WiFi TCP соединение разрывается, ESP8266 попытается восстановить соединение, пока ввод +++ не выйдет из передачи. Если TCP соединение разрывается в режиме нормальной TCP передачи, ESP8266 выдаст подсказку и не будет пытаться восстановить соединение.
Пример AT+CIPMODE=1
AT+SAVETRANSLINK
– сохранить линк прозрачной передачи во флеш-памяти-
Сохранить одно TSP соединение во флеш-памяти
Команда установки AT+SAVETRANSLINK=<mode>,<remote IP or domain name>,<remote port>[,<type>,<TCP keep alive>]
Отклик OK Параметры <mode>
:- 0 – ESP8266 НЕ войдет в режим сквозной передачи UART-WiFi при включении питания;
- 1 – ESP8266 войдет в режим сквозной передачи UART-WiFi при включении питания;
<remote IP or domain name>
– удаленный IP адрес или доменное имя;<remote port>
– удаленный порт;[<type>]
– необязательный параметр; TCP или UDP, по умолчанию TCP;[<TCP keep alive>]
– временной интервал обнаружения, когда TCP соединение сохраняется; по умолчанию эта функция выключена:- 0 – выключить сохранение TCP соединения;
- 1–7200 – временной интервал обнаружения; единица; секунда.
Примечания - Данная команда сохранит во флеш-памяти режим сквозной передачи UART-WiFi и его линк. ESP8266 будет входить в режим сквозной передачи UART-WiFi при любых последующих включениях.
- Конфигурация будет сохранена во флеш-памяти, если удаленный IP адрес (или доменное имя) будет корректен.
Пример AT+SAVETRANSLINK=1,"192.168.6.110",1002,"TCP"
Сохранить UDP передачу во флеш-памяти
Команда установки AT+SAVETRANSLINK=<mode>,<remote IP>,<remote port>,<type>[,<UDP local port>]
Отклик OK Параметры <mode>
:- 0 – ESP8266 НЕ войдет в режим сквозной передачи UART-WiFi при включении питания;
- 1 – ESP8266 войдет в режим сквозной передачи UART-WiFi при включении питания;
<remote IP>
– удаленный IP адрес или доменное имя;<remote port>
– удаленный порт;<type>
– TCP или UDP, по умолчанию TCP;[<UDP local port>]
– необязательный параметр; локальный порт UDP передачи, включаемый при включении модуля.
Примечания - Данная команда сохранит во флеш-памяти режим сквозной передачи UART-WiFi и его линк. ESP8266 будет входить в режим сквозной передачи UART-WiFi при любых последующих включениях.
- Конфигурация будет сохранена во флеш-памяти, если удаленный IP адрес (или доменное имя) будет корректен.
Пример AT+SAVETRANSLINK=1,"192.168.6.110",1002,"UDP",1005
AT+CIPSTO
– установить время ожидания TCP сервера-
Команда Команда запроса: AT+CIPSTO?
Назанчение: проверить время ожидания TCP сервера.Команда установки: AT+CIPSTO=<time>
Назначение: установить время ожидания TCP сервера.Отклик +CIPSTO:<time>
OKOK Параметры <time>
– время ожидания TCP сервера в диапазоне 0–7200 секунд.Примечания - ESP8266, настроенный как TCP сервер, отключится от TCP клиента, который не связывается с ним в течение времени ожидания.
- Если
AT+CIPSTO=0
, соединение никогда не превысит тайм-аут. Данная конфигурация не рекомендуется.
Пример AT+CIPMUX=1
AT+CIPSERVER=1,1001
AT+CIPSTO=10
AT+PING
– отправить ping-пакеты-
Команда установки AT+PING=<IP>
Назначение: отправить ping пакеты.Отклик +<time>
OKили
+timeout
ERRORПараметры <IP>
– строка; IP адрес или доменное имя хоста;<time>
– время отклика на ping.
Примеры AT+PING="192.168.1.1"
AT+PING="www.baidu.com"
AT+CIUPDATE
– обновить программное обеспечение через Wi-Fi-
Команда выполнения AT+CIUPDATE
Назначение: обновить программное обеспечение.Отклик +CIUPDATE:<n>
OKПараметры <n>
:- 1 – найти сервер;
- 2 – подключиться к серверу;
- 3 – получить версию программного обеспечения;
- 4 – начать обновление.
Примечания - Скорость обновления зависит от подключения к сети.
- ERROR будет возвращен, если обновление завершится неудачей из-за проблем с сетью. Подождите некоторое время, прежде чем повторять попытку.
Примечания - При использовании AT BIN от Espressif (/ESP8266_NONOS_SDK/bin/at),
AT+CIUPDATE
скачает новый AT BIN из Espressif Cloud. - При использовании AT BIN, компилированного пользователем, пользователям необходимо создать своё собственное обновление
AT+CIUPDATE
. Espressif предоставляет демо в качестве справки для локального обновления (/ESP8266_NONOS_SDK/example/at). - Предполагается, что после обновления AT команд пользователи вызывают
AT+RESTORE
для восстановления заводских настроек по умолчанию.
AT+CIPDINFO
– показывать удаленные IP адрес и порт с+IPD
-
Команда установки AT+CIPDINFO=<mode>
Отклик OK Параметры <mode>
:- 0 – не показывать удаленные IP адрес и порт с
+IPD
; - 1 – показывать удаленные IP адрес и порт с
+IPD
.
Пример AT+CIPDINFO=1
- 0 – не показывать удаленные IP адрес и порт с
+IPD
– получить сетевые данные-
Отклик Одиночное соединение (+CIPMUX=0):
+IPD,<len>[,<remote IP>,<remote port>]:<data>Несколько соединений (+CIPMUX=1):
+IPD,<link ID>,<len>[,<remote IP>,<remote port>]:<data>Параметры Данная команда корректна в нормальном командном режиме. Когда модуль принимает сетевые данные, он посылает эти данные через последовательный порт с помощью команды +IPD
.[<remote IP>]
– удаленный IP адрес, включается командойAT+CIPDINFO=1
;[<remote port>]
– удаленный порт, включается командойAT+CIPDINFO=1
;<link ID>
– ID соединения;<len>
– длина данных;<data>
– принятые данные.
AT+CIPSNTPCFG
– установить конфигурация SNTP-
Команда Команда запроса: AT+CIPSNTPCFG?
Команда установки: AT+CIPSNTPCFG=<enable>[,<timezone>][,<SNTP server0>][,<SNTP server1>][,<SNTP server2>]
Отклик +CIPSNTPCFG:<enable>,<timezone>,<SNTP server0>[,<SNTP server1>,<SNTP server2>]
OKOK Параметры <enable>
:- 0 – SNTP выключен;
- 1 – SNTP включен;
[<timezone>]
– временная зона; диапазон: [-11, 13]; если SNTP включен, то временная зона<timezone>
должна быть установлена;[<SNTP server0>]
– необязательный параметр, указывающий первый SNTP сервер;[<SNTP server1>]
– необязательный параметр, указывающий второй SNTP сервер;[<SNTP server2>]
– необязательный параметр, указывающий третий SNTP сервер.
Пример AT+CIPSNTPCFG=1,8,»cn.ntp.org.cn»,»ntp.sjtu.edu.cn»,»us.pool.ntp.org» Примечание Если параметры <SNTP server>
не были установлены, то по умолчанию используются серверы «cn.ntp.org.cn«, «ntp.sjtu.edu.cn» и «us.pool.ntp.org«. AT+CIPSNTPTIME
– проверить SNTP время-
Команда запроса AT+CIPSNTPTIME?
Отклик +CIPSNTPTIME:<time>
OKПараметры <time>
– SNTP время.Например,
+CIPSNTPTIME:Thu Aug 04 14:48:05 2016
OKПример AT+CWMODE=1
// установить режим доступаAT+CWJAP="DemoAP","password"
// подключиться к роутеру, доступ в интернетAT+CIPSNTPCFG=1,8
// установить временную зонуAT+CIPSNTPTIME?
// получить время AT+CIPDNS_CUR
– установить определенные пользователем DNS серверы; конфигурация не сохраняется во флеш-памяти-
Команда Команда запроса: AT+CIPDNS_CUR?
Назначение: получить текущий DNS сервер.Команда установки: AT+CIPDNS_CUR=<enable>[,<DNS server0>,<DNS server1>]
Назначение: установить определенные пользователем DNS серверы.Отклик [+CIPDNS_CUR:<DNS server0>]
[+CIPDNS_CUR:<DNS server1>]
OKOK Параметры <enable>
:- 0 – отключить использование определенных пользователем DNS серверов;
- 1 – включить использование определенных пользователем DNS серверов;
[<DNS server0>]
–необязательный параметр, указывающий первый DNS сервер;[<DNS server1>]
– необязательный параметр, указывающий второй DNS сервер;
Пример AT+CIPDNS_CUR=1,"208.67.220.220"
Примечания - Для команды
AT+CIPDNS_CUR=0
(отключить использование определенных пользователем DNS серверов) в качестве DNS сервера по умолчанию будет использоваться адрес «208.67.222.222«. Также DNS сервер может быть изменен в соответствии с конфигурацией роутера, к которому подключен чип. - Для команды
AT+CIPDNS_CUR=1
(включить использование определенных пользователем DNS серверов, но у которой параметры<DNS server>
не установлены), в качестве DNS сервера по умолчанию будет использоваться адрес «208.67.222.222«.
AT+CIPDNS_DEF
– установить определенные пользователем DNS серверы; конфигурация сохраняется во флеш-памяти-
Команда Команда запроса: AT+CIPDNS_DEF?
Назначение: получить определенные пользователем DNS серверы, которые сохранены во флеш-памяти.Команда установки: AT+CIPDNS_DEF=<enable>[,<DNS server0>,<DNS server1>]
Назначение: установить определенные пользователем DNS серверы.Отклик [+CIPDNS_DEF:<DNS server0>]
[+CIPDNS_DEF:<DNS server1>]
OKOK Параметры <enable>
:- 0 – отключить использование определенных пользователем DNS серверов;
- 1 – включить использование определенных пользователем DNS серверов;
[<DNS server0>]
–необязательный параметр, указывающий первый DNS сервер;[<DNS server1>]
– необязательный параметр, указывающий второй DNS сервер;
Пример AT+CIPDNS_DEF=1,"208.67.220.220"
Примечания - Данная конфигурация сохраняется в области пользовательских параметров во флеш-памяти.
- Для команды
AT+CIPDNS_DEF=0
(отключить использование определенных пользователем DNS серверов) в качестве DNS сервера по умолчанию будет использоваться адрес «208.67.222.222«. Также DNS сервер может быть изменен в соответствии с конфигурацией роутера, к которому подключен чип. - Для команды
AT+CIPDNS_DEF=1
(включить использование определенных пользователем DNS серверов, но у которой параметры<DNS server>
не установлены), в качестве DNS сервера по умолчанию будет использоваться адрес «208.67.222.222«.
Теги
AT командаDNSESP8266EspressifPINGSNTPSSLTCPTCP/IPUDPWi-FiWi-Fi модульОтладочная плата
На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять
комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.
В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации
комментария требуется время на премодерацию.
PORT OPEN 115200 // открыли порт кнопкой
AT // проверили работу модуля
OK
AT+GMR // проверили версию прошивки
AT version:0.22.b1.0
SDK version:0.9.6(b1)
OK
AT+CWJAP? // проверили подключение к WiFi
No AP // его нету
OK
AT+CWMODE=1 // перевели в режим Station
OK
AT+CWDHCP=1,1 // включили в режиме Station работу DHCP, а если быть точным, то дали команду ESP получить IP от маршрутизатора
OK
AT+CWLAP // получаем список AP в пределах видимости
+CWLAP:(3,"тутSSIDмоейточкидоступа",-61,"тутMACмоейточкидоступа",4)
OK
AT+CWJAP="тутSSIDмоейточкидоступа","тутпарольмоейточкидоступа" // подаем команду подключиться к нашей точке
OK
AT+CWJAP? // снова проверили подключение к WiFi
+CWJAP:"тутSSIDмоейточкидоступа" // теперь оно есть
OK
AT+RST // презагружаем модуль, чтобы все закрепить
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 1320, room 16
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0
tail 12
chksum 0xb9
csum 0xb9
2nd boot version : 1.3(b3)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rlЋя
ready // вот модуль и перезагрузился
AT+CWJAP? // еще раз проверили подключение к WiFi, оно сохранилось и после перезагрузки снова поднялось, автоматом
+CWJAP:"тутSSIDмоейточкидоступа"
OK
AT+CIPSTA? // спрашиваем IP адрес, который наша ESP получила от роутера
+CIPSTA:"192.168.168.7" // а вот и он
OK
// если бы до этого у нас была команда AT+CWDHCP=1,0 - то адрес мы не получали бы от роутера по DHCP, а взяли бы себе сами, попробуем?
AT+CWDHCP=1,0 // посылаем команду на отключение режима DHCP
OK
AT+RST // перезагружаем для применения настроек
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 1320, room 16
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0
tail 12
chksum 0xb9
csum 0xb9
2nd boot version : 1.3(b3)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rlЋя
ready // модуль перезагрузился и готов
AT+CWJAP? // проверяем подключение к WiFi
No AP // нет подключения, что за фигня?
OK
AT+CWLAP // проверяем доступные точки
+CWLAP:(3,"тутSSIDмоейточкидоступа",-61,"тутMACмоейточкидоступа",4) // есть наша точка, так в чем же дело?
OK
AT+CWJAP="тутSSIDмоейточкидоступа","тутпарольмоейточкидоступа" // пробуем к ней подключиться
+CWJAP:1
FAIL // фейл, с чего вдруг?
AT+CIPSTA? // проверяем IP который у нас сохранен в память для самоприсвоения при подключении
+CIPSTA:"0.0.0.0" // вот она где собака порылась, в памяти у нас сохранен IP 0.0.0.0 - он некорректен, а так как мы отключили получение IP от роутера по DHCP, то модуль просто не может подключиться с кривым IP
OK
AT+CIPSTA="192.168.168.91" // назначаем нашему ESP сами IP адрес (лишь бы он был свободен и подходил к нашей сети, у меня сеть 192.168.168.0 - 192.168.168.255)
OK
AT+RST // перезагружаем для применения настроек
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 1320, room 16
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0
tail 12
chksum 0xb9
csum 0xb9
2nd boot version : 1.3(b3)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rlЋя
ready // модуль перезагрузился и готов
AT+CIPSTA? // проверяем IP который у нас сохранен в память для самоприсвоения при подключении
+CIPSTA:"192.168.168.91" // наши настройки сохранились, хорошо
OK
AT+CWJAP? // проверяем подключение к WiFi
+CWJAP:"тутSSIDмоейточкидоступа" // опа, оно поднялось само, теперь конфликта IP нет
OK
// далее можно по пинговать модуль с чего-то в этой же сети, например, с ПК из командной строки cmd
C:WindowsSystem32>ping 192.168.168.91
Обмен пакетами с 192.168.168.91 по с 32 байтами данных:
Ответ от 192.168.168.91: число байт=32 время=67мс TTL=255
Ответ от 192.168.168.91: число байт=32 время=84мс TTL=255
Ответ от 192.168.168.91: число байт=32 время=2мс TTL=255
Ответ от 192.168.168.91: число байт=32 время=32мс TTL=255
Статистика Ping для 192.168.168.91:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 2мсек, Максимальное = 84 мсек, Среднее = 46 мсек
// Ну вот, модуль пингуется, все отлично, можно идти дальше, снова возвращаемся в ESPlorer
AT+CWDHCP=1,1 // Я переключусь обратно на получение IP от роутера, мне так удобнее
OK
AT+RST // рестарт
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 1320, room 16
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0
tail 12
chksum 0xb9
csum 0xb9
2nd boot version : 1.3(b3)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rlЋя
ready // модуль готов
AT+CWJAP? // проверка подключения
+CWJAP:"тутSSIDмоейточкидоступа"
OK
AT+CIPSTA? // проверка IP
+CIPSTA:"192.168.168.7" // IP назначен - запомнили его
OK
// тут можно снова по пинговать, у меня пингуется
// дальше нам надо поднять сервер
// для работы TCP сервера на ESP по документации у нас должно быть CIPMODE=0 и CIPMUX=1
// причем это должно быть именно в таком порядке и именно до поднятия сервера, иначе оно просто не выставится
AT+CIPMODE=0 // выставляем CIPMODE
OK
AT+CIPMUX=1 // выставляем CIPMUX
OK
AT+CIPMODE? // проверяем CIPMODE
+CIPMODE:0
OK
AT+CIPMUX? // проверяем CIPMUX
+CIPMUX:1
OK
// все выставлено верно, можно сначала начать с проверки, может оно уже верно выставлено ;)
AT+CIPSERVER=1,80 // поднимаем (1) TCP сервер на порту (80)
OK
// вот, собственно, то, чего вы хотите, теперь можно попробовать с какой-нибудь программы подключиться к нашему серверу
// параметры такие: TCP на IP 192.168.168.7 и порт 80
// я попробую через hercules отсюда http://www.hw-group.com/products/hercules/index_en.html
// в режиме TCP client ввожу IP и порт и жму Connect
// после подключения нажимаю отправить строку "hello ESP"
// При этом в ESPlorer вижу следующее:
0,CONNECT // подключился клиент на соединение с индексом (0)
+IPD,0,9:hello ESP // по соединению с индексом (0) получили (9) байт данных и сами байты "hello ESP" - ровно 9 символов
// попробуем отправить что-то в ответ, набираем в ESPlorer команды
AT+CIPSEND=0,5 // отправить в соединение с индексом (0) сообщение длинной (5) байт
OK
> // ESP ждет от нас ровно 5 байт! важно теперь отправить ровно 5 символов/байт
hi! // я отправляю "hi!", но так как в ESPlorer выставлено добавлять CR и LF к каждому сообщению, то как раз получается 5 символов в сумме
SEND OK // ESP отрапортовал, что отправил
// далее в hercules отключусь - Diconnect
// в ESPlorer получу:
0,CLOSED // клиент отключен на соединении с индексом (0)
|
Эта тема
- Везде
-
- Эта тема
- Этот форум
-
- Расширенный поиск
Поиск
AT Command | |
Description |
AT+CIPSERVER configures the module as the server. It will then enable external clients to connect to the module. The port number is set for lisening. |
Support | Simcom Module Tutorial |
Examples |
Configure the module to server mode and listen to port 8766 OK SERVER OK |
Keywords | AT+CIPSERVER syntax, examples, parameters, error, input, response. |
With Online AT Command Tester tool, you can test Simcom TCP/IP feature.
You can also send commands to set up TCP/IP connection in the ‘Script Mode’ tab of the AT Command Tester,
//Check the registration status
AT+CREG?
//Check attach status
AT+CGACT?
//Attach to the network
AT+CGATT=1
//Wait for Attach
WAIT=7
//Start task ans set the APN. Check your carrier APN
AT+CSTT="bluevia.movistar.es"
//Bring up the wireless connection
AT+CIICR
//Wait for bringup
WAIT=6
//Get the local IP address
AT+CIFSR
//Start a TCP connection to remote address. Port 80 is TCP.
AT+CIPSTART="TCP","74.124.194.252","80"