Funktion Deklarieren

HI

Ich wollte für ein Projekt die Time Library (GitHub - PaulStoffregen/Time: Time library for Arduino) ausprobieren. Also habe ich das Beispiel "TimeNTP_ESP8266WiFi" in die Arduino IDE kopiert und habe es überprüfen lassen.

Dann kam diese Fehlermeldung: 'setSyncProvider' was not declared in this scope

Den Code habe ich noch nicht verändert.

Wie kann ich das beheben?

Gruss
Elektrocrafter 10

Die Time-Lib ordentlich nach \libraries installieren.

Gruß Tommy

Es funktioniert trotzdem noch nicht.

Gruß
Elektrocrafter10

Dann hast Du dabei was falsch gemacht. Was können wir von hier nicht sehen.

Hast Du auch die richtige Lib installiert? Wie hast Du sie installiert?

Gruß Tommy

HI
Ich habe die Zip Datei heruntergeladen und sie dann über Bibliothek einbinden--> .Zip Bibliothek hinzufügen.

Ist das falsch?

Nein, das ist die richtige vorgehensweise, denn so sorgt die IDE dafür, dass die Lib im richtigen Ordner landet.
Für das runterladen der richtigen Lib musst natürlich Du selber sorgen.
Ich weiss aber nicht, ob Du jetzt die richtige Lib runtergeladen hast, oder nicht.

Teste die Lib doch mal mit nem Beispiel, das der Lib beigefügt ist. Und prüfe im Bibliotheks-Manager , welche Version der Lib du hast und obs evt. ein Update der Lib gibt.
Teile Uns auch mit, welche Version Der Lib Du hast, und woher Du sie hast (Link zur Lib) , dann können wir besser helfen.

Ich habe die Arduino IDE nochmals neu installiert jetzt habe ich das Problem nicht mehr. jedoch kommt diese Meldung: ‘time_t’ does not name a type

mein code

#include <ESP8266wifi.h>



/*
 * Time_NTP.pde
 * Example showing time sync to NTP time source
 *
 * This sketch uses the ESP8266WiFi library
 */
 
#include <TimeLib.h> 
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char ssid[] = "*************";  //  your network SSID (name)
const char pass[] = "********";       // your network password

// NTP Servers:
IPAddress timeServer(132, 163, 4, 101); // time-a.timefreq.bldrdoc.gov
// IPAddress timeServer(132, 163, 4, 102); // time-b.timefreq.bldrdoc.gov
// IPAddress timeServer(132, 163, 4, 103); // time-c.timefreq.bldrdoc.gov


const int timeZone = 1;     // Central European Time
//const int timeZone = -5;  // Eastern Standard Time (USA)
//const int timeZone = -4;  // Eastern Daylight Time (USA)
//const int timeZone = -8;  // Pacific Standard Time (USA)
//const int timeZone = -7;  // Pacific Daylight Time (USA)


WiFiUDP Udp;
unsigned int localPort = 8888;  // local port to listen for UDP packets

void setup() 
{
  Serial.begin(9600);
  while (!Serial) ; // Needed for Leonardo only
  delay(250);
  Serial.println("TimeNTP Example");
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, pass);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  
  Serial.print("IP number assigned by DHCP is ");
  Serial.println(WiFi.localIP());
  Serial.println("Starting UDP");
  Udp.begin(localPort);
  Serial.print("Local port: ");
  Serial.println(Udp.localPort());
  Serial.println("waiting for sync");
  setSyncProvider(getNtpTime);
}

time_t prevDisplay = 0; // when the digital clock was displayed

void loop()
{  
  if (timeStatus() != timeNotSet) {
    if (now() != prevDisplay) { //update the display only if time has changed
      prevDisplay = now();
      digitalClockDisplay();  
    }
  }
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(".");
  Serial.print(month());
  Serial.print(".");
  Serial.print(year()); 
  Serial.println(); 
}



void printDigits(int digits){
  // utility for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

/*-------- NTP code ----------*/

const int NTP_PACKET_SIZE = 48; // NTP time is in the first 48 bytes of message
byte packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming & outgoing packets

time_t getNtpTime()
{
  while (Udp.parsePacket() > 0) ; // discard any previously received packets
  Serial.println("Transmit NTP Request");
  sendNTPpacket(timeServer);
  uint32_t beginWait = millis();
  while (millis() - beginWait < 1500) {
    int size = Udp.parsePacket();
    if (size >= NTP_PACKET_SIZE) {
      Serial.println("Receive NTP Response");
      Udp.read(packetBuffer, NTP_PACKET_SIZE);  // read packet into the buffer
      unsigned long secsSince1900;
      // convert four bytes starting at location 40 to a long integer
      secsSince1900 =  (unsigned long)packetBuffer[40] << 24;
      secsSince1900 |= (unsigned long)packetBuffer[41] << 16;
      secsSince1900 |= (unsigned long)packetBuffer[42] << 8;
      secsSince1900 |= (unsigned long)packetBuffer[43];
      return secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR;
    }
  }
  Serial.println("No NTP Response :-(");
  return 0; // return 0 if unable to get the time
}

// send an NTP request to the time server at the given address
void sendNTPpacket(IPAddress &address)
{
  // 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();
}

Gleiches Problem. Dann hast du die Time Library nicht oder nicht richtig installiert

wie muss ich es denn machen?

Elektrocrafter10:
wie muss ich es denn machen?

So wie es Tommy oben schon beschrieben hat.
Nur es muss die TimeLib.h sein.