当前位置: 首页 > article >正文

esp网络时钟

配件ESP32 30P CP2102 Type-C 开发板0.96寸 OLED 屏幕 (I2C接口)接线#四针oled接线 SDA - ESP32 的 G21 SCL - ESP32 的 G22 VCC - ESP32 的 3V3 GND - ESP32 的 GNDIDEArduino IDE安装U8g2lib字体库#include WiFi.h #include U8g2lib.h #include Wire.h #include time.h const char* ssid xxx; const char* password xxx; // 2. NTP 服务器配置 const char* ntpServer ntp.aliyun.com; // 阿里云 NTP 服务器 const long gmtOffset_sec 8 * 3600; // 中国时区为 UTC8即 8*3600 秒 const int daylightOffset_sec 0; // 中国没有夏令时 unsigned long syncInterval 3600 * 1000; unsigned long lastSyncTime 0; // 3. 硬件对象初始化 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset*/ U8X8_PIN_NONE); void syncTimeNetwork() { Serial.println(\n--- 开始网络对时任务 ---); //必须先设置模式为 STA才能唤醒 WiFi 硬件 WiFi.mode(WIFI_STA); delay(10); // 给硬件一点点启动时间 WiFi.begin(ssid, password); int retry 0; // 等待连接最多等 15 秒 (30 * 500ms) while (WiFi.status() ! WL_CONNECTED retry 30) { delay(500); Serial.print(.); retry; } if (WiFi.status() WL_CONNECTED) { Serial.println(\nWiFi 已连接正在同步时间...); configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); // 给系统一点时间去获取 NTP 数据包 struct tm timeinfo; if (getLocalTime(timeinfo, 10000)) { // 增加一个10秒的超时等待 Serial.println(网络对时成功当前时间: ); Serial.println(timeinfo, %F %T); lastSyncTime millis(); // 【只有对时成功才重置一小时定时器】 } else { Serial.println(时间获取超时内部 RTC 将继续走时。); // 如果对时失败让它 5 分钟后再尝试而不是 1 小时 lastSyncTime millis() - (syncInterval - 300000); } // 任务完成关闭 WiFi 模块省电 WiFi.disconnect(true); WiFi.mode(WIFI_OFF); Serial.println(WiFi 已关闭已切回本地走时模式); } else { Serial.println(\nWiFi 连接失败放弃本次对时。); // 失败了5 分钟后再次尝试 lastSyncTime millis() - (syncInterval - 300000); WiFi.mode(WIFI_OFF); // 即使失败也要关掉避免一直耗电 } } void setup() { Serial.begin(115200); Wire.begin(21, 22); u8g2.begin(); u8g2.enableUTF8Print(); syncTimeNetwork(); // 注意不需要在 setup 里写 lastSyncTime millis()函数内部已经写了 } void loop() { if(millis() - lastSyncTime syncInterval){ syncTimeNetwork(); lastSyncTime millis(); } struct tm timeinfo; // --- 步骤 C: 获取本地时间 --- if (!getLocalTime(timeinfo)) { Serial.println(无法获取时间); return; } // --- 步骤 D: 在 OLED 上显示 --- u8g2.clearBuffer(); // 显示日期 (年-月-日) u8g2.setFont(u8g2_font_wqy12_t_gb2312a); u8g2.setCursor(20, 15); u8g2.printf(%04d-%02d-%02d, timeinfo.tm_year 1900, timeinfo.tm_mon 1, timeinfo.tm_mday); // 显示大字时间 (时:分:秒) // 使用一种大号的数字字体u8g2 内置很多数字字体 u8g2.setFont(u8g2_font_logisoso24_tn); u8g2.setCursor(10, 45); u8g2.printf(%02d:%02d:%02d, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec); // 显示星期 u8g2.setFont(u8g2_font_wqy12_t_gb2312a); const char* weekDays[] {日, 一, 二, 三, 四, 五, 六}; u8g2.setCursor(45, 60); u8g2.printf(星期%s, weekDays[timeinfo.tm_wday]); u8g2.sendBuffer(); delay(1000); // 每秒刷新一次 }成果

相关文章:

esp网络时钟

