0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ESP32和OLED显示屏的互联网时钟

科技观察员 来源:circuitdigest 作者:里沙布·耆那教 2022-11-11 17:21 次阅读

为了尽量减少硬件要求,我们将在不使用RTC模块的情况下制作互联网时钟。与RTC时钟相比,这更准确。ESP32 是一个 Wi-Fi 模块,可以轻松连接到互联网,因此我们将使用 NTP(网络时间协议)和 UDP(用户数据报协议)使用 Wi-Fi 从互联网上获取时间。

什么是 NTP??

网络时间协议(NTP) 是一种网络协议,用于在系统和数据网络之间同步时间。NTP 框架依赖于 Internet Time 服务器。NTP 具有精确调整一天中时间的算法。NTP 服务器具有使用 UDP端口 123 将时钟的时间发送到客户端计算机的软件。因此,在本项目中,我们将使用 ESP32 从 NTP 服务器获取时间,并将其显示在 OLED 显示屏上。

pYYBAGNuFC2AVivHAAA89qPXeiU299.png

所需材料:

ESP32

128*64 OLED显示屏

面包板

公母线

电路图:

poYBAGNuFC-AHlVRAACLpONoPMQ311.png

在这里,我们使用SPI 模式将 128×64 OLED 显示模块 (SSD1306) 连接到 ESP32。因此,它将使用 7 个引脚。与 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库用于连接时间服务器。NTP 服务器需要时间并保持同步。HhreWiFiUdp.h库用于发送和接收UDP消息。UDP 是一种从我们的系统向 NTP 服务器发送和接收短消息的协议。

因此,为了从互联网上获取时间,我们必须在程序中为 NTP 定义三个变量。

NTP_OFFSET哪个是您所在国家/地区的时区,即对于印度,它是+5:30小时。所以它是 19800 秒。

NTP_INTERVAL这是 NTP 更新时间所花费的时间间隔。它是60-64秒。

NTP_ADDRESS是您所在国家/地区的 NTP 服务器。对于印度,您可以使用“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);

在设置功能中,初始化 Wi-Fi 设置以连接互联网。

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();

然后初始化显示函数以在OLED上显示时间。

display.begin(SSD1306_SWITCHCAPVCC);

在循环函数中,我们使用了timeClient.update(),这个函数以字符串的形式从NTP获取更新的时间,并将其存储在formattedTime变量中。然后使用 display.println() 函数在 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);

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    11105

    浏览量

    103012
  • wi-fi
    +关注

    关注

    14

    文章

    2107

    浏览量

    124325
  • ESP32
    +关注

    关注

    17

    文章

    958

    浏览量

    17084
