At cipstart link type error

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

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
enter image description here

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

VirtualSquash's user avatar

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

VirtualSquash's user avatar

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 photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    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 photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    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?

  1. Радиоэлектроника
  2. Цифровая электроника
  3. Отладочные комплекты
  4. ESP8266

Добавлено 15 июня 2018 в 18:36

ESP8266 в своей конфигурации по умолчанию загружается в режим последовательного модема. В этом режиме вы можете общаться с ним с помощью набора AT-команд. AT-команды ESP8266 можно разделить на три категории: базовые, уровень Wi-Fi и уровень TCP/IP. Ниже приведен список всех AT команд уровня TCP/IP, поддерживаемых ESP8266, с объяснением, что они делают, и как их использовать.

Модуль ESP-12E на базе ESP8266. AT команды ESP8266 уровня TCP/IP

Модуль ESP-12E на базе 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 – отправить данные
Команда Команда установки:

  1. Одно соединение (+CIPMUX=0):
    AT+CIPSEND=<length>
  2. Несколько соединений (+CIPMUX=1):
    AT+CIPSEND=<link ID>,<length>
  3. Во время 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 – отправить данные
Команда установки
  1. Одно соединение (+CIPMUX=0):
    AT+CIPSENDEX=<length>
  2. Несколько соединений (+CIPMUX=1):
    AT+CIPSENDEX=<link ID>,<length>
  3. Во время 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 буфер отправки
Команда установки
  1. Одиночное соединение (+CIPMUX=0):
    AT+CIPSENDBUF=<length>
  2. Несколько соединений (+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 сегментов
Команда установки
  1. Одиночное соединение (+CIPMUX=0):
    AT+CIPBUFRESET
  2. Несколько соединений (+CIPMUX=1):
    AT+CIPBUFRESET=<link ID>
Отклик OK

Если соединение не установлено, или еще есть данные, ожидающие отправки, отклик будет следующим:

ERROR

Параметры <link ID> – ID соединения (0–4), используется при нескольких соединениях.
Примечание Данная команда может использоваться, только когда используется AT+CIPSENDBUF.
AT+CIPBUFSTATUS – проверить состояние TCP буфера отправки
Команда установки
  1. Одиночное соединение (+CIPMUX=0):
    AT+CIPBUFSTATUS
  2. Несколько соединений (+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 – проверить, был ли конкретный сегмент отправлен успешно
Команда установки
  1. Одиночное соединение (+CIPMUX=0):
    AT+CIPCHECKSEQ=<segment ID>
  2. Несколько соединений (+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>
OK
OK
Параметры <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>
OK
OK
Параметры <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>
OK
OK
Параметры <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>
OK
OK
Параметры <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
+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>]
OK
OK
Параметры
  • <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>]

OK
OK
Параметры
  • <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>]

OK
OK
Параметры
  • <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В

Я запросил вебсервер еще один раз — все работает.

Понравилась статья? Поделить с друзьями:
  • At cgatt 1 error
  • At cardlock error
  • At 95 confidence what is the margin of error
  • At 145te коды ошибок
  • Asyncpg exceptions postgressyntaxerror syntax error at or near