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

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

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

基于ESP32和OLED顯示屏的互聯(lián)網(wǎng)時(shí)鐘

科技觀察員 ? 來源:circuitdigest ? 作者:里沙布·耆那教 ? 2022-11-11 17:21 ? 次閱讀

為了盡量減少硬件要求,我們將在不使用RTC模塊的情況下制作互聯(lián)網(wǎng)時(shí)鐘。與RTC時(shí)鐘相比,這更準(zhǔn)確。ESP32 是一個(gè) Wi-Fi 模塊,可以輕松連接到互聯(lián)網(wǎng),因此我們將使用 NTP(網(wǎng)絡(luò)時(shí)間協(xié)議)和 UDP(用戶數(shù)據(jù)報(bào)協(xié)議)使用 Wi-Fi 從互聯(lián)網(wǎng)上獲取時(shí)間。

什么是 NTP??

網(wǎng)絡(luò)時(shí)間協(xié)議(NTP) 是一種網(wǎng)絡(luò)協(xié)議,用于在系統(tǒng)和數(shù)據(jù)網(wǎng)絡(luò)之間同步時(shí)間。NTP 框架依賴于 Internet Time 服務(wù)器。NTP 具有精確調(diào)整一天中時(shí)間的算法。NTP 服務(wù)器具有使用 UDP端口 123 將時(shí)鐘的時(shí)間發(fā)送到客戶端計(jì)算機(jī)的軟件。因此,在本項(xiàng)目中,我們將使用 ESP32 從 NTP 服務(wù)器獲取時(shí)間,并將其顯示在 OLED 顯示屏上。

pYYBAGNuFC2AVivHAAA89qPXeiU299.png

所需材料:

ESP32

128*64 OLED顯示屏

面包板

公母線

電路圖:

poYBAGNuFC-AHlVRAACLpONoPMQ311.png

在這里,我們使用SPI 模式將 128×64 OLED 顯示模塊 (SSD1306) 連接到 ESP32。因此,它將使用 7 個(gè)引腳。與 ESP32 的連接方式如下:

OLED 的 CS(片選)引腳 -ESP32 的 > 引腳 D5

OLED 的直流引腳 -ESP32 的 > 引腳 D4

OLED 的 RES 引腳 -ESP32 的 > 引腳 D2

OLED 的 SDA 引腳 -> 引腳 D23 即 ESP32 的 MOSI

OLED 的 SCK 引腳 -> 引腳 D18 即 ESP32 的 SCK

OLED 的 Vdd -ESP32 的 > Vcc

OLED 的 GND -ESP32 的 GND >

我們包含了所有庫和定義的變量,用于輸入Wi-Fi名稱和密碼。

#include

#include

#include

#include

#include

#include

const char* ssid = "*******"; //WiFi Name

const char* password = "*********"; // WiFi Password

這里NTPClient.h庫用于連接時(shí)間服務(wù)器。NTP 服務(wù)器需要時(shí)間并保持同步。HhreWiFiUdp.h庫用于發(fā)送和接收UDP消息。UDP 是一種從我們的系統(tǒng)向 NTP 服務(wù)器發(fā)送和接收短消息的協(xié)議。

因此,為了從互聯(lián)網(wǎng)上獲取時(shí)間,我們必須在程序中為 NTP 定義三個(gè)變量。

NTP_OFFSET哪個(gè)是您所在國(guó)家/地區(qū)的時(shí)區(qū),即對(duì)于印度,它是+5:30小時(shí)。所以它是 19800 秒。

NTP_INTERVAL這是 NTP 更新時(shí)間所花費(fèi)的時(shí)間間隔。它是60-64秒。

NTP_ADDRESS是您所在國(guó)家/地區(qū)的 NTP 服務(wù)器。對(duì)于印度,您可以使用“in.pool.ntp.org”。

#define NTP_OFFSET 19800 // In seconds

#define NTP_INTERVAL 60 * 1000 // In miliseconds

#define NTP_ADDRESS "1.asia.pool.ntp.org"

WiFiUDP ntpUDP;

NTPClient timeClient(ntpUDP, NTP_ADDRESS, NTP_OFFSET, NTP_INTERVAL);

