• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь нет стабильности в.... ESP8266+Arduino

Denisww

New member
Собрался вот такой проект
на PC клиент с кнопками в браузере

для Arduino скетч
Код:
#include <SoftwareSerial.h>

#include <avr/wdt.h>

#define DEBUG true
#define RESPONSE_FASTTIME 150 // время ожидания ответа
#define CLEARSTREAM_FASTTIME 1 // время ожидания ответа при чистке буфера
#define CIPMODE 0// unvarnished transmission mode = 1
#define CIPMUX 1// configure for multiple connections
#define CWMODE 2// режим configure as access point (1=Station, 2=AP, 3=All)
#define CIPSERVER_PORT 80 // ПОРТ
#define CIPSTO_TIMEOUT 1 // не понятно что задает
#define BOUDFirst 57600 // скорость обмена по умолчанию
//4800 9600 19200 38400 57600
//115200 230400 345600 460800 576000 921600
#define BOUD BOUDFirst //
#define RESPONSE_START "ARDUINO UNO"
#define RESPONSE_END "BABAROBOT"
#define RESPONSE_CONNECTION ""
//#define RESPONSE_CONNECTION "KeepAliveTimeout 1\r\n"
//#define RESPONSE_CONNECTION "Connection: close\r\n" // закрыть connect
//#define RESPONSE_CONNECTION "Connection: keep-alive\r\n"

#define RESPONSE_CIPCLOSE ""
#define RESPONSE_SERVER "";
//#define RESPONSE_SERVER "Server: WebSevice\r\n";
#define RESPONSE_REFRESH ""
//#define RESPONSE_REFRESH "Refresh: 1\r\n"

long int time = millis(), time_1, time_2, time_3;
int loopIterat = 1;
SoftwareSerial esp8266(2, 3);

void setup()
{
  Serial.begin(115200);
  Serial.println("_SS_MAX_RX_BUFF="+String(_SS_MAX_RX_BUFF,DEC));
  Serial.println("BOUD="+String(BOUD,DEC));

  if (BOUDFirst != BOUD){
    long b= BOUDFirst;
    String s  = "AT+CIOBAUD=" + String(BOUD, DEC);
    String r  = "";
    while(true){
      esp8266.begin(b);
      Serial.println("esp8266 change BOUD for  "+String(b, DEC));
      while(true){
        Serial.println(s);
        esp8266.println(s);
        Serial.println(esp8266.readString());
        if(b!=BOUDFirst)break;
      }
      esp8266.end();
    }
  }
  esp8266.begin(BOUD);

  pinMode(11, OUTPUT);
  digitalWrite(11, LOW);

  pinMode(12, OUTPUT);
  digitalWrite(12, LOW);

  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);

  sendData("AT+RST", "reset module", 0);
  sendData("AT", "test esp8266", RESPONSE_FASTTIME);
  sendData("AT+CIOBAUD=?", "speed baud", RESPONSE_FASTTIME);

  if (DEBUG)sendData("AT", "test esp8266", RESPONSE_FASTTIME);
  sendData("AT+CIPMUX=" + String(CIPMUX), "configure for multiple connections " + String(CIPMUX), RESPONSE_FASTTIME);
  //* sendData("AT+CWMODE=" + String(CWMODE), "configure as access point to " + String(CWMODE) + "(1=Station, 2=AP, 3=All)", RESPONSE_FASTTIME);
  //sendData("AT+CIPMODE="+ String(CIPMODE), "unvarnished transmission mode = "+ String(CIPMODE), RESPONSE_FASTTIME);
  //sendData("AT+CWSAP=\"ESP8266\",\"1234567890\",5,3", "configure as access", RESPONSE_FASTTIME);
  sendData("AT+CIPSERVER=1," + String(CIPSERVER_PORT), "turn on server on port " + String(CIPSERVER_PORT), RESPONSE_FASTTIME);
  sendData("AT+GMR", "version flash", RESPONSE_FASTTIME);
  //* sendData("AT+CIFSR", "get ip address", RESPONSE_FASTTIME);
  //* sendData("AT+CIPSTO=" + String(CIPSTO_TIMEOUT), "timeout " + String(CIPSTO_TIMEOUT), RESPONSE_FASTTIME);
  if (DEBUG)sendData("AT", "AT esp8266", RESPONSE_FASTTIME);
  //if(DEBUG)sendData("AT+CWLAP","View access point", 5000); //1 раз сработало
  //Serial.println("# delay(2000)");delay(2000);
  sendData("AT", "AT esp8266", RESPONSE_FASTTIME);
  Serial.println(""); printTime();
  Serial.println("# flush()"); esp8266.flush();
  Serial.println("# init end -----"+String(RESPONSE_FASTTIME,DEC)+"---------"+String(CLEARSTREAM_FASTTIME,DEC)+"----------------------------");
  time_1 = millis();time_2 = millis();
}

// Основной цикл- Ждем +IPD и выталкиваем буфер
void loop()
{
  Serial.println("# main loop ---------------------------------\n");
  //while(!esp8266.overflow()){
  while (true) {
    if (DEBUG) if (millis() - time_1 > 1000)Serial.println(printTime(time_1) + "second 1"); time_1 = millis();
    time = millis();
    while (esp8266.available()) {
      time = millis();
      // если найден +IPD, выполнить positive_answer
      char c = 0;
      if ( ( c = esp8266.read() ) == '+' ) {
        while (esp8266.available()<64)delay(1);
        //if(millis()-time_2>2000) Serial.println(printTime(time_2)+"available------second 2---------");time_2 = millis();
        if ( (c = esp8266.read()) == 'I' && (c = esp8266.read()) == 'P' && (c = esp8266.read()) == 'D' && (c = esp8266.read()) == ',')
        {
          Serial.print("loop [" + String(loopIterat++) + "] ");
          long conId = esp8266.parseInt();
          if (DEBUG) {
            Serial.println("");
            Serial.print(printTime() + "++++++++++++++++++++++++ +IPD");
          }
          Serial.println(conId);
          positive_response(conId);
        }
      } else
        // иначе, выводить в лог
        if((true || DEBUG) && c != 0) {
          if (millis() - time_3 > 10) { Serial.println(""); printTime(time_3); }
          Serial.print(c);
          time_3 = millis();
        }
    }
  }
}


void positive_response(long connId)
{
  if (DEBUG)Serial.println(printTime() + "Start positive_response");
  // ищем команду /set и номер pin=,  и делаем реверс pin
  if ( esp8266.find(" /") && esp8266.read() == 's' && esp8266.find("pin=") )
  {
    int pin = esp8266.parseInt();
    if (DEBUG)Serial.print(printTime() + "Setup pin=");
    if (DEBUG)Serial.println(pin);
    digitalWrite(pin, digitalRead(pin) == LOW ? HIGH : LOW);
  };
  if (DEBUG)Serial.println(printTime()+"format HTTP response");
  // Формируем HTTP ответ
  String requestText = RESPONSE_START;
  requestText +=" ("+String(loopIterat-1, DEC)+", "+String(connId, DEC)+")";
  // собираем инфо для ответа
  for (int pin = 11; pin <= 13; pin++) {
    requestText += "\npin" + String(pin, DEC) + "=";
    requestText += digitalRead(pin) == HIGH;
  }
  requestText += "\ntime=" + String(millis() - time, DEC) + "\n";
  requestText += RESPONSE_END;

  String request  = "HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\n";
  request += RESPONSE_SERVER;
  request += RESPONSE_CONNECTION;
  request += RESPONSE_REFRESH;
  request += "Content-Length: "; request += String(requestText.length(), DEC) + "\r\n";
  request += "\r\n" + requestText;

  // стартуем обмен данными
  String sSend = "AT+CIPSEND";
  sSend += "=" + String(connId, DEC) + ",";
  sSend += request.length();
  sSend +="\r\n";

  // чистим буфер с задержкой
  if (DEBUG){
    Serial.print(printTime()+"ClearBuffer.."+String(CLEARSTREAM_FASTTIME, DEC)+"..>>\n");
    while (esp8266.available()) {
      char c;
      Serial.print(c=esp8266.read());
      if(!esp8266.available())if(CLEARSTREAM_FASTTIME>0)delay(CLEARSTREAM_FASTTIME);
    }
    Serial.println("<<");
  } else while (esp8266.available()) {
    esp8266.read();
    if(!esp8266.available())if(CLEARSTREAM_FASTTIME>0)delay(CLEARSTREAM_FASTTIME);
  }

  if (DEBUG)Serial.println(printTime() + "send response...>");
  //if (DEBUG)Serial.println(sSend);
  esp8266.print(sSend+request);
  if (DEBUG)Serial.println(printTime() + "send response ok \n"+
  "++++++++++++++++++++++++");
}

