Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Общие вопросы по esp8266", создана пользователем cc_coba, 10 июн 2015.

Статус темы:
Закрыта.
  1. cc_coba

    cc_coba Новичок

    Сообщения:
    5
    Симпатии:
    1
    подключился к роутеру,
    пытаюсь отправить запрос на сайт и получить от него ответ

    Код (Text):
    1. AT+CIPSTART="TCP","google.com",80 CONNECT
    2.  
    3. OK
    4. AT+CIPSEND=16
    5. OK
    6. > GET / HTTP/1.1\r\n
    7. SEND OK
    8. CLOSED
    9. AT+PING="google.com" +136
    10.  
    11. OK
    12.  
    по идее дальше должен придти ответ от сайта (+IPD ...), но почему то его нет

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

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Детали будут?
     
  3. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.135
    Симпатии:
    1.311
    Код (Text):
    1.  
    2. ready
    3. >AT+GMR
    4.  
    5. AT version:0.24.0.0(May 22 2015 19:20:14)
    6. SDK version:1.1.0
    7. http://esp8266.ru/
    8.  
    9. OK
    10. >AT+CWMODE_DEF=1
    11.  
    12.  
    13. OK
    14. >AT+CWJAP_DEF="AP_name","AP_password"
    15.  
    16. WIFI CONNECTED
    17. WIFI GOT IP
    18.  
    19. OK
    20. >AT+CIPSTART="TCP","www.google.com",80
    21.  
    22. CONNECT
    23.  
    24. OK
    25. >AT+CIPSEND=44
    26.  
    27.  
    28. OK
    29. > (далее передается: GET / HTTP/1.1$0D$0AHost: www.google.com$0D$0A$0D$0A$0D$0A$0D$0A, но не отображается)
    30. Recv 44 bytes
    31.  
    32. SEND OK
    33.  
    34. +IPD,521:HTTP/1.1 302 Found
    35. Cache-Control: private
    36. Content-Type: text/html; charset=UTF-8
    37. Location: http://www.google.ru/?gfe_rd=cr&ei=DnB4Vfm1NOyO8QePi4CwDw
    38. Content-Length: 258
    39. Date: Wed, 10 Jun 2015 17:12:46 GMT
    40. Server: GFE/2.0
    41. Alternate-Protocol: 80:quic,p=0
    42.  
    43. <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>.
    44. </BODY></HTML>
    45. >AT+CIPCLOSE
    46.  
    47. CLOSED
    48.  
    49. OK
     
    JustACat нравится это.
  4. cc_coba

    cc_coba Новичок

    Сообщения:
    5
    Симпатии:
    1
    Код (Text):
    1. AT+GMR AT version:0.21.0.0
    2. SDK version:0.9.5
    3.  
    прошивал как написано тут
    http://esp8266.ru/esp8266-obnovlenie-proshivki-xtcom_util/
    прошивку брал там же

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

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

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

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    Советую повторить все команды которые привел pvvx и результат выложить. Иначе долго можно догадываться, что у Вас происходит.
     
  6. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.135
    Симпатии:
    1.311
    Части команд нет в старых прошивках. Он хочет, чтобы вы за него не только написали дипломную работу, но и перепрограммировали ему модуль на новую версию AT, как нибудь, через интернет :)
     
  7. laki

    laki Новичок

    Сообщения:
    5
    Симпатии:
    1
    [​IMG]

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

    cc_coba Новичок

    Сообщения:
    5
    Симпатии:
    1
    Код (Text):
    1. ready
    2. AT
    3. OK
    4. AT+GMR AT version:0.21.0.0
    5. SDK version:0.9.5
    6.  
    7. OK
    8. AT+CWMODE_DEF
    9. ERROR
    10. AT+CWMODE_CUR=1
    11. ERROR
    12. AT+CWMODE=1
    13. OK
    14. AT+RST
    15. OK
    16. 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}
    17. ready
    18. AT+CWJAP="my_router","my_pass"
    19. OK
    20. AT+CIPSTART="TCP","www.google.com",80 CONNECT
    21.  
    22. OK
    23. AT+CIPSEND=44
    24. OK
    25. > GET / HTTP/1.1$0D$0AHost: www.google.com$0D$0A$0D$0A$0D$0A$0D$0A
    26. busy s...
    27.  
    28. SEND OK
    29.  
    дипломную работу писать не надо. просто я думал что на форуме есть люди, которые знают как отправить get-запрос и получить результат
     
    Последнее редактирование: 14 июн 2015
  9. cc_coba

    cc_coba Новичок

    Сообщения:
    5
    Симпатии:
    1
    взял тут Вашу прошивку

    Код (Text):
    1. AT
    2. OK
    3. AT+GMR AT version:0.25.0.0(Jun  5 2015 16:27:16)
    4. SDK version:1.1.1
    5. http://esp8266.ru/
    6.  
    7. OK
    8. AT+CWMODE_DEF=1
    9. OK
    10. AT+CWJAP_DEF="my_router","my_pass""
    11. WIFI CONNECTED
    12. WIFI GOT IP
    13.  
    14. OK
    15. AT+CIPSTART="TCP","www.google.com",80 CONNECT
    16.  
    17. OK
    18. AT+CIPSEND=44
    19. OK
    20. > 0A$0D$0A$0D$0A$0D$0A busy s...
    21.  
    22. Recv 44 bytes
    23.  
    24. SEND OK
    25.  
     
  10. Victor

    Victor Administrator Команда форума

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

    Ivizil Новичок

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

    laki Новичок

    Сообщения:
    5
    Симпатии:
    1
    можете выложить сюда ваш скетч, именно версию с esp8266?
     
  13. Ivizil

    Ivizil Новичок

    Сообщения:
    19
    Симпатии:
    3
    Легко!
    Что делает esp. Получает значения температуры 2-х датчиков ds18b20 и отправляет их get запросом как temp-1 и temp-2. В ответ сервер возвращает 1 или 0 исходя из ответа мы влючаем или отключаем светодиод на GPIO12. Как то так ))

    Код (C):
    1. #include <ESP8266WiFi.h>
    2. #include <OneWire.h>
    3. #include <DallasTemperature.h>
    4.  
    5. #define ONE_WIRE_BUS 2
    6. OneWire oneWire(ONE_WIRE_BUS);
    7. DallasTemperature sensors(&oneWire);
    8.  
    9. const char* ssid     = "SSID";
    10. const char* password = "PASSWORD";
    11.  
    12. const char* host = "arduino.zhodinovel.com";
    13.  
    14.  
    15. int val=0;
    16. int buff=0;
    17.  
    18. void setup() {
    19.   sensors.begin();
    20.   delay(10);
    21.   pinMode(12, OUTPUT);
    22.   WiFi.mode(WIFI_STA);
    23.   WiFi.begin(ssid, password);
    24.  
    25.   while (WiFi.status() != WL_CONNECTED)
    26.   {
    27.     delay(500);
    28.  
    29.   }
    30. }
    31. void loop()
    32. {
    33.   sensors.requestTemperatures();
    34.  
    35.   WiFiClient client;
    36.  
    37.   if (client.connect(host, 80))
    38.     {
    39.     client.print( "GET /add_data.php?");
    40.     client.print("temp-1=");
    41.     client.print( sensors.getTempCByIndex(0) );
    42.     client.print("&");
    43.     client.print("&");
    44.     client.print("temp-2=");
    45.     client.print( sensors.getTempCByIndex(1) );
    46.     client.println( " HTTP/1.1");
    47.     client.print( "Host:" );
    48.     client.println(host);
    49.     client.println( "Connection: close" );
    50.     client.println();
    51.     client.println();
    52.    
    53.     while (client.available())
    54.     {
    55.     char line = client.read();
    56.     if ( line=='1')
    57.         {
    58.         buff=1;
    59.         }
    60.         if ( line=='0')
    61.         {
    62.          buff=0;
    63.         }
    64.      }
    65.  
    66.  
    67. }
    68.   if ( buff==1)
    69.         {
    70.         digitalWrite (12, HIGH);
    71.         }
    72.         else
    73.         {
    74.           digitalWrite(12, LOW);
    75.         }
    76. }
     
    Victor нравится это.
  14. cc_coba

    cc_coba Новичок

    Сообщения:
    5
    Симпатии:
    1
    Прошил Arduino для esp8266
    проблема исчезла. Всем спасибо.
     
    Victor нравится это.
Статус темы:
Закрыта.

Поделиться этой страницей