在設(shè)置功能中,初始化 Wi-Fi 設(shè)置以連接互聯(lián)網(wǎng)。

void setup()

{

display.begin();

Serial.begin(9600);

Serial.println();

Serial.println();

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED)

{

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi connected.");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());

timeClient.begin();

然后初始化顯示函數(shù)以在OLED上顯示時(shí)間。

display.begin(SSD1306_SWITCHCAPVCC);

在循環(huán)函數(shù)中,我們使用了timeClient.update(),這個(gè)函數(shù)以字符串的形式從NTP獲取更新的時(shí)間,并將其存儲(chǔ)在formattedTime變量中。然后使用 display.println() 函數(shù)在 OLED 上顯示它。

void loop()

{

timeClient.update();

String formattedTime = timeClient.getFormattedTime();

display.clearDisplay();

display.setTextSize(2); // set these parameters according to your need..

display.setCursor(0, 0);

display.println(formattedTime);

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

    關(guān)注

    54

    文章

    11076

    瀏覽量

    102631
  • wi-fi
    +關(guān)注

    關(guān)注

    14

    文章

    2098

    瀏覽量

    124247
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    952

    瀏覽量

    16994
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用ESP32OLED顯示時(shí)間的方式

    在本教程中,我們將了解實(shí)時(shí)時(shí)鐘 (RTC) 及其與 ESP32OLED 顯示器的接口。
    的頭像 發(fā)表于 11-14 16:40 ?1.1w次閱讀
    使用<b class='flag-5'>ESP32</b>在<b class='flag-5'>OLED</b>上<b class='flag-5'>顯示</b>時(shí)間的方式

    凌度DT298記錄儀,首次采用OLED顯示屏的品牌

    DT298第三代聯(lián)網(wǎng)記錄儀作為車聯(lián)網(wǎng)產(chǎn)品之一,快速更新更具吸引廣大車主,凌度DT298最大特點(diǎn)就是采用OLED顯示屏,OLED
    發(fā)表于 12-28 18:51

    OLED顯示屏與NodeMCU ESP8266連接的方法

    /thread-1183-1-1.html在本篇文章中,我們將OLED顯示屏與NodeMCU ESP8266連接。 NodeMCU是一個(gè)開源的物聯(lián)網(wǎng)平臺(tái),包括運(yùn)行在Espressif
    發(fā)表于 11-01 09:17

    ESP8266驅(qū)動(dòng)OLED顯示屏的方法

    ??ESP8266驅(qū)動(dòng)OLED顯示屏。使用SPI協(xié)議將單色7引腳SSD1306 0.96 OLED顯示屏與NodeMCU連接,學(xué)習(xí)其基本的使
    發(fā)表于 11-03 08:53

    如何利用ESP8266和OLED顯示屏來做一個(gè)網(wǎng)絡(luò)時(shí)鐘

    如何利用ESP8266和OLED顯示屏來做一個(gè)網(wǎng)絡(luò)時(shí)鐘呢?有哪些制作步驟?
    發(fā)表于 02-15 06:11

    在數(shù)字時(shí)鐘項(xiàng)目中使用ESP8266,ISP失去互聯(lián)網(wǎng)連接怎么解決?

    我在數(shù)字時(shí)鐘項(xiàng)目中使用 ESP8266。我遇到的問題是我的 ISP 偶爾會(huì)斷開互聯(lián)網(wǎng)連接。該程序發(fā)現(xiàn)它仍然連接到 WiFi,但是當(dāng)它嘗試從互聯(lián)網(wǎng)檢索時(shí)間時(shí),它會(huì)循環(huán)直到 ISP 重新建
    發(fā)表于 05-30 06:19

    Nodemcu連接OLED顯示屏顯示位圖圖像

    /thread-1183-1-1.html在本篇文章中,我們將OLED顯示屏與NodeMCU ESP8266連接。 NodeMCU是一個(gè)開源的物聯(lián)網(wǎng)平臺(tái),包括運(yùn)行在Espressif
    發(fā)表于 10-25 15:36 ?21次下載
    Nodemcu連接<b class='flag-5'>OLED</b><b class='flag-5'>顯示屏</b>并<b class='flag-5'>顯示</b>位圖圖像

    基于ESP32構(gòu)建一個(gè)具有3.5英寸大顯示屏互聯(lián)網(wǎng)廣播設(shè)備

    在這個(gè)項(xiàng)目中,我將使用便宜的 ESP32 板構(gòu)建一個(gè)具有 3.5 英寸大顯示屏互聯(lián)網(wǎng)廣播設(shè)備。
    發(fā)表于 07-21 17:05 ?2783次閱讀
    基于<b class='flag-5'>ESP32</b>構(gòu)建一個(gè)具有3.5英寸大<b class='flag-5'>顯示屏</b>的<b class='flag-5'>互聯(lián)網(wǎng)</b>廣播設(shè)備

    互聯(lián)網(wǎng)OLED時(shí)鐘開源分享

    電子發(fā)燒友網(wǎng)站提供《互聯(lián)網(wǎng)OLED時(shí)鐘開源分享.zip》資料免費(fèi)下載
    發(fā)表于 10-20 17:41 ?1次下載
    <b class='flag-5'>互聯(lián)網(wǎng)</b><b class='flag-5'>OLED</b><b class='flag-5'>時(shí)鐘</b>開源分享

    使用TTGO ESP32和Visuino從互聯(lián)網(wǎng)獲取股票數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《使用TTGO ESP32和Visuino從互聯(lián)網(wǎng)獲取股票數(shù)據(jù).zip》資料免費(fèi)下載
    發(fā)表于 11-04 09:29 ?0次下載
    使用TTGO <b class='flag-5'>ESP32</b>和Visuino從<b class='flag-5'>互聯(lián)網(wǎng)</b>獲取股票數(shù)據(jù)

    使用TTGO ESP32和Visuino從互聯(lián)網(wǎng)上獲取天氣數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《使用TTGO ESP32和Visuino從互聯(lián)網(wǎng)上獲取天氣數(shù)據(jù).zip》資料免費(fèi)下載
    發(fā)表于 11-07 15:22 ?0次下載
    使用TTGO <b class='flag-5'>ESP32</b>和Visuino從<b class='flag-5'>互聯(lián)網(wǎng)</b>上獲取天氣數(shù)據(jù)

    帶有ESP32OLED顯示屏的Instagram追隨者計(jì)數(shù)器

    電子發(fā)燒友網(wǎng)站提供《帶有ESP32OLED顯示屏的Instagram追隨者計(jì)數(shù)器.zip》資料免費(fèi)下載
    發(fā)表于 12-14 09:55 ?0次下載
    帶有<b class='flag-5'>ESP32</b>和<b class='flag-5'>OLED</b><b class='flag-5'>顯示屏</b>的Instagram追隨者計(jì)數(shù)器

    使用基于ESP32的Web服務(wù)器的互聯(lián)網(wǎng)控制LED

    電子發(fā)燒友網(wǎng)站提供《使用基于ESP32的Web服務(wù)器的互聯(lián)網(wǎng)控制LED.zip》資料免費(fèi)下載
    發(fā)表于 12-20 10:09 ?2次下載
    使用基于<b class='flag-5'>ESP32</b>的Web服務(wù)器的<b class='flag-5'>互聯(lián)網(wǎng)</b>控制LED

    帶GPS和OLED顯示屏ESP32開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《帶GPS和OLED顯示屏ESP32開發(fā)板.zip》資料免費(fèi)下載
    發(fā)表于 12-28 09:43 ?2次下載
    帶GPS和<b class='flag-5'>OLED</b><b class='flag-5'>顯示屏</b>的<b class='flag-5'>ESP32</b>開發(fā)板

    OLED顯示屏的LoRa節(jié)點(diǎn)和3個(gè)帶ESP32的繼電器

    電子發(fā)燒友網(wǎng)站提供《帶OLED顯示屏的LoRa節(jié)點(diǎn)和3個(gè)帶ESP32的繼電器.zip》資料免費(fèi)下載
    發(fā)表于 12-29 14:03 ?0次下載
    帶<b class='flag-5'>OLED</b><b class='flag-5'>顯示屏</b>的LoRa節(jié)點(diǎn)和3個(gè)帶<b class='flag-5'>ESP32</b>的繼電器