// Отправка команды
void sendData(String command, String comment, long int delayTime)
{
  Serial.print("\n# " + comment);
  if(delayTime == 0)Serial.print("> ");
  esp8266.println(command);
  String response = delayTime != 0 ? esp8266readString(delayTime) : esp8266.readString();
  {
    String ss = response; ss.trim();
    if (response.indexOf(command) < 0) Serial.println(command+">");
    else {
      ss.replace("\r\n\r\n", "\n");
      String sss=command+"\r\nOK";
      if( sss.equals(ss)){
        Serial.print(command+" OK");
        return;
      }
      Serial.println("");
    }
    printTime();
    if (response.length() > 0)Serial.println(ss); else Serial.println("response = >null");
  }
  return;
}

// ждать ответ в течении заданного времени
String esp8266readString(long int delayTime) {
  Serial.print(">");
  String result = "";
  long int delayT = delayTime + millis();
  while (result.length()==0 || millis() <= delayT)
    while (esp8266.available()) {
      char c = esp8266.read();
      result += c;
    }
  return result;
}

String printTime() {
  return printTime(time);
}
String printTime(long int time) {
  Serial.print("#");
  Serial.print(LeftPad(String(millis() - time, DEC), 4, " "));
  Serial.print(LeftPad(String(esp8266.available(), DEC), 4, " "));
  Serial.print("\\");
  Serial.print(esp8266.overflow());
  Serial.print(":");
  return "";
}

String LeftPad(String st, int n, String s) {
  if(st.length()>=n)return st;
  String ss = ""; for (int i = 0; i < n - st.length(); i++)ss += s; return ss + st;
}

String RightPad(String st, int n, String s) {
  if(st.length()>=n)return st;
  String ss = ""; for (int i = 0; i < n - st.length(); i++)ss += s; return st + ss;
}

// примеры рестарта Arduino
void(* resetFunc) (void) = 0;
void reboot() {
  wdt_disable();
  wdt_enable(WDTO_15MS);
  while (1) {}
}

void restart(String meesage) {
  Serial.println(printTime() + "Error!!!!Error!!!!Error!!!!Error!!!!");
  Serial.println(meesage);
  Serial.println(esp8266.readString());
  return;
  while (true) {
    String s = esp8266.readString();
    if (s.length() > 0)Serial.println(s);
  }
  reboot();
}

void loop1() {
  if (esp8266.available()) Serial.print(esp8266.readString());
}
Нажимая на кнопки клиента посылать get запросы
в ESP8266->Arduino

Старт setup arduino uno + инициализайия AP ESP8266(Точки доступа)
 

Вложения

Последнее редактирование:

Victor

Administrator
Команда форума
Denisww, вот что увидел, только бегло просмотрев ваш проект:
1. На AT прошивках нормальной стабильности и не бывает, но сообщите, все таки, версию AT прошивки, а то на старых версиях все еще намного хуже, чем на последних.
2. 57600 - это предельная скорость для SoftSerial - попробуйте ее уменьшить, а лучше подключить ESP8266 к hardware UART
3. Не увидел - проверяете ли вы свободную память Arduino. Проверьте
4. [inline]delay(2000)[/inline] вовсе не гарантирует, что ESP успеет за это время
5. Некоторые садят REST ESP8266 на какой-нибудь пин Arduino и перезагружают ESP8266 время от времени - это обычно немного помогает
 

