欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > arduino R4 WIFI读取时间并在LED矩阵上显示

arduino R4 WIFI读取时间并在LED矩阵上显示

2025/4/18 1:52:44 来源:https://blog.csdn.net/weixin_45038397/article/details/146214791  浏览:    关键词:arduino R4 WIFI读取时间并在LED矩阵上显示

在这里插入图片描述

arduino R4 WiFi 开发板自带 WiFi 连接模块,同时带有 8×12 LED 显示矩阵。本实验开发了一个能通过WiFi连接网络,获取NTP时间,然后在LED矩阵上滚动显示的功能。

什么是 NTP 时间

NTP(Network Time Protocol,网络时间协议)是一种用于同步网络中计算机时钟的互联网协议。它的目的是使所有参与的计算机时钟与协调世界时(UTC)保持同步,误差通常在几毫秒以内。NTP 是目前仍在使用的最古老的互联网协议之一,自 1985 年以来一直在运行。

依赖的库

#include "WiFiS3.h"#include "ArduinoGraphics.h"
#include "Arduino_LED_Matrix.h"#include "WiFiUdp.h"
#include "NTPClient.h"

基于Arduino_LED_Matrix.h 控制 LED 矩阵的显示,利用ArduinoGraphics.h 进行字符的循环显示。注意,ArduinoGraphics.h 必须在Arduino_LED_Matrix.h 之前导入,否则无法正确引入 beginDraw 函数。
新建secret_key.h用来保存WiFi账号和密码

#define SECRET_SSID "WiFi名称"
#define SECRET_PASS "WiFi密码"

完整代码

#include "WiFiS3.h"
#include "secret_key.h"
#include "ArduinoGraphics.h"
#include "Arduino_LED_Matrix.h"#include "WiFiUdp.h"
#include "NTPClient.h"char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;// NTP 服务器配置
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 8 * 3600, 60000);  // 东八区,北京时间//定义一个LED点阵对象
ArduinoLEDMatrix matrix;void setup(){Serial.begin(115200);delay(1000);Serial.println("Connecting to WiFi");WiFi.begin(ssid, pass);while(WiFi.status() != WL_CONNECTED){delay(500);Serial.print(".");}Serial.println("Connected to WiFi");Serial.println("IP Address: ");Serial.println(WiFi.localIP());//显示一个字符串matrix.begin();matrix.beginDraw();matrix.stroke(0xFFFFFFFF);const char text[] = "UNO R4";matrix.textFont(Font_4x6);matrix.beginText(0,1,0xFFFFFF);matrix.println(text);matrix.endText();matrix.endDraw();delay(2000);//启用时间客户端timeClient.begin();
}void loop(){timeClient.update();time_t now = timeClient.getEpochTime();// 格式化时间字符串struct tm *timeinfo;timeinfo = localtime(&now);char timeStr[30];sprintf(timeStr, "%04d-%02d-%02d %02d:%02d:%02d",timeinfo->tm_year + 1900,  // 年timeinfo->tm_mon + 1,      // 月timeinfo->tm_mday,         // 日timeinfo->tm_hour,         // 时timeinfo->tm_min,          // 分timeinfo->tm_sec);         // 秒matrix.beginDraw();matrix.stroke(0xFFFFFFFF);matrix.textScrollSpeed(100);matrix.textFont(Font_4x6);matrix.beginText(0,1,0xFFFFFF);matrix.println(timeStr);matrix.endText(SCROLL_LEFT);matrix.endDraw();delay(1000);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词