Чтение обновленных последовательных данных из ESP8266

Я подключил свой ESP8266 к Arduino Uno на выводах 2 и 3 как RX и TX. Я отрегулировал скорость передачи данных и у меня нет проблем с получением данных от ESP8266.

ESP8266 подключается как клиент к серверу и захватывает количество лайков страницы Facebook. Данные на последовательном порту ESP8266 обновляются правильно каждый раз, когда ESP отправляет запрос get на сервер, чтобы получить обновленное количество лайков определенной страницы Facebook.

К сожалению, я не получаю это обновленное количество лайков на моем последовательном порту Arduino. Я всегда получаю одно и то же количество лайков. Мне приходится закрывать последовательное окно и открывать его снова, чтобы получить новое количество. Или сбрасывать Arduino, чтобы получить новое количество лайков.

Так почему же он не публикует последнее количество лайков, отправленное с ESP на Arduino мгновенно, без необходимости перезагрузки Arduino? Возможно, у меня проблема в void loop().

Потому что я отображаю эти данные на внешнем дисплее и мне нужно, чтобы они обновлялись без необходимости каждый раз перезагружать Arduino для получения последних данных.

void loop() {
  char c;
  while (esp8266.available() && c != '\n') {
    c = esp8266.read();
    response += c;
  }
  //Если конец строки
  if (c == '\n') {
    //Получаем только строку лайков
    if(likes = response.substring(response.indexOf("Likes:")+6, response.indexOf("::"))) {
      //Фильтрация некоторых ненужных строк
      if((strstr(likes.c_str(), "URL")) == NULL) {
        currentLikes = atol(likes.c_str());
        Serial.print(currentLikes);
        //Вывод количества лайков на последовательный порт
      }
      Serial.println();
    }
  }
}

, 👍0

Обсуждение

Пожалуйста, объясните, что вы здесь сделали: if(likes = response.substring(response.indexOf("Likes:")+6, response.indexOf("::"))), @keenbeginner

Если у вас есть новый вопрос, пожалуйста, задайте его, нажав кнопку [Задать вопрос](https://arduinoprosto.ru/q/ask). Включите ссылку на этот вопрос, если это поможет обеспечить контекст. - [Из обзора](/review/low-quality-posts/36646), @VE7JRO

Это не дает ответа на вопрос. Как только у вас будет достаточная [репутация](https://arduino.stackexchange.com/help/whats-reputation), вы сможете [комментировать любой пост](https://arduino.stackexchange.com/help/privileges/comment); вместо этого [предоставляйте ответы, не требующие разъяснений от спрашивающего](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [Из обзора](/review/low-quality-posts/36646), @Greenonline


1 ответ


1

Спасибо всем. Мне приходилось каждый раз очищать строку ответа.

Я только что добавил response = ""; после Serial.print(currentLikes);

,