在上一篇中,我們成功在 OLED 螢幕上顯示了本地的溫濕度數據,讓 ESP32 具備了獨立運作的「視覺」。不過,這依然只能算是一個「單機設備」。要成為真正意義上的「物聯網(IoT)」節點,裝置必須能夠上網,且數據必須伴隨精確的時間標記。
今天,我們要來解鎖 ESP32 最強大的天賦——無線聯網 (Wi-Fi)!我們將實作如何讓 ESP32 在開機時自動連上當地的無線網路,並透過 NTP (網路時間協定) 向世界級的標準時間伺服器「對時」。這樣一來,我們採集到的每一筆數據,都能打上精準的「時間戳記 (Timestamp)」,這是日後大數據分析與異常追溯必備的基礎!
1. 觀念解析:什麼是 NTP 網路時間協定?
ESP32 內部雖然有定時器,但它沒有像電腦或手機那樣有「水銀電池(RTC 模組)」來保存時間。每次只要斷電重開,它的時間就會歸零(回到 2000 年 1 月 1 日)。這在大數據採集中是非常致命的,因為我們無法得知「這筆異常高溫是在何時發生的」。
為了解決這個問題,只要讓 ESP32 聯網,就能使用 NTP (Network Time Protocol)。這是一種用來在網路中同步電腦時間的協定。透過向公開的 NTP 伺服器發送請求,我們的 ESP32 就能獲取誤差在幾毫秒內的 UTC 標準時間,並轉換為台灣當地的標準時間(UTC+8)!


