0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過ESP8266/nodemcu和Arduino IDE來獲取時(shí)間

454398 ? 來源:wv ? 2019-10-09 14:28 ? 次閱讀

步驟1:您需要做的事情

對于此項(xiàng)目,您需要做的事情很少:

ESP8266/NODEMCU

使用USB電纜對其進(jìn)行編程。

步驟2:什么是NTP及其工作原理?

什么是NTP:NTP代表網(wǎng)絡(luò)時(shí)間協(xié)議。這是一個(gè)標(biāo)準(zhǔn)的Internet協(xié)議(IP),用于通過網(wǎng)絡(luò)將計(jì)算機(jī)時(shí)鐘同步到某些參考。

該協(xié)議可用于將所有聯(lián)網(wǎng)設(shè)備同步到協(xié)調(diào)世界時(shí)(UTC)。

NTP設(shè)置計(jì)算機(jī)時(shí)鐘。對于UTC,客戶端可以應(yīng)用任何本地時(shí)區(qū)偏移量或夏令時(shí)偏移量。這樣,無論位置和時(shí)區(qū)如何,客戶端都可以同步到服務(wù)器。

它將如何工作:

客戶端設(shè)備(例如ESP8266)使用端口123上的用戶數(shù)據(jù)報(bào)協(xié)議(UDP)連接到服務(wù)器。然后,客戶端將請求包發(fā)送到NTP服務(wù)器。

響應(yīng)此請求,NTP服務(wù)器發(fā)送時(shí)間戳包。

時(shí)間戳包包含多個(gè)信息,例如UNIX時(shí)間戳,準(zhǔn)確性,延遲

然后客戶端可以解析出當(dāng)前日期和時(shí)間值。

步驟3:在Arduino IDE上安裝庫

在您的Arduino IDE中,轉(zhuǎn)到庫管理器并搜索NTP,然后按照我下載的方式下載NTP客戶端庫,請參考圖像以獲取更多幫助。

步驟4:編碼部分

請復(fù)制以下代碼并將網(wǎng)絡(luò)憑據(jù)放入代碼中,然后

您需要為我設(shè)置偏移時(shí)間為19800

因?yàn)槲业臅r(shí)區(qū)是utc + 5: 30這樣

UTC +5:30 = 5.5 * 60 * 60 = 19800 UTC + 1 = 1 * 60 * 60 = 3600

計(jì)算時(shí)區(qū)并進(jìn)行編輯,然后上傳代碼。

#include“ NTPClient.h”

#include“ ESP8266WiFi.h”

#include“ WiFiUdp.h”

const char * ssid =“ ***********”;

const char * password =“ ***********”;

const long utcOffsetInSeconds = 19800;

char daysOfTheWeek [7] [12] = {“ Sunday”,“ Monday” ,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”}};

//定義NTP客戶端以獲取時(shí)間

WiFiUDP ntpUDP;

NTPClient timeClient(ntpUDP,“池。 ntp.org”,utcOffsetInSeconds);

void setup(){ WiFi.begin(ssid,password);

while(WiFi.status()!= WL_CONNECTED){

延遲(500);

Serial.print(“。”);

}

timeClient.begin();

}

void循環(huán)(){

timeClient.update();

Serial.print(daysOfTheWeek [timeClient.getDay()]);

Serial.print(“,”);

Serial.print(timeClient.getHours());結(jié)果Serial.print( “:”);結(jié)果,Serial.print(timeClient.getMinutes());結(jié)果,Serial.print( “:”);結(jié)果,斯里al.println(timeClient.getSeconds());結(jié)果,//Serial.println(timeClient.getFormattedTime());結(jié)果,延遲(1000);結(jié)果,},點(diǎn)擊

第5步:獲取時(shí)間

將代碼上傳到Esp8266之后,您可以打開串行監(jiān)視器,如果一切正常,則可以開始計(jì)時(shí)串行監(jiān)視器,因?yàn)槲铱梢栽诖斜O(jiān)視器中獲取時(shí)間。

因此,通過此項(xiàng)目,您可以連接任何顯示器,并使其成為適當(dāng)?shù)木W(wǎng)絡(luò)時(shí)鐘。因此,盡享網(wǎng)絡(luò)時(shí)鐘的樂趣。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185931
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    959

    瀏覽量

    44545
  • NODEMCU
    +關(guān)注

    關(guān)注

    13

    文章

    289

    瀏覽量

    21187