配件ESP32 30P CP2102 Type-C 开发板 0.96寸 OLED 屏幕 (I2C接口) 接线#四针oled接线 SDA -> ESP32 的 G21 SCL -> ESP32 的 G22 VCC -> ESP32 的 3V3 GND -> ESP32 的 GNDIDE&#xff1a;Arduino IDE安装U8g2lib字体库#include <WiFi.h> #include <U8g2l…...

2026年期货量化软件多品种支持排名_全市场覆盖对比

免责声明&#xff1a;本文基于个人使用体验&#xff0c;与任何厂商无商业关系。内容仅供技术交流参考&#xff0c;不构成投资建议。 一、前言 期货量化策略往往需要覆盖多个品种、多周期。不同期货量化软件在品种覆盖、周期支持、多合约并发等方面差异明显。做了多年期货量化&…...

Pixelium Design 更新:首版表格上线,完善表单、导航、反馈及视觉组件

前言 最近在维护我的像素风组件库 Pixelium Design&#xff0c;它迎来了一波不小的更新。 这次更新不仅带来了功能完善的像素风表格组件&#xff0c;还新增了不少输入组件、导航组件和反馈组件&#xff0c;补全了基础能力。此外&#xff0c;这次的改动&#xff0c;还带来了一…...

招聘系统如何扛住“校招/大促”流量峰值?——高并发下不宕机,保障万人级招聘季稳定

博主介绍&#xff1a; 所有项目都配有从入门到精通的安装教程&#xff0c;可二开&#xff0c;提供核心代码讲解&#xff0c;项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频&#xff1b;项目的界面和功能都可以定制&#xff0c;包安装运行&#xff…...

期货程序化交易日志分析_问题定位与优化

免责声明&#xff1a;本文基于个人使用体验&#xff0c;与任何厂商无商业关系。内容仅供技术交流参考&#xff0c;不构成投资建议。 一、前言 程序化交易运行中会产生大量日志&#xff0c;合理的日志设计和分析能快速定位问题、优化策略。做了二十年期货交易&#xff0c;我积累…...

【ASP.NET CORE】 8. 集成 JWT 认证授权

本系列专栏基于杨中科老师的《ASP.NET Core技术内幕与项目 实战》&#xff0c;本人记录梳理的学习笔记&#xff0c;有部分的增补和省略。更全面系统的讲解&#xff0c;请看杨老师的视频课&#xff1a;【.NET教程&#xff0c;.Net Core视频教程&#xff0c;杨中科主讲】。 一、…...

关于QT修改了UI文件重新运行界面却没变化的问题

目录 1. 核心原因&#xff1a;uic 没有重新编译 2. 影子构建 问题 3. CMake 或 qmake 项目文件配置问题 4. Qt Designer 保存路径错误 5. 极端情况&#xff1a;C 缓存/旧对象 6. 检查运行路径 如果以上你都排除了&#xff0c;还有一个问题&#xff0c;也是我遇到的问题&a…...

DBA 经验:MySQL性能最重要的参数只有2个!

在日常的MySQL性能优化工作中&#xff0c;面对几百个配置参数&#xff0c;常常让人眼花缭乱。但经过多年的实战经验&#xff0c;我发现真正起决定性作用的参数其实只有两个。今天&#xff0c;我就把这压箱底的经验分享给大家——调好这两个参数&#xff0c;你的MySQL性能就成功…...

关于电脑开机输入密码后只显示鼠标问题

前景&#xff1a;网上遇到提到的在资源管理器处重启explorer.exe进程无反应&#xff0c;但是注意到昨天晚上关机前有window系统更新提醒&#xff0c;那时没有理会就直接关机了&#xff0c;结果第二天就出现了现在的问题。解决办法&#xff1a;在输入密码处点击“重启并更新”即…...

2026美妆行业自动图文发布工具推荐指南

2026美妆行业自动图文发布工具推荐指南行业背景与推荐依据据《2025年美妆行业数字化营销白皮书》显示&#xff0c;美妆行业线上营销投入占比已达68%&#xff0c;其中小红书、抖音两大平台的内容营销贡献了超过70%的线上获客量。随着内容营销的深化&#xff0c;美妆品牌普遍面临…...

收藏!小白程序员必看:深度拆解AI大模型技术架构,从算力到落地全链路逻辑