Denisww

New member
Denisww, вот что увидел, только бегло просмотрев ваш проект:
1. На AT прошивках нормальной стабильности и не бывает, но сообщите, все таки, версию AT прошивки, а то на старых версиях все еще намного хуже, чем на последних.
2. 57600 - это предельная скорость для SoftSerial - попробуйте ее уменьшить, а лучше подключить ESP8266 к hardware UART
3. Не увидел - проверяете ли вы свободную память Arduino. Проверьте
4. [inline]delay(2000)[/inline] вовсе не гарантирует, что ESP успеет за это время
5. Некоторые садят REST ESP8266 на какой-нибудь пин Arduino и перезагружают ESP8266 время от времени - это обычно немного помогает
Спасибо за оперативный ответ!!!
1. Этот вопрос наверно и есть самый интересный. Возможно ли стабильная работа на АТ. Мне мой проект нравится....:)
2. Понижал
3. Проверил. Вроде всё ок.
4. я вообще закоментировал delay(2000) . замечаний пока к старту нет
5. в моём проекте пока рано думать о ресетах:(


_SS_MAX_RX_BUFF=256
BOUD=57600

# reset module>
[HASHTAG]#1745[/HASHTAG] 0\0:AT+RST
OK
# test esp8266>AT OK
# speed baud>
[HASHTAG]#2071[/HASHTAG] 0\0:AT+CIOBAUD=?

+CIOBAUD:(9600-921600)
OK

# test esp8266>AT OK
# configure for multiple connections 1>AT+CIPMUX=1 OK
# turn on server on port 80>AT+CIPSERVER=1,80 OK
# version flash>
[HASHTAG]#2698[/HASHTAG] 0\0:AT+GMR

0018000902
OK

# AT esp8266>AT OK
# AT esp8266>AT OK
[HASHTAG]#3006[/HASHTAG] 0\0:# flush()
# init end -----150---------1----------------------------
# main loop ---------------------------------
0018000902
в данный момент стоит ESP_8266_v0.9.2.2 AT Firmware.bin
не пошла прошивка at023sdk101flash512k.bin. Такое ощущение, что скорость по умолчанию 115200 и я не стал сегодня заморачиваться с понижением скорости.
старт проходит без нареканий

Если запустить таймер кнопкой "Start count!", клиент посылает по 7 запросов в секунду на ip 192.168.1.4.
Если ничего не трогать, то обрабатывается > 10000 запросов.
Скорость обработки 1 запроса около 150 милисекунд(минимум видел 110)

Если же параллельно послать запрос из другого клиента(из соседней закладки или с мобильного устройства обратиться к http:\\192.168.1.4 ) , то в 90% случаях esp8266 падает.

[HASHTAG]#14772[/HASHTAG] 5\0\781:Link

loop [1]
# 17 124\0\777:++++++++++++++++++++++++ +IPD0
# 38 245\1\731:Start positive_response
# 59 244\1\731:format HTTP response
# 62 244\0\453:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 83 0\0\453:send response...>
# 135 141\0\453:send response ok
++++++++++++++++++++++++

# 136 140\0\781:ATIPSEND=0,131

> TTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 60

ARDUINO UNO (1, 0)pin11=0pin12=0pin13=0time=61BABAROBOT
# 195 10\0\781:
SEND OK

[HASHTAG]#3579[/HASHTAG] 5\0\781:Link

# 58 38\0\781:
loop [2]
# 6 139\0\777:++++++++++++++++++++++++ +IPD1
# 27 255\1\731:Start positive_response
# 46 244\1\731:format HTTP response
# 49 244\0\453:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 69 0\0\453:send response...>
# 122 142\0\453:send response ok
++++++++++++++++++++++++

# 123 141\0\781:ATIPSEND=1,131

> HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 60

ARDUINO UNO (2, 1)pin11=0pin12=0pin13=0time=48BABAROBOT
# 188 10\0\781:
SEND OK

[HASHTAG]#1369[/HASHTAG] 27\0\781:
loop [3]
# 4 132\0\777:++++++++++++++++++++++++ +IPD1
# 26 255\1\731:Start positive_response
# 45 244\1\731:format HTTP response
# 49 244\0\453:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 68 0\0\453:send response...>
# 121 141\0\453:send response ok
++++++++++++++++++++++++

# 122 140\0\781:ATIPSEND=1,131

> TTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 60

ARDUINO UNO (3, 1)pin11=0pin12=0pin13=0time=48BABAROBOT
# 198 10\0\781:
SEND OK
# 198 10\0\781: формат приглашения #микросекунды с начало цикла \ размер буфера обмена\ признак заполнения буфера \ свободная память Arduino

[HASHTAG]#1043[/HASHTAG] 30\0\781:
loop [35]
# 5 137\0\777:++++++++++++++++++++++++ +IPD0
# 27 255\1\731:Start positive_response
# 45 244\1\731:format HTTP response
# 49 244\0\450:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 70 0\0\450:send response...>
# 122 143\0\450:send response ok
++++++++++++++++++++++++

# 124 142\0\781:ATIPSEND=0,132

> QяTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 61

ARDUINO UNO (35, 0)pin11=0pin12=0pin13=0time=48BABAROBOT
# 53 5\0\781:Link

loop [36]
# 18 122\0\777:++++++++++++++++++++++++ +IPD1
# 38 243\1\731:Start positive_response
# 60 247\1\731:format HTTP response
# 64 247\0\450:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gzK
<<
# 83 0\0\450:send response...>
# 148 218\0\450:send response ok
++++++++++++++++++++++++

# 150 217\0\781:ATIPSEND=1,132

buтЃ№rj„Eх).1 200 OK

