• Система автоматизации с открытым исходным кодом на базе 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);}
Не помню почему, но с первым вариантом у меня были проблемы.
 
Сверху Снизу