本文从工程实现角度&#xff0c;逐层拆解AI大模型技术架构&#xff0c;涵盖算力、数据、算法、能力及应用等层面。从GPU集群到分布式存储&#xff0c;从机器学习框架到多模态融合&#xff0c;再到内容生成、专业工具及多模态交互能力&#xff0c;最后探讨金融、工业、医疗等行业…...

人工智能——实验环境搭建

计算机科学与技术系实验报告课程名称&#xff1a;人工智能实验班级&#xff1a;网络工程2班 姓名&#xff1a; 学号&#xff1a; 成绩&#xff1a; 实验项目名称&#xff1a;实验环境搭建一、实验目的及要求搭建好人工智能后期实验环境&#xff0…...

【笔试真题】- 小红书-2026.03.11

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 小红书-2026.03.11 本次三题均对应历史原题,红薯已经连续好几场是这样了 题目一:完美数字 这题的关键在于满足条件的连续正整数乘积其实非常少,可以先把所…...

2.项目背景:基于销量可视化的手机价位段智能选型平台

(未完成) 一.项目背景 1.行业与市场现状 2026 年开年&#xff0c;中国智能手机市场呈现总量承压、结构分化、价格上移的深度调整态势。据 Counterpoint 数据&#xff0c;1 月国内智能手机销量同比下降 23%&#xff0c;IDC 预测全年出货量约 2.78 亿台、同比下滑 2.2%&#xf…...

phoenix-queryserver 6.0.0安装

1.下载 https://phoenix.apache.org/download.html 2.解压 tar -xzvf phoenix-queryserver-6.0.0.jar 3. 复制phoenix-client-hbase-2.4.0-5.1.2.jar 复制phoenix-client-hbase-2.4.0-5.1.2.jar 到 /usr/local/src/phoenix/phoenix-queryserver-6.0.0 设置环境变量 //设置que…...

自动驾驶车道偏离预警系统的搭建与实现

自动驾驶控制器&#xff0c;车道偏离预警系统&#xff0c;基于Prescan设计场景和交通流&#xff0c;在Simulink中建立了相应的控制模型。 进行LDW功能验证。 整个模型自己建立&#xff0c;再次强调不是Prescan自带的那种很乱很模糊的模型。 然后通过自己做了一个GUI的界面实时显…...

为什么 iOS MTU=517,但 BLE 吞吐量通常只有 6~8KB/s?

在做 BLE 高速数据传输&#xff08;例如 OTA、日志传输、大数据同步&#xff09;时&#xff0c;很多开发者都会发现一个现象&#xff1a;iOS 与设备协商 MTU 517理论上 ATT payload 可以达到 514 bytes但实际测试吞吐量时却只有&#xff1a;6 KB/s ~ 8 KB/s这个结果往往让人困…...

基于平方根容积卡尔曼(SRCKF)的附着系数与车辆状态联合估计

基于平方根容积卡尔曼&#xff08;srckf&#xff09;的附着系数与车辆状态联合估计&#xff0c;车辆状态估计可估计出纵向速度&#xff0c;质心侧偏角&#xff0c;横摆角速度&#xff0c;附着系数估计可估计出四个车轮的路面附着系数&#xff0c;dugoff轮胎模型可以计算出轮胎力…...

Jeecg,登录才能下载文件

本文针对Jeecg 3.8.2版本&#xff0c;其他版本也基本通用&#xff0c;可参考调整。1 背景上传到系统的文件&#xff0c;可能会要求登录状态才能下载&#xff0c;或者下载时须记录日志&#xff0c;用于查看哪个用户什么时间下载了什么文件。但是系统默认的文件是上传到静态资源目…...

本地大模型系列:1.配置本地lm Studio的大模型助手(another)

体验了一下lm studio&#xff0c;感觉lm studio对新手更加友好&#xff0c;它有一整套UI&#xff0c;并且设置比较完善&#xff0c;基本上可以靠点鼠标把事情做完了&#xff0c;包括模型下载、测试、网络接口、自身配置等。尽管部分高级功能需要登录且付费使用&#xff0c;但是…...

NBA 2000-2020 赛季球员数据可视化分析项目书

