جدول المحتويات:
- الخطوة 1: العرض التوضيحي
- الخطوة 2: التجميع
- الخطوة 3: التجميع - الجدول
- الخطوة 4: مكتبة Adafruit GFX
- الخطوة 5: مكتبة Adafruit ST7735
- الخطوة 6: مكتبة NTPClient
- الخطوة 7: ESP32_NTP.ino
- الخطوة 8: الملفات
فيديو: لا تضيع وقتك: استخدم NTP !: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
اجعل وقتك مهمًا! هذا موضوع يتم مناقشته بشكل متكرر بين المشتركين في قناتي ، ولأي سبب؟ نظرًا للحقيقة البسيطة التي لا غنى عنها وهي أنه عند إنشاء أداة تسجيل البيانات ، ولكل شيء يتعلق بالأتمتة ، فإنك تحتاج إلى الوقت الصحيح! وهناك عدة طرق لقياس الوقت: ساعة مع بطارية ، RTC (ساعة الوقت الحقيقي) ، من بين أمور أخرى. لكن الشيء الذي أريد أن أعرضه عليكم اليوم (والذي يُعلمكم بالتاريخ ويوم الأسبوع والوقت) هو NTP (بروتوكول وقت الشبكة) ، وهو متصل بالإنترنت. في هذا الفيديو ، سنسترجع معلومات التاريخ والوقت عبر الإنترنت ، ونعرض المعلومات على الشاشة.
الخطوة 1: العرض التوضيحي
الخطوة 2: التجميع
الخطوة 3: التجميع - الجدول
الخطوة 4: مكتبة Adafruit GFX
في Arduino IDE ، انتقل إلى Sketch-> Include Library-> Manage Libraries…
قم بتثبيت مكتبة Adafruit GFX
الخطوة 5: مكتبة Adafruit ST7735
في Arduino IDE ، انتقل إلى Sketch-> Include Library-> Manage Libraries…
قم بتثبيت Adafruit ST7735
الخطوة 6: مكتبة NTPClient
انتقل إلى https://github.com/taranais/NTPClient وقم بتنزيل مكتبة NTPClient المعدلة من taranais.
قم بفك ضغط المجلد ووضعه في C: / Users / Documents / Arduino / libraries
الخطوة 7: ESP32_NTP.ino
يشمل ويعرف
# تضمين # تضمين // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Pinos do display #define DISPLAY_DC 12 // A0 #define DISPLAY_CS 13 // CS #define DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define DISPLAY_RST 0 // Fuso Horário، no caso horário de verão de Brasília int timeZone = -2؛ // Struct com os dados do dia e hora Struct Date {int dayOfWeek؛ يوم int شهر int سنة int ساعات int دقائق كثافة العمليات ثواني int } ؛ // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp؛ // Objeto responsável por recuperar dados sobre horário NTPClient ntpClient (udp، // socket udp "0.br.pool.ntp.org"، // URL do servwer NTP timeZone * 3600، // Deslocamento do Horário em relacão ao GMT 0 60000) ؛ // Intervalo entre verificações online // Nomes dos dias da semana char * dayOfWeekNames = {"Sunday"، "Monday"، "Tuesday"، "Wednesday"، "Thursday"، "Friday"، "Saturday"}؛ // Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS، DISPLAY_DC، DISPLAY_MOSI، DISPLAY_CLK، DISPLAY_RST) ؛
اقامة
إعداد باطل () {Serial.begin (115200) ؛ setupDisplay () ؛ connectWiFi () ، setupNTP () ، // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask، // Função que será exátexada "wifiConnectionTask"، // Nome da tarefa 10000، // Tamanho da memória disponível (em WORDs) NULL، // Não vamos passetro nenh ، // premidade NULL، // Não precisamos de Referência para a tarefa 0) ؛ // Número do core}
الإعداد
إعداد باطل NTP () {// Inicializa o client NTP ntpClient.begin () ؛ // تحديث Espera pelo primeiro عبر الإنترنت Serial.println ("في انتظار التحديث الأول") ؛ while (! ntpClient.update ()) {Serial.print (".") ؛ ntpClient.forceUpdate () ، تأخير (500) ؛ } Serial.println () ، Serial.println ("اكتمال التحديث الأول") ؛ }
واي فاي
// Tarefa que verifica se a conexão caiu e tenta recectarvoid wifiConnectionTask (void * param) {while (true) {// Se a WiFi não está conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi () ؛ } // Delay de 100 ticks vTaskDelay (100) ؛ }}
ConnectWiFi
باطل connectWiFi () {Serial.println ("Connecting") ؛ // Troque pelo nome e senha da sua rede WiFi.begin ("SSID"، "12345678") ؛ // Espera enquanto não estiver conectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print (".")؛ تأخير (500) ؛ } Serial.println () ، Serial.print ("متصل بـ") ؛ Serial.println (WiFi. SSID ()) ؛ }
الإعداد
setupDisplay () باطل {display.initR (INITR_BLACKTAB) ، // Inicializa o display.setRotation (3) ؛ // Rotaciona display.setTextSize (2) ؛ // Tamanho do texto display.fillScreen (ST77XX_BLACK) ؛ // Preenche com a cor preta display.setCursor (0، 0)؛ // Coloca o cursor no começo display.setTextColor (ST77XX_WHITE، ST77XX_BLACK) ؛ // Texto branco com fundo preto display.setTextWrap (false) ؛ // Não pula linha automaticamente}
حلقة
الحلقة الفارغة () {// Recupera os dados sobre a data e horário Date date = getDate () ؛ // Reseta o cursor display.setCursor (0، 0)؛ // Exibe os dados no display.printf ("٪ s / n / n٪ s / n / n٪ 02d /٪ 02d /٪ d / n / n٪ 02d:٪ 02d:٪ 02d"، WiFi. SSID ().c_str () ، dayOfWeekNames [date.dayOfWeek] ، date.day ، date.month ، date.year ، date.hours ، date.minutes ، date.seconds) ؛ تأخير (100) ؛ }
GetDate
تاريخ getDate () {// Recupera os dados de data e Horário usando o client NTP char * strDate = (char *) ntpClient.getFormattedDate (). c_str ()؛ // Passa os dados da string para a Struct Date date؛ sscanf (strDate، "٪ d-٪ d-٪ dT٪ d:٪ d:٪ dZ"، & date.year، & date.month، & date.day، & date.hours، & date.minutes، & date.seconds) ؛ // Dia da semana de 0 a 6، sendo 0 o domingo date.dayOfWeek = ntpClient.getDay () ؛ تاريخ العودة؛ }
الخطوة 8: الملفات
قم بتنزيل الملفات
انا لا
بي دي إف
موصى به:
استخدم أزرار الضغط على Magicbit الخاص بك [Magicblocks]: 5 خطوات
استخدم أزرار الضغط على Magicbit [Magicblocks] الخاص بك: سيعلمك هذا البرنامج التعليمي استخدام أزرار الضغط على Magicbit باستخدام Magicblocks. نحن نستخدم Magicbit كلوحة تطوير في هذا المشروع الذي يعتمد على ESP32. لذلك يمكن استخدام أي لوحة تطوير ESP32 في هذا المشروع
استخدم مستشعر رطوبة التربة مع Magicbit [Magicblocks]: 5 خطوات
استخدم مستشعر رطوبة التربة مع Magicbit [Magicblocks]: سيعلمك هذا البرنامج التعليمي استخدام مستشعر رطوبة التربة مع Magicbit الخاص بك باستخدام Magicblocks. نحن نستخدم Magicbit كلوحة تطوير في هذا المشروع الذي يعتمد على ESP32. لذلك يمكن استخدام أي لوحة تطوير ESP32 في هذا المشروع
استخدم أدوات لوحة المعلومات مع Magicbit [Magicblocks]: 5 خطوات
استخدم أدوات لوحة المعلومات مع Magicbit [Magicblocks]: سيعلمك هذا البرنامج التعليمي استخدام Magicblocks Dashboard Widgets مع Magicbit الخاص بك. نحن نستخدم Magicbit كلوحة تطوير في هذا المشروع الذي يعتمد على ESP32. لذلك يمكن استخدام أي لوحة تطوير ESP32 في هذا المشروع
استخدم مستشعر الموجات فوق الصوتية مع Magicbit [Magicblocks]: 5 خطوات
استخدم مستشعر الموجات فوق الصوتية مع Magicbit [Magicblocks]: سيعلمك هذا البرنامج التعليمي استخدام مستشعر الموجات فوق الصوتية مع Magicbit الخاص بك باستخدام Magicblocks. نحن نستخدم Magicbit كلوحة تطوير في هذا المشروع الذي يعتمد على ESP32. لذلك يمكن استخدام أي لوحة تطوير ESP32 في هذا المشروع
استخدم الجرس على Magicbit [Magicblocks]: 4 خطوات
استخدم الجرس على Magicbit [Magicblocks]: سيعلمك هذا البرنامج التعليمي استخدام الجرس في Magicbit باستخدام Magicblocks. نحن نستخدم Magicbit كلوحة تطوير في هذا المشروع الذي يعتمد على ESP32. لذلك يمكن استخدام أي لوحة تطوير ESP32 في هذا المشروع