【ESP8266+TM1650时钟数码管+DS3231模块】制作网络时钟

news/2025/1/8 20:24:50/

【ESP8266+TM1650时钟数码管+DS3231模块】制作网络时钟

    • 所需元器件
    • 接线方式
    • 代码

所需元器件

  • ESP8266 NodeMCU——开发板
  • TM1650时钟数码管——显示时钟
  • DS3231模块——网络对时

接线方式

  • TM1650
    SCL—>D1
    SDA—>D2
  • DS3231
    SCL—>D1
    SDA—>D2

代码

#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <Wire.h>
#include <TM1650.h>
#include <SPI.h>  // not used here, but needed to prevent a RTClib compile error
#include <RTClib.h>
#include <UnixTime.h>const char *ssid = "***";
const char *password = "***";DS3231 RTC;
TM1650 d;
UnixTime stamp(8);  // 定义东八区时间WiFiUDP ntpUDP;
// NTPClient timeClient(ntpUDP, "cn.ntp.org.cn", 28800);
NTPClient timeClient(ntpUDP, "cn.ntp.org.cn");int h, m, s = 0;
int ii = 0;String intToStr(int x) {if (x < 10) {return "0" + String(x);}return String(x);
}void setup() {Serial.begin(74880);// Start the I2C interfaceWire.begin();d.init();d.displayOn();d.setBrightnessGradually(5);RTC.begin();WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {  // 连接wifiii++;Serial.print(".");if (ii % 2 == 0) {d.setDot(1, true);} else {d.setDot(1, false);}delay(500);}timeClient.begin();d.displayString("8888");
}void loop() {// 0点更新时间if (h + m + s == 0) {timeClient.update();Serial.println("开始同步NTP时间");stamp.getDateTime(timeClient.getEpochTime());RTC.adjust(DateTime(stamp.year, stamp.month, stamp.day, stamp.hour, timeClient.getMinutes(), timeClient.getSeconds()));Serial.println("同步NTP时间完成");}// 以下获取RTC时间DateTime now = RTC.now();h = now.hour();m = now.minute();s = now.second();// 以下格式化HH:MM并显示String hhmm = intToStr(h) + intToStr(m);char charBuf[10];hhmm.toCharArray(charBuf, 10);d.displayString(charBuf);// 以下显示秒的跳动d.setDot(1, true);delay(500);d.setDot(1, false);delay(500);
}

时钟效果


http://www.ppmy.cn/news/1124208.html

相关文章

uniapp 点击事件-防重复点击

uniapp 点击事件-防重复点击 1、common文件并创建anti-shake.js文件 // 防止处理多次点击 function noMoreClicks(methods, info) {// methods是需要点击后需要执行的函数&#xff0c; info是点击需要传的参数let that this;if (that.noClick) {// 第一次点击that.noClick f…

linux 下 top命令显示的是内存是堆内存吗?

top 命令在 Linux 下提供了关于系统运行状态的实时视图&#xff0c;其中包括进程信息、CPU 使用率、内存使用情况等。关于内存&#xff0c;top 命令显示的并不是“堆内存”&#xff0c;而是整个系统的内存使用情况。 在 top 命令的输出中&#xff0c;你会看到类似以下的内存统…

第三章 链路层

引言 如果这篇文章对您有帮助的话&#xff0c;希望您能点赞、收藏、加关注&#xff01;您的鼓励就是我前进的动力&#xff01;本文所参考的教材为&#xff1a;谢希仁. 计算机网络. 北京&#xff1a;电子工业出版社, 2021. 重要知识点总结 数据链路层协议三个共同的基本问题&a…

次时代摸鱼骚操作:人在办公室轻松观看家里电脑上的4k电影(移动端公网访问本地群辉存储视频文件)

如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f; 文章目录 如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f;1.使用环境要求&#xff1a;2.下载群晖videostation&#xff1a;3.公网访问本地群晖videostation中的电影&#xff1a;4.公网条件下使用电脑…

RT Preempt linux学习笔记

RT Preempt linux学习笔记 一、实时操作系统&#xff08;Realtime Operating System&#xff09; 1. 什么是实时操作系统 A real-time system is a time-bound system which has well-defined, fixed time constraints. Processing must be done within the defined constra…

ES修改字段的数据类型

-- mysql修改字段数据类型语句 ALTER TABLE 表名 MODIFY COLUMN 列名 修改的字段类型;-- hive 修改字段数据类型语句 ALTER TABLE 表名 CHANGE COLUMN 列名 修改的字段类型;--es修改字段数据类型语句无法通过一个语句进行修改。思路&#xff1a; 1、对修改字段重新建修改类型的…

Bigemap如何查看历史影像

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 很多人都在寻找历史影像图&#xff0c;这块的需求是非常大&#xff0c;历史影像一般可以用于历史地貌的变迁分析&#xff0c;还原以前的生态场景&#xff0c;对范围面积…

蓝桥杯备赛-上学迟到

上学迟到 P5707 【深基2.例12】上学迟到 - 洛谷 |https://www.luogu.com.cn/problem/P5707 题目介绍 题目描述 学校和 yyy 的家之间的距离为 s 米&#xff0c;而 yyy 以v 米每分钟的速度匀速走向学校。 在上学的路上&#xff0c;yyy 还要额外花费 1010 分钟的时间进行垃圾分…