0

Problem Statement I want my NodeMCU to fetch latest updated data from URL each time of the loop. Currently it does not update the content fetched.

For example, Link: http://abcdxyz.xyz/io.php has just the digits 223838. Once the NodeMCU starts running, & the link's information gets updated to 240000, Yet the Arduino Serial Printer is showing 223838 even after the link getting updated on the server.

Here is my code:

#include "ESP8266WiFi.h"
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
# define LED D4 // Use built-in LED which connected to D4 pin or GPIO 2

String serverName = "http://abcdxyz.xyz/";
unsigned long timerDelay = 5000;
unsigned long lastTime = 0;


// WiFi parameters to be configured
const char* ssid = "XXXXXXXXX";
const char* password = "XXXXXXXXXX";


void setup() {
  pinMode(LED, OUTPUT);     // Initialize the LED as an output
  Serial.begin(9600);
  // Connect to WiFi
  WiFi.begin(ssid, password);

  // while wifi not connected yet, print '.'
  // then after it connected, get out of the loop
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  //print a new line, then print WiFi connected and the IP address
  Serial.println("");
  Serial.println("WiFi connected");
  // Print the IP address
  Serial.println(WiFi.localIP());

}

void loop() {

  //Calling An URL FOR DATA


   if ((WiFi.status() == WL_CONNECTED)) { //Check the current connection status
 
    HTTPClient http;
 
    http.begin("http://abcdxyz.xyz/io.php"); //Specify the URL
    int httpCode = http.GET();                                        //Make the request
 
    if (httpCode > 0) { //Check for the returning code
 
        String payload = http.getString();
        Serial.println(httpCode);
        Serial.println(payload);
      }
 
    else {
      Serial.println("Error on HTTP request");
    }
 
    http.end(); //Free the resources
  }
 
  delay(1000);

  //Calling URL ENDS
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);

}

1 Answer 1

0

Figured it out. The link has to be a new link each time to GET the latest records. Follow the codes below:

void loop() {

  //Calling An URL FOR DATA


   if ((WiFi.status() == WL_CONNECTED)) { //Check the current connection status
 
    HTTPClient http;
 randNumber = random(1, 99999);

 String crow = "http://abcdxyz.xyz/io.php?tag=";
 crow += randNumber;
 Serial.println(crow);


http.begin(crow); //Specify the URL

    int httpCode = http.GET();     //Make the request
 
    if (httpCode > 0) { //Check for the returning code
 
        String payload = http.getString();
        Serial.println(httpCode);
        Serial.println(payload);
      }
 
    else {
      Serial.println("Error on HTTP request");
    }
 
    http.end(); //Free the resources
  }
 
  delay(1000);

  //Calling URL ENDS
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);

}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.