IS SOLVED
I am trying to connect an ESP8266 01 (Controlled thru an Arduino) as a Client to an ESP8266 setup as an Server via TCP with AT-Commands. But as soon as I send the command «AT+CIPSTART» the response is «Link type Error». The SDK version is 2.0.0.
I have tried it with AT+CIPMUX on 1 and 0 and with every Id but the response is always Link type ERROR
Left is the Server / On the right the Client
Edit: Some random times after a couple of restarts it works but only 3% of the time.
IS SOLVED
asked Jul 22, 2019 at 14:08
4
I found the Answer. So what i did wrong was i didn’t initialize the AP with AT+CIPMUX=1. That means it wasn’t able to open multiple id. So i just deleted the «0,» from AT+CIPSTART=0,»TCP»…. to AT+CIPSTART=»TCP»… and the command worked.
You can also just initialize the AP with AT+CIPMUX=1.
But now as soon as i send a message it disconnects/restarts and it won’t receive the message.
EDIT: SECOND PROBLEM IS SOLVED
answered Jul 22, 2019 at 14:57
1
Прошу помощи. Сам разобраться не смог. Если коротко : подключаюсь ESP8266 на АТ к серверу на прошивке Esp link. При первом подключении работает правильно. После перезагрузки пишет ошибка на АТ команду CIPSTART. Перепрошиваю бланк на адрес 0*FE000. Снова один раз работает и потом после ресета снова ошибка. Если нужно распишу подробнее. С прогами через комп (PUTTY, Net Asis, Hercules) работает правильно.
Код:
Terminal log file
Date: 14.10.2021 — 20:05:13
————————————————
GФZ€QP@XdY…g
МQ+kSPPц
ФWJ5•V‰DDVi` dX`XPP5}h[hVиWu!†@GсZsXDQUgOXmІDuc
`Тm
`XPP5}|ZЙ@Xu{`PDZs ZDQUgOX3ІDuc
`Тm
hR–@Vк!ixVиWw! ДZsXDQUgOX%ІDvk
`RDDX%!ц
шSvse!fV‰tRi1iDGqCE¬XJihP ”D·D+Pti
hP+GDI+PКc!4u
XPa`G6iµYrEіdXU3ЃьTЛaрWи[[¶eЂP`XDDQ…eНiШVgWaЃьJІDtДЬX
МQY*i…5h[D*kрXg
ФVe5!DЦWFhMhP`GQm5dYЃ`XDXЄ#ґP`YDGqEшSV@Y…V‰d[RМQ6@Qua5iЂPshXhX@Y©hZpGqшSV@YtZГVаXшSV@YXXDGс
ready
AT+GMR
AT version:1.7.4.0(May 11 2020 19:13:04)
SDK version:3.0.4(9532ceb)
compile time:May 27 2020 10:12:17
Bin version(Wroom 02):1.7.4
OK
AT+RST
OK
b„¤d䄆…¤¦…¤„…§†е‡Д‡д¦¦FCГ‡„Д„„„„††‡…¦†еЗ„…b„Ж„bЕ§Д„¦EГ‡„ДҐ…†„††‡ҐД¤з††b„Ж„bЕ§Д„ЖEГ‡„ДҐ…¦Ґ††‡ҐЕ¤з†„b„Ж„bЕ§Д„¦EЈ…†ДҐbbе„凤¤Езд„§†¤ЕҐF#@$„„д„Dвb‚в„дbb‚Б¤†Б‡¤D„‡FЕД„eб„eБb‡†„‡…‡¤¤„Ђ„„bb奤„Е¤††DуJІDtAT+GMR
AT version:1.7.4.0(May 11 2020 19:13:04)
SDK version:3.0.4(9532ceb)
compile time:May 27 2020 10:12:17
Bin version(Wroom 02):1.7.4
OK
AT+CWMODE_DEF=3
OK
AT+CWJAP_DEF=»ESP01_V3014″,»88888888″
WIFI CONNECTED
+CWJAP:1
FAIL
WIFI DISCONNECT
AT+CWMODE_DEF=3
OK
AT+CWJAP_DEF=»ESP01_V3014″,»88888888″
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIPSTART=»TCP»,»192.168.4.1″,23
CONNECT
OK
+IPD,10::v017926
+IPD,10::v017927
+IPD,10::v017928
+IPD,10::v017929
+IPD,10::v017930
+IPD,10::v017931
+IPD,10::v017932
+IPD,10::v017933
+IPD,10::v017934
AT+CIPCLOSE
+IPD,10::v017935
CLOSED
OK
AT+CIPSTART=»TCP»,»192.168.4.1″,23
CONNECT
OK
+IPD,10::v017962
+IPD,10::v017963
+IPD,10::v017964
+IPD,10::v017965
+IPD,10::v017966
+IPD,10::v017967
+IPD,10::v017968
+IPD,10::v017969
AT+CIPCLOSE
+IPD,10::v017970
+IPD,10::v017971
+IPD,10::v017972
CLOSED
OK
AT+RST
OK
WIFI DISCONNECT
b„¤d䄆…¤¦…¤„…§†е‡Д‡д¦¦FCГ‡„Д„„„„††‡…¦†еЗ„…b„Ж„bЕ§Д„¦EГ‡„ДҐ…†„††‡ҐД¤з††b„Ж„bЕ§Д„ЖEГ‡„ДҐ…¦Ґ††‡ҐЕ¤з†„b„Ж„bЕ§Д„¦EЈ…†ДҐbbе„凤¤Езд„§†¤ЕҐF#@$„„д„Dвb‚в„дbb‚Б¤†Б‡¤D„‡FЕД„eб„eБb‡†„‡…‡¤¤„Ђ„„bb奤„Е¤††DуJІDtV‰d[RМS6@Qua5iЂPshXhX@Y«hZpGqшSV@YtZГVаXшSV@YXXDGс
ready
WIFI CONNECTED
WIFI GOT IP
AT+CIPSTART=»TCP»,»192.168.4.1″,23
ERROR
CLOSED
AT+CIPSTART=»TCP»,»192.168.4.1″,23
ERROR
CLOSED
AT+CWJAP?
+CWJAP:»ESP01_V3014″,»5e:cf:7f:19:ee:9a»,1,-14,0
OK
AT+CWMODE_DEF=3
OK
AT+CIPMUX=0
OK
AT+CIPSTART=»TCP»,»192.168.4.1″,23
ERROR
CLOSED
————————————————
Date: 14.10.2021 — 20:11:15
End log file
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
i use a linux machine with a localhost php server installed. Wifi machine is connected to the ESP-01 module (access point mode) and i can send several datas to the Arduino via the ESP-01 set as:
sendData("AT+RSTrn",2000,DEBUG); // reset module
sendData("AT+CWMODE=2rn",1000,DEBUG); // configure as access point
sendData("AT+CIFSRrn",1000,DEBUG); // get ip address
sendData("AT+CIPMUX=1rn",1000,DEBUG); // configure for multiple connections
sendData("AT+CIPSERVER=1,80rn",1000,DEBUG); // turn on server on port 80
The php server can send data by GET method and Arduino receives pin=11:
http://192.168.4.1:80/?pin=11
But, now, i would like to send to the php server datas from the Arduino. I tried this configuration but in my sketch but, it returns, error.
sendData("AT+CIPSTART=0,'TCP','http://localhost',80rn",1000,DEBUG);
Serial monitor:
ERROR
AT+CIPSTART=0,'TCP','http://localhost/test_php',80
Link type ERROR
So please, how can i send and receive data with my ESP-01 module?
- Радиоэлектроника
- Цифровая электроника
- Отладочные комплекты
- 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) для публикации
комментария требуется время на премодерацию.
Есть у меня два модуля ESP-01, купил давно уже, на всякий случай, а тут и задача подвернулась, думаю надо их попробовать в деле. Поначалу я даже не представлял, как будет устроена работа, на каком уровне абстракции придется работать, реализовывать ли TCP/IP стек в МК, формировать ли сетевые пакеты руками, какой вообще функционал мне предоставит модуль, ну и тому подобные переживания :).
Оказалось все очень просто, модуль представляет из себя полностью законченное сетевое устройство, он поддерживает необходимые методы шифрования и вообще реализует всю работу с TCP/IP на стороне WiFi, а с МК общается через UART посредством набора AT-команд. Т.е. на стороне МК все предельно просто, там доступны такие удобные команды, как посмотреть список WiFi-сетей, подключиться к выбранной, открыть коннект до хоста IP на порту PORT, записать и прочитать данные из сокета, сделать пинг до хоста и т.д.
Распиновка модуля такая:
также у меня есть китайска-USB-TTL адаптер, выдающий кроме 5В еще и 3.3В.
Подключение модуля обещает быть проще некуда, 4 проводка и можно общаться с ним через программу-терминал. Следовательно, VCC подключаем к питанию 3.3В, GND к земле, RXD чипа к TXD адаптера, TXD чипа к RXD адаптера, CH_PD к питанию.
Sex begins here
Втыкаю USB-адаптер в комп — модуль ожил: моргнул синим диодом и далее постоянно горит красный.
Расчехляю Terminal v.1.9, ставлю 9600 бод, коннект.. ээ, дарагой.. коннект!
Падлюка китайская, адаптер не пашет, COM-порта нет, дрова не ставятся, система Windows 8.1 x64.
15 минут на поиск нужных, попадается мне целая детективная история о том, как злые китайцы скопировали микросхему PL2303 и штампуют ее, не отчисляя лицензионных денег исходному производителю Prolific, зато ссылаясь на его дрова. Компания выпустила под Win8 драйвер, умеющий отличать подделку. Короче в любом случае, чипы версий HXA/XA больше не поддерживаются, а у меня оказался именно такой. Скачал я в итоге файл pl2303_hxa_xa_win8x64_181.zip, принудительная установка из архива и адаптер завелся.
Продолжаем.
Питание на ESP есть, однако новой WiFi сети не вижу (фича?), при включении ESP UART моргает 1 раз, но в терминале пусто. На команду AT молчит, LED TX на адаптере моргает, значит данные уходят на модуль.
Покурил статейку http://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/#esp8266-connect
Попробовал передергивать не питание ESP, а CH_PD — получил ожидаемый мусор при старте модуля. Что ж, похоже пациент жив! Теперь надо пообщаться
Мусор, однако, раз от раза может сильно отличаться по длине. То 1 символ, то 3, то целая гора. Получить его в нормальном виде (отладочный текст) так и не вышло, ни на какой скорости. И на команду AT так и не отвечает, ни с CR+LF, ни как-то иначе..
Ресет у меня все время висел в воздухе, пробовал я его к питанию подтягивать, не помогло, так и оставил его висеть.
Один модуль я, кажется, почикал, подав ему 5В на GPIO0.
Со вторым был аккуратнее, но так нифига и не получилось его завести.
Ни одна из 3 программ-прошивальщиков не смогла ничего сделать с модулем.
Нихрена не быстрый получился старт, как всегда собрал все возможные проблемы.
Китайский адаптер USB-TTL не внушает доверия, вероятно работает криво.
Попробую другой адаптер, программатор для AVR на FTDI.
На другой день
После новой серии неудачных попыток, укорачивания проводов от программатора до чипа и подключения питания от 2xAA (мой программатор выдает только 5В) — стабильно заработал вывод отладочной инфы на скорости 74 880 бод. И новая сеть WiFi появилась, ESP_9E606F. Линию TX на программаторе (от программатора к модулю) я подключил через резистор 1k2.
Пример вывода отладки:
ets Jan 8 2013,rst cause:1, boot mode:(3,7)
load 0x40100000, len 816, room 16
tail 0
chksum 0x8d
load 0x3ffe8000, len 788, room 8
tail 12
chksum 0xcf
ho 0 tail 12 room 4
load 0x3ffe8314, len 288, room 12
tail 4
chksum 0xcf
csum 0xcf
2nd boot version : 1.2
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
Первый вчерашний модуль я пометил MD (maybe dead), но он таки оказался тоже жив, на AT ответил на скорости 9600.
Понеслась!
Узнать текущий режим командой «AT+CWMODE?», получаю «+CWMODE:2», режим клиента и AP.
Переводим в режим клиента «AT+CWMODE=1» — OK.
Посмотрим список сетей «AT+CWLAP», список выведен с задержкой около секунды.
Подключаемся к сети AT+CWJAP =»your SSID here»,»wifikey» — хер. ERROR
Пробуем настроить шифрование «AT+CWSAP=3» — ERROR.
Пробовал подключиться к случайно выбранной сети без пароля — думало секунд 15 и выдало FAIL.
Вероятно модулю не нравится имя моей сети, оно содержит пробелы и восклицательный знак:). ХЗ чо я покрутил в итоге, но с Nй попытки приконнектился.
Даже с компа пингуется
C:Usersmex>ping 172.30.0.198
Обмен пакетами с 172.30.0.198 по с 32 байтами данных:
Ответ от 172.30.0.198: число байт=32 время=100мс TTL=255
Ответ от 172.30.0.198: число байт=32 время=20мс TTL=255
Ответ от 172.30.0.198: число байт=32 время=1мс TTL=255
Ответ от 172.30.0.198: число байт=32 время=2мс TTL=255
Статистика Ping для 172.30.0.198:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 1мсек, Максимальное = 100 мсек, Среднее = 30 мсек
Ползем дальше.
Какой адрес получен от DHCP? «AT+CIFSR» — 172.30.0.198
У меня в сетке есть nginx сервер, попробую получить его приветственную страницу:
надо открыть коннект до порта 80, запросить GET / HTTP/1.0 и прочитать все, что отдадут.
Установим режим множественных подключений
AT+CIPMUX=1
Открываю коннект
AT+CIPSTART=TCP,»172.30.0.1″,80
Получаю некое Link typ ERROR
… В инете вычитал ‘Link typ ERROR’ — can occur when MUX=0 …
AT+RST, снова установка AT+CIPMUX=1, коннект, раздумье и .. ресет модуля, в смысле он внезапно ребутнулся.
Проба повтора — снова ресет..
Обновлю ка прошивку, сейчас версия 0018 стоит, может даже из облака попробую, понтов ради )
AT+CIUPDATE
посыпались символы, как в матрице прям.. сижу довольный, жду, думаю что это код прошивки сливается
На аккумуляторах 2.5В в этот момент. пока работает.
Долго.. минут 5 наверное уже прошло, на счетчике Rx уже 220к.
Еще минут 5. Rx=410к.. Надо было UART с 9600 на 115200 наверное перевести
Флеша в модуле 512к, осталось недолго. Rx=500к, да что ж он там, под завязку что ли.
И тут, глядя на эти волны символов, и думая, откуда это у них такая закономерность, решил я терминал на 74880 бод переключить.. а там все это время оказывается фаталы сыпались.
Передернул питание и получил такой косяк
эх, надо шить вручную. понты не прошли.. запустил FLASH_DOWNLOAD_TOOLS и перешил на версию AT 0.21, SDK 0.9.5
Пробуем снова
Список сетей, коннект, MUX=1, открываем соединение
AT+CIPSTART=TCP,»172.30.0.1″,80
теперь сразу ERROR пишет
А документация-то у меня от старой версии открыта, ну ка от 0.21 посмотрю.
Ба, тут добавилась команда PING! Попробуем
AT+PING=»ya.ru»
В ответ
+3
OK
Супер. Но что насчет коннекта по HTTP?
Открыл pdf от китайцев, оказалось, что для CIPMUX=1 первым параметром идет ID соединения.
Короче я переключился в MUX=0, и сработало
AT+CIPSTART=»TCP»,»10.0.0.101″,80
CONNECT
OK
AT+CIPSEND=18 18 это длина отправляемого заголовка + переносы строки rnrn
OK
> GET / HTTP/1.0
2 перевода строки, не забываем
SEND OK
и вуаля, наши данные!
+IPD,837:HTTP/1.1 200 OK
Server: nginx/1.2.5
Date: Thu, 19 Nov 2015 18:15:19 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 612
Last-Modified: Thu, 22 Oct 2015 03:24:12 GMT
Connection: close
Accept-Ranges: bytes
<!DOCTYPE html><html><head><title>Welcome to nginx!</title><style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }</style></head><body><h1>Welcome to nginx!</h1><p>If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.</p><p>For online documentation and support please refer to<a href=»http://nginx.org/»>nginx.org</a>.<br/>Commercial support is available at<a href=»http://nginx.com/»>nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p></body></html>CLOSED
Если на сервер запрос не посылать, то коннект он разорвет сам через какое то время, а модуль сообщит, что соединение закрыто, прислав строку
CLOSED
К концу экспериментов на аккумах было 2.27В
Я запросил вебсервер еще один раз — все работает.