• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Получение веб страницы с помощью ESP8266

kosyachniy

New member
Есть ESP8266 (подключаю к Arduino так: RX -> D11, TX -> D10, CH_PD -> 10КОм -> 3,3V, VCC,GPIO0,GPIO2 -> 3,3V; GND-> GND)
Код такой:
Код:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX (Создаем виртуальный порт Esp. подключаем на цифровые пины 10 и 11 порты TX, RX от Esp)
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "google.ru";
IPAddress ip(192, 168, 0, 2);
EthernetClient client;

void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
mySerial.println("AT+CWMODE=1");
Serial.write(mySerial.read());
delay(50);
mySerial.println("AT+CWJAP=\"routerr\",\"1029384756\"");
Serial.write(mySerial.read());
delay(50);
}

void loop()
{
if (Serial.available()) mySerial.write(Serial.read());
if (mySerial.available()) Serial.write(mySerial.read());
delay(10);

if (millis()>10000)
  {
  Ethernet.begin(mac, ip);
  delay(1000);
  Serial.println("connecting...");
  if (client.connect(server, 80))
    {
    Serial.println("---------------");
    client.println("GET / HTTP/1.1");
    client.println("Host: google.ru");
    client.println("User-Agent: arduino-ethernet");
    client.println("Connection: close");
    client.println();
    Serial.println(client.read());
    }
  else {Serial.println("connection failed");}
 //Подключение перенёс в loop, потому что иначе он не успевает подключиться к Wi-Fi; также постоянно отключается от страницы
  if (client.available())
    {
    char c = client.read();
    Serial.print(c);
    }
   else
    Serial.print("NOO");
 
  if (!client.connected())
    {
    Serial.println();
    Serial.println("---------------");
    Serial.println("disconnecting");
    client.stop();
    delay(10000);
    }
  }
}
Что происходит:

1.) Что сделать чтобы он всё таки получал содержимое страницы
Он не может получить даже одного бита, сразу отключается
2.) Почему он подключается не с первого раза
Помогите, очень важно, заранее спасибо
 

fandy

Member
1. Я сейчас играюсь с esp-01 и Arduini pro mini 8M 3.3V
У меня работает только, если esp подключен к аппаратному UART. При работе через Softwareserial очень похожая на Вашу ситуация.

2. Вместо if(Serial.available()) mySerial.write(Serial.read()); пишите что-то типа while(Serial.available()){ mySerial.write(Serial.read()); delay(10);}
Не помню почему, но с первым вариантом у меня были проблемы.
 
Сверху Снизу