Πίνακας περιεχομένων:

Λήψη χρόνου από το Internet χρησιμοποιώντας το ESP8266 - Έργο ρολογιού NTP Με ESP8266 Nodemcu: 5 βήματα
Λήψη χρόνου από το Internet χρησιμοποιώντας το ESP8266 - Έργο ρολογιού NTP Με ESP8266 Nodemcu: 5 βήματα

Βίντεο: Λήψη χρόνου από το Internet χρησιμοποιώντας το ESP8266 - Έργο ρολογιού NTP Με ESP8266 Nodemcu: 5 βήματα

Βίντεο: Λήψη χρόνου από το Internet χρησιμοποιώντας το ESP8266 - Έργο ρολογιού NTP Με ESP8266 Nodemcu: 5 βήματα
Βίντεο: Πώς να φτιάξετε ρελέ Wi-Fi 4 καναλιών ESP8266 ESP01 | ESP01 Οικιακός Αυτοματισμός | RemoteXY |FLProg 2024, Ιούλιος
Anonim
Λήψη χρόνου από το Internet χρησιμοποιώντας το ESP8266 | Έργο ρολογιού NTP Με ESP8266 Nodemcu
Λήψη χρόνου από το Internet χρησιμοποιώντας το ESP8266 | Έργο ρολογιού NTP Με ESP8266 Nodemcu

Σε αυτό το σεμινάριο θα δούμε πώς να βρούμε χρόνο χρησιμοποιώντας το ESP8266/nodemcu με το Arduino IDE. Η εύρεση χρόνου είναι ιδιαίτερα χρήσιμη στην καταγραφή δεδομένων για τη χρονική σήμανση των ενδείξεων σας. Εάν το έργο σας ESP8266 έχει πρόσβαση στο Διαδίκτυο, μπορείτε να έχετε χρόνο χρησιμοποιώντας το Πρωτόκολλο ώρας δικτύου (NTP) - δεν χρειάζεστε πρόσθετο υλικό. Μπορείτε να συνδέσετε το ESP8266 στο δίκτυό σας wifi και θα είναι ένα ρολόι που θα συγχρονιστεί με δίκτυο, οπότε αν ανεβάσετε τον κώδικα θα πάρει χρόνο από το διαδίκτυο, ώστε να εμφανίζει πάντα τη σωστή ώρα.

Βήμα 1: Πράγματα που χρειάζεστε

Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε

Για αυτό το έργο θα χρειαστείτε πολύ λίγα πράγματα: Καλώδιο USB ESP8266/NODEMCUA για να το προγραμματίσετε.

Βήμα 2: Τι είναι ένα NTP και πώς θα λειτουργήσει;

Τι είναι το NTP και πώς θα λειτουργήσει
Τι είναι το NTP και πώς θα λειτουργήσει
Τι είναι το NTP και πώς θα λειτουργήσει
Τι είναι το NTP και πώς θα λειτουργήσει

Τι είναι το NTP: Ένα NTP σημαίνει πρωτόκολλο δικτύου. Είναι ένα τυπικό πρωτόκολλο Διαδικτύου (IP) για συγχρονισμό των ρολογιών του υπολογιστή σε κάποια αναφορά σε ένα δίκτυο. Το πρωτόκολλο μπορεί να χρησιμοποιηθεί για συγχρονισμό όλων των δικτυωμένων συσκευών με συντονισμένη καθολική ώρα (UTC). Το NTP ορίζει τα ρολόγια των υπολογιστών σε UTC, οποιαδήποτε τοπική ώρα μετατόπιση ζώνης ή μετατόπιση χρόνου εξοικονόμησης φωτός ημέρας εφαρμόζεται από τον πελάτη. Με αυτόν τον τρόπο, οι πελάτες μπορούν να συγχρονιστούν με διακομιστές ανεξάρτητα από τη διαφορά τοποθεσίας και ζώνης ώρας. Πώς θα λειτουργήσει για εμάς: Η συσκευή -πελάτης όπως το ESP8266 συνδέεται με τον διακομιστή χρησιμοποιώντας το πρωτόκολλο δεδομένων χρήστη (UDP) στη θύρα 123. Στη συνέχεια, ένας πελάτης μεταδίδει ένα πακέτο αιτήματος σε διακομιστή NTP. Σε απάντηση αυτού του αιτήματος, ο διακομιστής NTP στέλνει ένα πακέτο χρονικής σφραγίδας. Ένα πακέτο χρονικής σήμανσης περιέχει πολλαπλές πληροφορίες όπως χρονική σήμανση UNIX, ακρίβεια, καθυστέρηση ή ζώνη ώρας. Ένας πελάτης μπορεί στη συνέχεια να αναλύσει τις τρέχουσες τιμές ημερομηνίας και ώρας.

Βήμα 3: Εγκατάσταση της βιβλιοθήκης στο Arduino IDE

Εγκατάσταση Βιβλιοθήκης στο Arduino IDE
Εγκατάσταση Βιβλιοθήκης στο Arduino IDE

Στο Arduino IDE, μεταβείτε στον Διαχειριστή Βιβλιοθηκών και αναζητήστε το NTP και απλώς κατεβάστε τη βιβλιοθήκη του προγράμματος -πελάτη NTP όπως το κατέβασα, ανατρέξτε στην εικόνα για περαιτέρω βοήθεια.

Βήμα 4: Μέρος κωδικοποίησης

Κωδικοποιητικό Μέρος
Κωδικοποιητικό Μέρος
Κωδικοποιητικό Μέρος
Κωδικοποιητικό Μέρος

Αντιγράψτε τον ακόλουθο κώδικα και τοποθετήστε τα διαπιστευτήρια του δικτύου σας στον κωδικό σας, τότε πρέπει να ορίσετε το offsettime για μένα είναι 19800 Επειδή η ζώνη ώρας μου είναι utc+5: 30 οπότε UTC +5: 30 = 5,5*60*60 = 19800UTC+1 = 1*60*60 = 3600 Υπολογίστε τη ζώνη ώρας σας και επεξεργαστείτε την και στη συνέχεια ανεβάστε τον κώδικα.#Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" Κυριακή "," Δευτέρα ", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"}; // Ορισμός πελάτη NTP για να πάρει χρόνοWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); void setup () {Serial.begin (115200); WiFi.begin (ssid, κωδικός πρόσβασης); while (WiFi.status ()! = WL_CONNECTED) {καθυστέρηση (500); Serial.print ("."); } timeClient.begin ();} void loop () {timeClient.update (); Serial.print (daysOfTheWeek [timeClient.getDay ()]); Serial.print (","); Serial.print (timeClient.getHours ()); Serial.print (":"); Serial.print (timeClient.getMinutes ()); Serial.print (":"); Serial.println (timeClient.getSeconds ()); //Serial.println (timeClient.getFormattedTime ()); καθυστέρηση (1000);}

Βήμα 5: Λήψη ΧΡΟΝΟΥ

Λήψη TIME
Λήψη TIME

Μετά τη μεταφόρτωση του κώδικα στο Esp8266, μπορείτε να ανοίξετε τη σειριακή οθόνη και αν όλα είναι καλά, τότε θα μπορείτε να πάρετε το χρόνο στη σειριακή οθόνη, καθώς είμαι σε θέση να λαμβάνω το χρόνο στη σειριακή οθόνη μου. Έτσι, με αυτό το έργο μπορείτε να επισυνάψετε οποιαδήποτε να εμφανιστεί και να γίνει ένα σωστό ρολόι δικτύου. Διασκεδάστε λοιπόν φτιάχνοντας το ρολόι του δικτύου σας.

Συνιστάται: