Решено отправка get запроса на сайт

Статус
В этой теме нельзя размещать новые ответы.

cc_coba

New member
подключился к роутеру,
пытаюсь отправить запрос на сайт и получить от него ответ

Код:
AT+CIPSTART="TCP","google.com",80 CONNECT

OK
AT+CIPSEND=16
OK
> GET / HTTP/1.1\r\n
SEND OK
CLOSED
AT+PING="google.com" +136

OK
по идее дальше должен придти ответ от сайта (+IPD ...), но почему то его нет

подскажите пожалуйста где копать?
 

pvvx

Активный участник сообщества
Код:
ready
>AT+GMR

AT version:0.24.0.0(May 22 2015 19:20:14)
SDK version:1.1.0
http://esp8266.ru/

OK
>AT+CWMODE_DEF=1


OK
>AT+CWJAP_DEF="AP_name","AP_password"

WIFI CONNECTED
WIFI GOT IP

OK
>AT+CIPSTART="TCP","www.google.com",80

CONNECT

OK
>AT+CIPSEND=44


OK
> (далее передается: GET / HTTP/1.1$0D$0AHost: www.google.com$0D$0A$0D$0A$0D$0A$0D$0A, но не отображается)
Recv 44 bytes

SEND OK

+IPD,521:HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.ru/?gfe_rd=cr&ei=DnB4Vfm1NOyO8QePi4CwDw
Content-Length: 258
Date: Wed, 10 Jun 2015 17:12:46 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic,p=0

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>302 Moved</TITLE></HEAD><BODY><H1>302 Moved</H1>The document has moved<A HREF="http://www.google.ru/?gfe_rd=cr&amp;ei=DnB4Vfm1NOyO8QePi4CwDw">here</A>.
</BODY></HTML>
>AT+CIPCLOSE

CLOSED

OK
 

cc_coba

New member
Код:
AT+GMR AT version:0.21.0.0
SDK version:0.9.5
прошивал как написано тут
http://esp8266.ru/esp8266-obnovlenie-proshivki-xtcom_util/
прошивку брал там же

работаю через arduino uno с отсоединенным чипом.
rx tx подключаю напрямую, но и с делителями напряжение результат аналогичный.

моя задача обратиться к скрипту на сайте и получить от него данные.

посоветуйте что-нибудь, а то диплом скоро :(
 

pvvx

Активный участник сообщества
Советую повторить все команды которые привел pvvx и результат выложить. Иначе долго можно догадываться, что у Вас происходит.
Части команд нет в старых прошивках. Он хочет, чтобы вы за него не только написали дипломную работу, но и перепрограммировали ему модуль на новую версию AT, как нибудь, через интернет :)
 

laki

New member


тут вот чел говорит что "busy s" esp выдает если поток комманд идет очень быстро, и мол модуль впадает в состояние "busy s" и помогает только ребут модуля
но я хз, я то никуда не топорлюсь, всё медленно делаю
 
Последнее редактирование:

cc_coba

New member
Советую повторить все команды которые привел pvvx и результат выложить. Иначе долго можно догадываться, что у Вас происходит.
Код:
ready
AT
OK
AT+GMR AT version:0.21.0.0
SDK version:0.9.5

OK
AT+CWMODE_DEF
ERROR
AT+CWMODE_CUR=1
ERROR
AT+CWMODE=1
OK
AT+RST
OK
B7 g$'ur$9%qFbC"$)!BgB( B)( HD$ eG.bh f}FE.DU!)) 9/) gDDs c+&G&E.bfC'gB(%&   FF$o1bl fCyE#&EC" $o$+Ok)+j$@$#! !!h`Ba.@n! ! ({NB:@3G{ dQB@d$_/BBGa}
ready
AT+CWJAP="my_router","my_pass"
OK
AT+CIPSTART="TCP","www.google.com",80 CONNECT

OK
AT+CIPSEND=44
OK
> GET / HTTP/1.1$0D$0AHost: www.google.com$0D$0A$0D$0A$0D$0A$0D$0A
busy s...

SEND OK
Части команд нет в старых прошивках. Он хочет, чтобы вы за него не только написали дипломную работу, но и перепрограммировали ему модуль на новую версию AT, как нибудь, через интернет :)
дипломную работу писать не надо. просто я думал что на форуме есть люди, которые знают как отправить get-запрос и получить результат
 
