数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 44391|回复: 11

[综合] ESP8266时钟加入DS3231

[复制链接]
发表于 2021-3-19 11:07:18 来自手机浏览器 | 显示全部楼层
楼上说的对,首先是时间变量
int ds_hour, ds_min, ds_sec , sec;
int minute1, minute2, hour1, hour2;
然后是向ds3231写时间
if (WiFi.status() == WL_CONNECTED) {
    Serial.println("已联网,准备更新时间!!!");
    timeClient.begin();
    timeClient.update();
    //秒,分,时的获取及写入;
    int Hour_ex = timeClient.getHours();                   //hh
    if (Hour_ex != 8) {
      Wire.beginTransmission(0x68);
      Wire.write(0x00);
      int Sec_ex = timeClient.getSeconds();                   //ss
      int dd = (Sec_ex / 10 * 16) + (Sec_ex % 10);
      Wire.write(dd);
      Wire.endTransmission();
      Wire.beginTransmission(0x68);
      Wire.write(0x01);
      int Minu_ex = timeClient.getMinutes();                   //mm
      int ddd = (Minu_ex / 10 * 16) + (Minu_ex % 10);
      Wire.write(ddd);
      Wire.endTransmission();
      Wire.beginTransmission(0x68);
      Wire.write(0x02);
      int Hour_ex = timeClient.getHours();                   //hh
      int d = (Hour_ex / 10 * 16) + (Hour_ex % 10);
      Wire.write(d);
      Wire.endTransmission();
      Serial.println("时间更新完成!!!");
    }
    else {
      Serial.println("更新时间出错???");
    }
接下来是读取时间
void read_time() {
  Wire.beginTransmission(0x68);
  Wire.write(0x00);
  Wire.endTransmission();
  Wire.requestFrom(0x68, 3);
  ds_sec = Wire.read();
  ds_min = Wire.read();
  ds_hour = Wire.read();
  hour1 = (ds_hour / 16);
  hour2 = (ds_hour % 16 );
  minute1 = (ds_min / 16 );
  minute2 = (ds_min % 16);
  sec = ((ds_sec / 16) * 10 + ds_sec % 16);
}

打赏

参与人数 1家元 +10 收起 理由
家睦 + 10

查看全部打赏

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-20 00:51 , Processed in 0.062400 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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