收藏 人收藏

    评论

    相关推荐

    使用ESP32OLED显示时间的方式

    在本教程中,我们将了解实时时钟 (RTC) 及其与 ESP32OLED 显示器的接口。
    的头像 发表于 11-14 16:40 1.1w次阅读
    使用<b class='flag-5'>ESP32</b>在<b class='flag-5'>OLED</b>上<b class='flag-5'>显示</b>时间的方式

    凌度DT298记录仪,首次采用OLED显示屏的品牌

    DT298第三代联网记录仪作为车联网产品之一,快速更新更具吸引广大车主,凌度DT298最大特点就是采用OLED显示屏OLED
    发表于 12-28 18:51

    OLED显示屏与NodeMCU ESP8266连接的方法

    /thread-1183-1-1.html在本篇文章中,我们将OLED显示屏与NodeMCU ESP8266连接。 NodeMCU是一个开源的物联网平台,包括运行在Espressif
    发表于 11-01 09:17

    ESP8266驱动OLED显示屏的方法

      ESP8266驱动OLED显示屏。使用SPI协议将单色7引脚SSD1306 0.96 OLED显示屏与NodeMCU连接,学习其基本的使
    发表于 11-03 08:53

    如何利用ESP8266和OLED显示屏来做一个网络时钟

    如何利用ESP8266和OLED显示屏来做一个网络时钟呢?有哪些制作步骤?
    发表于 02-15 06:11

    在数字时钟项目中使用ESP8266,ISP失去互联网连接怎么解决?

    我在数字时钟项目中使用 ESP8266。我遇到的问题是我的 ISP 偶尔会断开互联网连接。该程序发现它仍然连接到 WiFi,但是当它尝试从互联网检索时间时,它会循环直到 ISP 重新建
    发表于 05-30 06:19

    Nodemcu连接OLED显示屏显示位图图像

    /thread-1183-1-1.html在本篇文章中,我们将OLED显示屏与NodeMCU ESP8266连接。 NodeMCU是一个开源的物联网平台,包括运行在Espressif
    发表于 10-25 15:36 21次下载
    Nodemcu连接<b class='flag-5'>OLED</b><b class='flag-5'>显示屏</b>并<b class='flag-5'>显示</b>位图图像

    基于ESP32构建一个具有3.5英寸大显示屏互联网广播设备

    在这个项目中,我将使用便宜的 ESP32 板构建一个具有 3.5 英寸大显示屏互联网广播设备。
    发表于 07-21 17:05 2812次阅读
    基于<b class='flag-5'>ESP32</b>构建一个具有3.5英寸大<b class='flag-5'>显示屏</b>的<b class='flag-5'>互联网</b>广播设备

    互联网OLED时钟开源分享

    电子发烧友网站提供《互联网OLED时钟开源分享.zip》资料免费下载
    发表于 10-20 17:41 1次下载
    <b class='flag-5'>互联网</b><b class='flag-5'>OLED</b><b class='flag-5'>时钟</b>开源分享

    使用TTGO ESP32和Visuino从互联网获取股票数据

    电子发烧友网站提供《使用TTGO ESP32和Visuino从互联网获取股票数据.zip》资料免费下载
    发表于 11-04 09:29 0次下载
    使用TTGO <b class='flag-5'>ESP32</b>和Visuino从<b class='flag-5'>互联网</b>获取股票数据

    使用TTGO ESP32和Visuino从互联网上获取天气数据

    电子发烧友网站提供《使用TTGO ESP32和Visuino从互联网上获取天气数据.zip》资料免费下载
    发表于 11-07 15:22 0次下载
    使用TTGO <b class='flag-5'>ESP32</b>和Visuino从<b class='flag-5'>互联网</b>上获取天气数据

    带有ESP32OLED显示屏的Instagram追随者计数器

    电子发烧友网站提供《带有ESP32OLED显示屏的Instagram追随者计数器.zip》资料免费下载
    发表于 12-14 09:55 0次下载
    带有<b class='flag-5'>ESP32</b>和<b class='flag-5'>OLED</b><b class='flag-5'>显示屏</b>的Instagram追随者计数器

    使用基于ESP32的Web服务器的互联网控制LED

    电子发烧友网站提供《使用基于ESP32的Web服务器的互联网控制LED.zip》资料免费下载
    发表于 12-20 10:09 2次下载
    使用基于<b class='flag-5'>ESP32</b>的Web服务器的<b class='flag-5'>互联网</b>控制LED

    带GPS和OLED显示屏ESP32开发板

    电子发烧友网站提供《带GPS和OLED显示屏ESP32开发板.zip》资料免费下载
    发表于 12-28 09:43 2次下载
    带GPS和<b class='flag-5'>OLED</b><b class='flag-5'>显示屏</b>的<b class='flag-5'>ESP32</b>开发板

    OLED显示屏的LoRa节点和3个带ESP32的继电器

    电子发烧友网站提供《带OLED显示屏的LoRa节点和3个带ESP32的继电器.zip》资料免费下载
    发表于 12-29 14:03 0次下载
    带<b class='flag-5'>OLED</b><b class='flag-5'>显示屏</b>的LoRa节点和3个带<b class='flag-5'>ESP32</b>的继电器