ESP 系列開發板因為可以連上網際網路,所以當專案或裝置需要精確的時間時,可以從網路上獲取目前的時間。
Step1 點擊下拉功能表 [檔案] > [範例] > [ESP] > [Time] > SimpleTime。出現視窗
Step2 請修改程式碼,填入正確的 ssid 和密碼,並上傳程式,成功後記得移除 GPIO0 和 Gnd 腳位上的接線。
Step3 打開「序列埠監控視窗」。出現視窗
您可以看到視窗內有顯示目前的日期和時間。
好的,我們透過網路讀取到時間了,但仔細看了一下,雖然日期是對的,時間卻是怪怪的,這是因為時區不正確。
想要解決時區不正確的問題,必須先瞭解程式碼,以下就針對有關的程式碼來說明。
const char* ntpServer = "pool.ntp.org"; // 讀取時間的伺服器網址
const long gmtOffset_sec = 3600; // GMT 時區的偏移量
const int daylightOffset_sec = 3600; // 日光節約時間的偏移量
根據以上資料,我們知道這個時間是去一個叫 "pool.ntp.org" 的網站取得的,它運作的方式如下圖
再來,我們搜尋到一個可以顯示 GMT 時間的網站,您可以開啟以下網頁並觀察一下時間
https://24timezones.com/time-zone/gmt#gref
然後,我們回過頭來把時區偏移量設為0,程式碼修改成
const long gmtOffset_sec = 0; // GMT 時區的偏移量
再重新上載程式,上載成功後再重新打開「序列埠監控視窗」。此時您看到的畫面應該類似下圖,只是時間不同。
這裡可以觀察到 GMT 網頁上的時間和「序列埠監控視窗」內的時間相差了 1 小時。而我的電腦時間是 13:12:43。
我並不想去理會為什麼相差 1 小時,我在意的是「序列埠監控視窗」內的時間比我的時間慢了 7 小時。而 7 小時等於 60*60*7=25200 秒。
我們回過頭來把時區偏移量設為 25200,程式碼修改成
const long gmtOffset_sec = 25200; // GMT 時區的偏移量
再重新上載程式,上載成功後再重新打開「序列埠監控視窗」。此時您可以檢查一下時間,應該是正確了。
在我們能夠掌握時間之後,就可以對 ESP32-Cam 做更多的應用,例如指定某一特定的時間開啟攝影鏡頭做監控...等等。
採購資訊
ESP32 開發指南(書) https://www.ruten.com.tw/item/show?22023657661505
ESP32-Cam 開發板 https://www.ruten.com.tw/item/show?22018501441929
ESP32-Cam 雙軸雲台(基本款)套件 https://www.ruten.com.tw/item/show?22024688065979
ESP32-Cam 雙軸雲台(人體偵測款)套件 https://www.ruten.com.tw/item/show?22024688076465
沒有留言:
張貼留言