2018年2月6日 星期二

DIY - ESP8266:ESP-12F SNTP 簡單網路時間協定程式製作(六十四)

DIY - ESP8266:ESP-12F SNTP 簡單網路時間協定程式製作(六十四):

ESP8266 的 SNTP (簡單網路時間協定)時鐘程式製作,主要是通過路由器發出 NTP 要求,然後接收SNTP 時間戳記(Timestamp),用程式轉換 UTC 時間戳記為本地時間,並顯示時間在 SSD1306 OLED 屏上。

ESP8266 ESP-12F SNTP 簡單網路時間協定程式製作顯示 SNTP 時間
簡單網路時間協定(SNTP)初始化程式:
void ICACHE_FLASH_ATTR
user_init(void)
{
   // Setup Station Mode
    wifi_set_opmode(STATION_MODE);
    sntp_setservername(0,"0.cn.pool.ntp.org");
    sntp_setservername(1,"1.cn.pool.ntp.org");
    sntp_setservername(2,"2.cn.pool.ntp.org");
    sntp_init();
}

簡單網路時間協定(SNTP)Callback 時間顯示程式:
void timer_callback() {

uint32_t timestamp = sntp_get_current_timestamp();

struct tm *t;
    if (timestamp > 0) {
            t = localtime(&timestamp);
            os_sprintf(dsp_buffer, "NTP=%d %s", timestamp, weekday[t->tm_wday]);
    OLED_Print(0, 3, dsp_buffer, 1);
            os_sprintf(dsp_buffer, "%02d:%02d:%02d %02d/%02d/%04d",
                                       t->tm_hour,
                                       t->tm_min,
                                       t->tm_sec,
                                       t->tm_mday,
                                       t->tm_mon + 1,
                                       t->tm_year + 1900);
    OLED_Print(0, 4, dsp_buffer, 1);
            } // Timestamp
}

2018年 2月 6日 天氣報告
氣溫:12.2@ 20:20
相對濕度:百分之 58%
天氣:大致多雲

沒有留言:

張貼留言