其實 DS3231 是一枚非常準確的實時時鐘(RTC / Real-Time Clock)芯片,它的精確度在 0°C 到 40°C 為 ±2ppm,在 -40°C 至 85°C 精確度為 ±3.5ppm,年誤差約 1分鐘,但 NTP / SNTP (網路時間協定 / 簡單網路時間協定)的時鐘就更加準確了,所以如果能夠用 NTP/SNTP 的時鐘來調校 / 同步(Synchronization)DS3231 實時時鐘,那麼 DS3231 實時時鐘便會變的更準確!
ESP8266 ESP-12F DS3231 實時時鐘同步網路時鐘 |
ESP8266 ESP-12F DS3231 實時時鐘同步網路時鐘(未同步) |
ESP8266 ESP-12F DS3231 實時時鐘同步網路時鐘(同步) |
// Check DS3231 and NTP are
same or not
if (timestamp != ds3231_timestamp){
ds3231_setTime(t);
ds3231_syn = 1;
}
|
ESP8266 ESP-12F DS3231 實時時鐘設定時間程式:
bool ICACHE_FLASH_ATTR
ds3231_setTime(struct tm *time) {
uint8 data[8];
os_sprintf(dsp_buffer,
"Set Time1=%02d:%02d:%02d %04d/%02d/%02d (%d)\r\n",
time->tm_hour,
time->tm_min,
time->tm_sec,
time->tm_year,
time->tm_mon,
time->tm_mday,
time->tm_wday);
ets_uart_printf(dsp_buffer);
// start register
data[0] = DS3231_ADDR_TIME;
// time/date data
data[1] = decToBcd(time->tm_sec);
data[2] = decToBcd(time->tm_min);
data[3] = decToBcd(time->tm_hour);
data[4] = decToBcd(time->tm_wday + 1);
data[5] = decToBcd(time->tm_mday);
data[6] = decToBcd(time->tm_mon + 1);
data[7] = decToBcd(time->tm_year - 100);
return ds3231_send(data, 8);
}
|
ESP8266 ESP-12F DS3231 實時時鐘同步網路時鐘 |
2018年 2月 13日 天氣報告
氣溫:14.4度 @ 21:00
相對濕度:百分之 60%
天氣:天色大致良好
沒有留言:
張貼留言