一、项目背景 NBA 是全球顶级篮球联赛&#xff0c;2000-2020 赛季是联盟从内线主导转向小球与三分时代的关键 20 年&#xff0c;球员数据海量且具备分析价值。球队与教练普遍存在&#xff1a;球员能力画像不清晰、不同打法 / 阵容效果难量化、人员轮换与资源配置不合理等问题。…...

员工AI培训别乱搞!漫无目的的课程等于“烧钱”没效果

“今年培训预算花了几十万&#xff0c;员工课听了不少&#xff0c;回头一问&#xff0c;什么也没落下。”这是上周一位培训总监跟我吐槽的话。他不是个例。AI火起来之后&#xff0c;很多企业都在搞培训&#xff0c;但效果却惨不忍睹。今天学Prompt&#xff0c;明天看Python&…...

2026年玩具喷涂废气治理优质厂家推荐榜

随着全球玩具产业向绿色制造转型&#xff0c;喷涂工序产生的VOCs&#xff08;挥发性有机物&#xff09;治理已成为企业合规生产的核心关卡。玩具喷涂废气具有“大风量、低浓度、含漆雾”的典型特征&#xff0c;同时苯系物、酯类等组分复杂&#xff0c;对治理设备的适配性与稳定…...

不懂技术怎么做题库小程序?我把经验写下来了,你看看

世界上最聪明的人&#xff0c;是借用别人撞的头破血流的经验&#xff0c;作为自己的经验。 不懂技术怎么做题库小程序&#xff1f;在我看来&#xff0c;分三种情况说一下&#xff0c;我把经验写下来了&#xff0c;你姑且勉为其难地看看吧。 想做一个题库小程序&#xff0c;同时…...

北京婚礼策划公司排名

对于正在筹备婚礼的北京新人而言&#xff0c;选择一家靠谱的婚礼策划公司无疑是头等大事。网络上所谓的“排名”往往主观且商业气息浓厚&#xff0c;与其追逐一个虚名&#xff0c;不如学会如何甄别&#xff0c;找到真正适合自己的品牌。本文将为您深入剖析&#xff0c;并重点推…...

人肉防火墙:用生理反应阻断黑客攻击——软件测试从业者的专业视角

在网络安全领域&#xff0c;传统防火墙和入侵检测系统已难以应对日益精密的黑客攻击。软件测试从业者作为系统安全的“第一道防线”&#xff0c;亟需创新工具来增强防御能力。本文提出“人肉防火墙”概念&#xff0c;即通过实时监测人体生理反应&#xff08;如心率变异性、皮肤…...

打造Matlab交通标志识别系统:从代码到可视化GUI

matlab交通标志识别系统(含gui可视化界面&#xff0c;完整源码&#xff0c;代码配详细注释&#xff0c;程序实现识别交通标志图片并以文字形式输出结果) 附赠报告&#xff0c;代码结构清晰&#xff0c;有注释在智能交通系统日益发展的今天&#xff0c;交通标志识别技术成为了研…...

vscode用remote ssh连接服务器的流程

以下是一套完整、可落地的 VS Code Remote-SSH 离线部署 连接服务器流程&#xff0c;整合了之前的所有要点&#xff0c;适配新版 VS Code&#xff08;高版本需 CLIServer 双包&#xff09;&#xff0c;覆盖从环境准备到验证连接的全环节&#xff1a; 一、前置准备 本地环境&…...

跨模态对比学习:CLIP模型优势的实验验证与分析

跨模态对比学习:CLIP模型优势的实验验证与分析 摘要 视觉-语言预训练模型CLIP通过对比学习实现了图像与文本的跨模态对齐,在零样本分类、图文检索等任务中展现出卓越性能。然而,CLIP的优势究竟源于其语言监督信号还是模型架构设计,仍是一个值得深入探究的问题。本文以CLI…...

交易积累-世界著名中间件和公司

下面列出了一些知名度高和广泛使用的技术组件&#xff0c;以及它们相应的现存公司&#xff0c;按照知名度和使用者数量进行排序&#xff1a; Meta Platforms, Inc. (之前称为 Facebook): React: 一个用于构建用户界面的JavaScript库&#xff0c;广泛用于前端开发。 React Nativ…...