Последнее редактирование:

cc_coba

New member
Части команд нет в старых прошивках. Он хочет, чтобы вы за него не только написали дипломную работу, но и перепрограммировали ему модуль на новую версию AT, как нибудь, через интернет :)
взял тут Вашу прошивку

Код:
AT
OK
AT+GMR AT version:0.25.0.0(Jun  5 2015 16:27:16)
SDK version:1.1.1
http://esp8266.ru/

OK
AT+CWMODE_DEF=1
OK
AT+CWJAP_DEF="my_router","my_pass"" 
WIFI CONNECTED
WIFI GOT IP

OK
AT+CIPSTART="TCP","www.google.com",80 CONNECT

OK
AT+CIPSEND=44
OK
> 0A$0D$0A$0D$0A$0D$0A busy s...

Recv 44 bytes

SEND OK
 

Victor

Administrator
Команда форума
1. ESPlorer не позволяет вставить CR+LF в середину строки, воспользуйтесь другой терминальной программой.
2. "busy s" сообщение выходит, когда вы посылаете команду до того, как завершилось выполнение предыдущей
 

Ivizil

New member
Может есть смысл отойти от AT команд? Попробуйте в среде Ардуино. Делаю то же что и вы отправляю запрос и получаю ответ от сервера. Всё работает хорошо, но только медленно (запрос +ответ занимает около 8 сек) Если это не пугает , то можете попробовать. Вот ссылка http://habrahabr.ru/post/257115/. Код фактически один в один, только немного нужно адаптировать для esp.
 

laki

New member
Может есть смысл отойти от AT команд? Попробуйте в среде Ардуино. Делаю то же что и вы отправляю запрос и получаю ответ от сервера. Всё работает хорошо, но только медленно (запрос +ответ занимает около 8 сек) Если это не пугает , то можете попробовать. Вот ссылка http://habrahabr.ru/post/257115/. Код фактически один в один, только немного нужно адаптировать для esp.
можете выложить сюда ваш скетч, именно версию с esp8266?
 

Ivizil

New member
можете выложить сюда ваш скетч, именно версию с esp8266?
Легко!
Что делает esp. Получает значения температуры 2-х датчиков ds18b20 и отправляет их get запросом как temp-1 и temp-2. В ответ сервер возвращает 1 или 0 исходя из ответа мы влючаем или отключаем светодиод на GPIO12. Как то так ))

Код:
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

const char* ssid     = "SSID";
const char* password = "PASSWORD";

const char* host = "arduino.zhodinovel.com";


int val=0;
int buff=0;

void setup() {
  sensors.begin();
  delay(10);
  pinMode(12, OUTPUT);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  
  }
}
void loop()
{
  sensors.requestTemperatures();
 
  WiFiClient client;
 
  if (client.connect(host, 80))
    {
    client.print( "GET /add_data.php?");
    client.print("temp-1=");
    client.print( sensors.getTempCByIndex(0) );
    client.print("&");
    client.print("&");
    client.print("temp-2=");
    client.print( sensors.getTempCByIndex(1) );
    client.println( " HTTP/1.1");
    client.print( "Host:" );
    client.println(host);
    client.println( "Connection: close" );
    client.println();
    client.println();
   
    while (client.available())
    {
    char line = client.read();
    if ( line=='1')
        {
        buff=1;
        }
        if ( line=='0')
        {
         buff=0;
        }
     }
  
 
} 
  if ( buff==1)
        {
        digitalWrite (12, HIGH);
        }
        else
        {
          digitalWrite(12, LOW);
        }
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу