在這篇文章中將介紹如何使用網路時間同步的功能及如何做簡易的troubleshoot
from ntptime import settime
settime()
(2018, 10, 20, 9, 11, 19, 3, 120)
謎之音: 真的會那麼順利嗎?
筆者:
NTP 同步的時候常常會遇到網路超時而同步失敗的狀態, 如下圖所示:
讓筆者帶大家看看, 原始碼中寫了什麼?
[秘訣]
(1) 內建模組檔案存位於: ports\ esp8266\ modules\ ntptime.py
(2) 原來是在Query time server 後沒有取到回應的數值導致錯誤
[秘訣] 筆者目前無法完全解決這個狀況, 採取的消極解法為多設定delay 時間或採取這次同步失敗後 等幾秒後再重新同步的作法, 這樣的成功機率就會大很多
筆者也發現在13行有定義會跟哪一台time server 做時間同步, 若想改成其他的time server 可在此修改, 但因為這是內建模組, 如果不想要重新編譯的話. 可以改由檔案的方式直接存在rom 中再去import 即可
host=pool.ntp.org
[實作] 修改host 成tw.pool.ntg.org
cp ntptime.py ntpd.py
host=tw.pool.ntp.org
ampy /dev/ttyUSB0 -b115200 put ntpd.py
* USB0 請自行換成您的裝置路徑