kosyachniy
@kosyachniy
Python BackEnd, Web FullStack

Arduino Как зациклить получение веб страницы?

Есть рабочий код получения веб страницы с ESP8266, вот:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);

void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
mySerial.println("AT+RST");
mySerial.println("AT+GMR");
mySerial.println("AT+CWMODE_DEF=1");//_DEF
delay(50);
mySerial.println("AT+CWJAP_DEF=\"routerr\",\"1029384756\"");
delay(6000);
mySerial.println("AT+CIPSTART=\"TCP\",\"192.168.1.11\",80");
delay(50);
mySerial.println("AT+CIPSEND=43");
delay(50);
mySerial.println("GET / HTTP/1.1\r\nHost: 192.168.1.11\r\n\r\n\r\n\r\n");
//delay(5000);
//mySerial.println("AT+CIPCLOSE");
}

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

Но здесь получение происходит один раз, а нужно чтоб эта страницы приходила каждую секунду, когда я запихиваю функции получения страницы в loop происходит какой то бред: либо начинается получение до подключения к серверу, либо не успевает выводиться полученная информация, либо просто не выводится / не получается, вообщем что сделать чтобы получение происходило постоянно, я уже пытался выносить код получения в отдельную функцию и пытался циклить прямо в setup, видимо я что-то не понимаю в порядке выполнения функций, вообщем покажите примерный код, чтобы получение происходило постоянно
  • Вопрос задан
  • 810 просмотров
Пригласить эксперта
Ответы на вопрос 1
svd71
@svd71
Все дело в скорости обработки и размеров буфферов.

Лучше организовывать кольцевой буффер на прием по uart с заполнением по прерыванию. В основном цикле только проверять изменение указателей в буффере и сразу же обрабатывать полученные символы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы