风筝
发表于: 2020-4-13 19:31:08 | 显示全部楼层

在本篇文章中,我们将学习如何使用NodeMCU制作基于物联网的模拟/数字OLED时钟。这种时钟不需要类似DS1307或DS3231这样的任何RTC模块,只需从在线服务器上下载时间和日期即可。我们可以以模拟形式或数字形式显示下载的时间。


所需的组件

●    NodeMCU ESP8266 12E开发板模块

●    SSD1306 0.96英寸OLED显示屏

●    连接线

●    面包板


0.96英寸I2C OLED显示屏

本文使用的是一个0.96英寸的蓝色OLED显示屏模块。显示屏模块可以使用SPI / I2C协议与任何微控制器连接。分辨率为128×64。该模块包括显示电路板、显示屏、预焊接到板上的4针公接头。


OLED(有机发光二极管)是一种自发光技术,由置于阳极和阴极之间的多层有机薄膜组成。与LCD技术相比,OLED不需要背光。 OLED在几乎所有类型的显示屏中都具有很高的应用潜力,并且被认为是下一代平板显示屏的替代技术。


连接电路图

借助下面的电路图,您可以使用NodeMCU制作基于物联网的模拟/数字OLED时钟。如下图所示组装电路。

Analog-Digital-OLED-IOT-Clock-Circuit-Diagram.png


将OLED的SCL引脚连接到NodeMCU的D1引脚,还要将OLED的SDA引脚连接到NodeMCU的D2引脚。将OLED的3.3V和GND引脚连接到NodeMCU的3.3V和GND引脚。


项目工作过程

Arduino IDE用于开发草图程序,该程序可访问NPT时间服务器以准确设置日期和时间。然后将日期和时间显示在OLED显示屏上,并通过ESP8266 Web服务器访问Web浏览器。该网页允许设置诸如时区、24小时制、夏令时之类的选项以及用于控制时间服务器更新间隔的变量。该网页使用AJAX更新时间,而无需重新加载整个网页。


NTPClient库将ESP8266 WiFi连接到时间服务器,该服务器将时间信息发送到模块。


最后一个是Arduino Time库,该库将Unix时间戳转换为:秒、分钟、小时、星期、日、月和年。 Unix时间是自1970年1月1日以来经过的秒数。基本上,时间服务器以Unix格式发送时间,该时间需要转换,该库完成所有工作。


NTPClient库配置为从服务器time.nist.gov(GMT时间)获取时间信息,并且偏移1小时(==> GMT + 1时区)等于3600秒,以下是配置代码:

  1. configTime(timezone, dst, "pool.ntp.org","time.nist.gov");
复制代码

模拟OLED时钟的源代码/程序

analog-clock-nodemcu.jpg

以下是模拟OLED时钟的源代码/程序: Analog OLED Clock.rar (1.17 KB, 下载次数: 64)


数字OLED时钟的源代码/程序

digital-clock-nodemcu-oled.jpg

以下是数字OLED时钟的源代码/程序: Digital OLED Clock.rar (976 Bytes, 下载次数: 104)


跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-20 01:12 , Processed in 0.133845 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表