ДХНЃљЙЙ©Ў¬¬Ys-Control-Allow-Origin: *

ДХНЃљИЙ©ЎЁW–t-Length: 61

ХНЃљrr¤Ё(Х!¬]^K—.
U%9Ѓ9яO (36, 1)
ДХНЃљИЙ©!-¦LП0
ДХНЃљИЙ©!-N¦П0
ХНЃљrr¤Л
я быстро нажал на клиенте f5 (обновил браузер)
В логах это 35-36 номера запросов

в итоге 1-35 запросы жили на одном канале (к примеру №0) и отвечали нормально;
36 запрос прыгнул на канал №1 и я так понимаю чуть не вовремя.....ответ развалился и не был получен клиентом;
37 и далее запросы еще обрабатываются ESP, но формирование ответа уже не возможно

loop [37]
# 5 227\0\777:++++++++++++++++++++++++ +IPD2
# 29 255\1\731:Start positive_response
# 31 244\0\731:format HTTP response
# 34 244\0\450:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 55 0\0\450:send response...>
# 120 214\0\450:send response ok
++++++++++++++++++++++++

# 121 213\0\781:ATIPSEND=2,132

ФНељrr¤Љ/1.1 200 OK

ДХНЃ№r¬H(Ц¬®о-Control-Allow-Origin: *

ДХНЃљИЙ©ЎЁW–t-Length: 61

ФНељrr¤Ё(Х!¬]^.“CўU§O NO (37, 2)
ДХНЃљИЙ©!-¦LП0
ФНељrr¤Л
[HASHTAG]#283985[/HASHTAG] 101\0\781:0
ДХНЃљrr¤Л0
ДХНЃ№r¤H€W[YП33
ДХНЃrrjDJ”JЉхLink

loop [38]
# 5 234\1\777:++++++++++++++++++++++++ +IPD0
# 24 255\1\731:Start positive_response
# 25 235\0\731:Setup pin=11
# 27 235\0\731:format HTTP response
# 31 235\0\450:ClearBuffer..1..>>
HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gzip, deflate, sdch
<<
# 53 0\0\450:send response...>
# 118 218\0\450:send response ok
++++++++++++++++++++++++

# 119 217\0\781:ATIPSEND=0,132

ХНЃљrr¤ЉЄ1.1 200 OK

ФНељrr¤(ЫЦ®о-Control-Allow-Origin: *

ДХНЃљИЙ©ЎЁW–t-Length: 61

ДХНЃљЙЙ©Ў(ЄC±]| s..(J%9Ѓ9яO (38, 0)
ДХНЃљrr¤Л1
ДХНЃљИЙ©!-&¦П0
ДХНЃљИЙ©!-N¦0
ДХНЃ№r¤H€WmYП30
ДХНЃ№r¬HH”ЁPOBOT#394901 0\0\781:second 1

[HASHTAG]#8212[/HASHTAG] 5\0\781:Link

loop[39]
# 15 119\0\777:++++++++++++++++++++++++ +IPD2
# 36 246\1\731:Start positive_response
# 58 244\1\731:format HTTP response
# 62 244\0\450:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 81 0\0\450:send response...>
# 146 215\0\450:send response ok
++++++++++++++++++++++++

# 149 214\0\781:ATIPSEND=2,132

ФНељrr¤ЉЄ1.1 200 OK

ДХНЃ№r¬H(Ц¬®о-Control-Allow-Origin: *

ДХНЃљИЙ©ЎЁW–t-Length: 61

ХНЃљrr¤Ё(Х!¬]^.“CўU§O Uћя (39, 2)
ДХНЃљИЙ©!-¦LП1
ДХНЃљИЙ©!-N¦П0
ХНЃљrr¤Л
 
Последнее редактирование:

Denisww

New member
хочется увидеть сообщение об ошибке после отправки сообщения,в тексте выделенном красным !!!

loop[39]
# 15 119\0\777:++++++++++++++++++++++++ +IPD2
# 36 246\1\731:Start positive_response
# 58 244\1\731:format HTTP response
# 62 244\0\450:ClearBuffer..1..>>
et HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: null
Accept: */*
Accept-Encoding: gz<<
# 81 0\0\450:send response...>
# 146 215\0\450:send response ok
++++++++++++++++++++++++

# 149 214\0\781:ATIPSEND=2,132

ФНељrr¤ЉЄ1.1 200 OK

ДХНЃ№r¬H(Ц¬®о-Control-Allow-Origin: *

ДХНЃљИЙ©ЎЁW–t-Length: 61

ХНЃљrr¤Ё(Х!¬]^.“CўU§O Uћя (39, 2)
ДХНЃљИЙ©!-¦LП1
ДХНЃљИЙ©!-N¦П0
ХНЃљrr¤Л
 
Последнее редактирование модератором:

Victor

Administrator
Команда форума
в данный момент стоит ESP_8266_v0.9.2.2 AT Firmware.bin
на прошивке из SDK 0.9.2 никогда стабильно работать не будет, бесполезно пытаться.

Попробуйте AT v0.22 SDK 1.0.0 20.03.2015 загрузчик v1.2, AT v0.23 SDK 1.0.1 flash 512k, AT v0.23 SDK 1.0.1 No Cloud Update 512k
У всех скорость 115200. Снижение скорости не проблема - всего одна команда AT+UART_DEF, описание всех AT команд ESP8266 AT команды v0.22
 

Victor

Administrator
Команда форума
Есть еще вариант воспользоваться готовой библиотекой (ну или посмотреть как в ней сделано)
WeeESP8266 и Документация
Отличие этой библиотеки от остальных в том, что она поддерживает две версии AT команд:
AT v0.18 - это большинство глючных стоковых и прошивок и
AT v0.22 - более менее стабильные прошивки.
 

Denisww

New member
Перепрошивка на 23 версию улучшила ситуацию.
Теперь напрягает
busy s...
 
Сверху Снизу