ESP32 使用内部RTC 和网络NTP网络授时

#include "Arduino.h"
#include "ztf_esp32_time.h"

ZtfEsp32Time m_time;
void setup()
{
  Serial.begin(115200);
  m_time.update_sys_time(1635148850);//更新系统时间
}
void loop()
{
  Serial.println(m_time.get_sys_stamp());//获取当前时间戳
  ztfTimeInfo m_timeInfo;//获取日期信息
  m_time.get_time_info(&m_timeInfo);
  String date = "当前时间:";
  date = date + m_timeInfo.year + "年" + m_timeInfo.mon + "月" + m_timeInfo.mday + "日 " + m_timeInfo.hour + ":" + m_timeInfo.min + ":" + m_timeInfo.sec + "秒 星期" + m_timeInfo.wday;
  Serial.println(date);
  delay(1000);
}

在这里插入图片描述


https://download.csdn.net/download/qq_33593411/34208931

使用NTP网络授时


#include "Arduino.h"
#include <WiFi.h>
#include "time.h"
#include "ztf_time.h"


const char* ssid       = "TP-LINK_9E7E";
const char* password   = "ABST123456789";
 
const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 28800;
const int   daylightOffset_sec = 0;
 
void printLocalTime()
{
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return;
  }
  Serial.println(&timeinfo, "%A, %Y-%m-%d %H:%M:%S");
}
 
void setup()
{
  Serial.begin(115200);

  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
  }
  Serial.println(" CONNECTED");
  

  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  printLocalTime();


  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
  
}
 
void loop()
{
  printLocalTime();
  delay(1000);
}
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32内部RTC (Real-Time Clock) 是一种用于精准计时和日期记录的硬件。RTC在不依赖外部环境的情况下,可以提供准确的时间和日期信息。 使用ESP32内部RTC,首先我们需要初始化RTC模块。我们可以通过调用Arduino库中的函数来完成初始化。初始化后,RTC将开始自我维护并计时。 一旦初始化完成,我们可以使用ESP32内部RTC进行以下操作: 1. 获取时间:我们可以使用RTC功能来获取当前的年份、月份、日期、小时、分钟和秒钟。这些信息可以用于各种应用,如记录日志、时间同步等。 2. 设置时间:除了获取时间外,我们还可以使用RTC功能来设置模块的时间值。我们可以手动设置年份、月份、日期、小时、分钟和秒钟,以便与外部时间源进行同步。 3. 闹钟功能:ESP32内部RTC还支持闹钟功能。我们可以设置闹钟,当时间达到指定的时间时,触发一个中断或执行一系列操作。 4. 低功耗:RTC模块在大多数时间处于低功耗模式,以节约能量。这对于需要长时间运行的应用程序非常有用。 值得注意的是,ESP32内部RTC并不是高精度的计时器。它受到一些系统因素的影响,例如温度和电压变化。因此,在对时间要求非常高的应用中,可能需要使用外部的高精度时钟模块。 总的来说,ESP32内部RTC为我们提供了一种简便实用的计时和日期记录解决方案。它可以用于各种应用场景,包括数据日志、时间同步、闹钟等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值