收藏 人收藏

    評論

    相關(guān)推薦

    arduino(1)--ESP8266配置

    硬件準(zhǔn)備 首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是淘寶購買的兼容arduinoESP8266模塊。 arduino配置 我使用的是arduino
    發(fā)表于 09-06 11:00

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個(gè)Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?1444次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。然而,如果不進(jìn)行燒錄,ESP8266將無法正常工作。 1. ESP8266簡介 ESP8266是一款由Espres
    的頭像 發(fā)表于 08-19 17:28 ?356次閱讀

    esp8266wifi模塊怎么連接手機(jī)

    ESP8266 WiFi模塊連接手機(jī)主要可以通過兩種方式實(shí)現(xiàn): 通過路由器連接(STA模式)和直接作為熱點(diǎn)連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過路由器連接(STA模式
    的頭像 發(fā)表于 08-19 17:27 ?693次閱讀

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
    的頭像 發(fā)表于 08-13 18:04 ?617次閱讀
    <b class='flag-5'>Arduino</b> Nano 和 <b class='flag-5'>NodeMCU</b> <b class='flag-5'>ESP8266</b> 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    ESP8266為什么不響應(yīng)Arduino?

    我是這個(gè) wifi 芯片的新手。我的問題是,當(dāng)我將其與 arduino mega 連接時(shí),我無法從 esp8266 獲得響應(yīng)。 像許多在線教程一樣,我按照說明進(jìn)行操作,但仍然無法得到任何回應(yīng)
    發(fā)表于 07-16 06:39

    如何讓兩個(gè)ESP8266可以連續(xù)地相互通信?

    大家好,我是ESP8266的新手,不懂其他語言,所以我在 Arduino IDE 中使用 Nodemcu1.0 進(jìn)行工作。從那時(shí)起,我首先將ESP8
    發(fā)表于 07-12 10:12

    通過Arduino IDEESP8266進(jìn)行編程,ESP8266崩潰的原因?

    我正在通過Arduino IDENodeMCUESP8266)進(jìn)行編程,一切正常......我可以在串行監(jiān)視器上看到傳感器讀數(shù)。 但是:
    發(fā)表于 07-12 08:28

    能將ESP8266連接到arduino UNO上,使用mesh組網(wǎng)嗎?

    現(xiàn)在已將ESP8266連接到了arduino,并且成功驅(qū)動(dòng),但是有個(gè)問題就是組網(wǎng)的問題,想使用mesh,但是還有有些疑問。1、將帶有mesh的固件燒錄到ESP8266中,就能自動(dòng)尋找節(jié)點(diǎn)了嗎?或者是下載mesh的庫函數(shù),從
    發(fā)表于 07-11 06:46

    求助,請問如何在RTOS SDK 1.5的PlatformIO IDE ESP8266實(shí)現(xiàn)MQTT?

    在這里,我使用的開發(fā)板是 NodeMcu ESP8266 V3 Lua CH340 Wifi 開發(fā)板 Development Environment -> Platform IO
    發(fā)表于 07-08 06:22

    開源項(xiàng)目!用ESP8266 DIY會(huì)爬墻的無人機(jī)

    Arduino IDE 安裝ESP8266板 安裝<span>ESP8266WiFi.h</span>庫 復(fù)制代碼并在代碼中修改自己的WIFI
    發(fā)表于 07-04 09:22

    ESP8266網(wǎng)絡(luò)天氣時(shí)鐘OLED顯示

    基于ESP8266實(shí)現(xiàn)網(wǎng)絡(luò)獲取天氣和時(shí)鐘并OLED顯示
    的頭像 發(fā)表于 06-28 04:46 ?610次閱讀
    <b class='flag-5'>ESP8266</b>網(wǎng)絡(luò)天氣時(shí)鐘OLED顯示

    通過git命令獲取ESP8266_RTOS_SDK失敗如何解決?

    本人使用的硬件平臺(tái)為esp8266,開發(fā)環(huán)境為ubuntu22.04。在通過git命令獲取ESP8266_RTOS_SDK失敗,通過上網(wǎng)搜索
    發(fā)表于 06-07 07:26

    ESP8266休眠時(shí)間不準(zhǔn)怎么解決?

    使用arduino開發(fā)esp8266,使用ESP.deepSleep(SleepTime * 1000000)進(jìn)行休眠,休眠的時(shí)間較長,需要幾十小時(shí),測試了幾次休眠3~4小時(shí)左右,每次
    發(fā)表于 06-07 07:12

    nodemcuesp8266是什么關(guān)系?

    nodemcuesp8266是什么關(guān)系 nodemcuesp8266是什么關(guān)系?通俗理解就是nodemcu是一個(gè)開發(fā)板,基于
    的頭像 發(fā)表于 10-20 14:53 ?3317次閱讀
    <b class='flag-5'>nodemcu</b>和<b class='flag-5'>esp8266</b>是什么關(guān)系?