Your new topic does not fit any of the above??? Check first. Then post here. Thanks.

Moderator: igrr

User avatar
By divya808101
#80343 The following code was working fine few days back , but since 2 days it has not been receiving any response from the server.

Code: Select all#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
 
char ssid[] = "lockit";  //  your network SSID (name)
char pass[] = "fifa2018";       // your network password
 
//Your UTC Time Zone Differance  India +5:30
char HH = 5;
char MM = 30;
 
 
unsigned int localPort = 2390;      // local port to listen for UDP packets
 
/* Don't hardwire the IP address or we won't get the benefits of the pool.
 *  Lookup the IP address for the host name instead */
//IPAddress timeServer(129, 6, 15, 28); // time.nist.gov NTP server
 
IPAddress timeServerIP; // time.nist.gov NTP server address
 
const char* ntpServerName = "time.nist.gov";
 
const int NTP_PACKET_SIZE = 48; // NTP time stamp is in the first 48 bytes of the message
 
byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets
 
// A UDP instance to let us send and receive packets over UDP
WiFiUDP udp;
 
//=======================================================================
//                     SETUP
//=======================================================================
void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println();
 
  // We start by connecting to a WiFi network
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
 
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
 
  Serial.println("Starting UDP");
  udp.begin(localPort);
  Serial.print("Local port: ");
  Serial.println(udp.localPort());
}
 
//=======================================================================
//  send an NTP request to the time server at the given address
//=======================================================================
unsigned long sendNTPpacket(IPAddress& address)
{
  Serial.println("sending NTP packet...");
  // set all bytes in the buffer to 0
  memset(packetBuffer, 0, NTP_PACKET_SIZE);
 
  // Initialize values needed to form NTP request
  // (see URL above for details on the packets)
  packetBuffer[0] = 0b11100011;   // LI, Version, Mode
  packetBuffer[1] = 0;     // Stratum, or type of clock
  packetBuffer[2] = 6;     // Polling Interval
  packetBuffer[3] = 0xEC;  // Peer Clock Precision
  // 8 bytes of zero for Root Delay & Root Dispersion
  packetBuffer[12]  = 49;
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;
 
  // all NTP fields have been given values, now
  // you can send a packet requesting a timestamp:
 
  udp.beginPacket(address, 123); //NTP requests are to port 123
  udp.write(packetBuffer, NTP_PACKET_SIZE);
  udp.endPacket();
}
 
//=======================================================================
//                        LOOP
//=======================================================================
void loop()
{
  char hours, minutes, seconds;
  //get a random server from the pool
  WiFi.hostByName(ntpServerName, timeServerIP);
 
  sendNTPpacket(timeServerIP); // send an NTP packet to a time server
  // wait to see if a reply is available
  delay(1000);
 
  int cb = udp.parsePacket();
  if (!cb) {
    Serial.println("no packet yet");
  }
  else {
    Serial.print("packet received, length=");
    Serial.println(cb);
    udp.read(packetBuffer, NTP_PACKET_SIZE);
    unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
    unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
    unsigned long secsSince1900 = highWord << 16 | lowWord;
    const unsigned long seventyYears = 2208988800UL;
    unsigned long epoch = secsSince1900 - seventyYears;
    minutes = ((epoch % 3600) / 60);
    minutes = minutes + MM; //Add UTC Time Zon
    hours = (epoch  % 86400L) / 3600;   
    if(minutes > 59)
    {     
      hours = hours + HH + 1; //Add UTC Time Zone 
      minutes = minutes - 60;
    }
    else
    {
      hours = hours + HH;
    }
   
    Serial.print("The UTC time is ");       // UTC is the time at Greenwich Meridian (GMT) 
    Serial.print(hours,DEC); // print the hour (86400 equals secs per day)
    Serial.print(':');   
    Serial.print(minutes,DEC);
   
  }
 
  delay(1000);
}

and this is the response it is getting

Code: Select allno packet yet
sending NTP packet...
packet received, length=48
The UTC time is 15:16sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
packet received, length=48
The UTC time is 15:16sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
packet received, length=48
The UTC time is 15:17sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet...
no packet yet
sending NTP packet..


the internet is working fine. I am unabketo understand the reason behind it. I tried changing the nodemcu board but still same trouble