NTP 時鐘– RTC & NTP & master and slave 整合 | ntp時鐘
繼上一篇文章文末分享到在Colorduino上面以NodeMCUESP8266為master實作數字顯示、動畫以及顏色的變換,接下來要分享的東西是如何將這些我一一完成的“積木"成功的把他們組裝起來,並且順利運作。bq32000(RTCmodule)在我可以正確的從NodeMCUESP8266(master)發送data給Colorduino(slave),並且成功顯示在Colorduino上後(真的是經過了一番折騰),我開始要將NTP時鐘主要的功能一個一個加上去。首先要做的事情是讓master可以正確的一秒改變一次數字。畢竟我不可能無時無刻都在抓NTPserver的資料(如果WiFi掛了時鐘就掛了,不過這只是個小原因...
繼上一篇文章文末分享到在 Colorduino 上面以 NodeMCU ESP8266 為 master 實作數字顯示、動畫以及顏色的變換,接下來要分享的東西是如何將這些我一一完成的 “積木" 成功的把他們組裝起來,並且順利運作。
bq32000 (RTC module)在我可以正確的從 NodeMCU ESP8266 (master) 發送 data 給 Colorduino (slave),並且成功顯示在 Colorduino 上後 (真的是經過了一番折騰),我開始要將 NTP 時鐘主要的功能一個一個加上去。
首先要做的事情是讓 master 可以正確的一秒改變一次數字。畢竟我不可能無時無刻都在抓 NTP server 的資料 (如果 WiFi 掛了時鐘就掛了,不過這只是個小原因,後面會分享主要是為什麼),那假設我設定每隔 5 seconds 向 NTP server 抓時間資訊回來我本機端,master 只做這件事而且自己不數秒的話,在 Colorduino 上面就不會看到像電子鐘那樣一秒一秒地改變顯示,而是看到每隔 5 秒的狀況 (意思是秒數的個位數字只會顯示 5 或是 0)。
為了避免這麼蠢的事情發生 (我想也沒有時鐘長這樣吧),又不可能無時無刻都在向遠端抓 NTP server 的資料,那勢必需要一個 “東西" 讓 master 自己能數秒,並且正確顯示在 Colorduino 上,而這個東西就是接下來要分享的 RTC (real-time clock) module – bq32000。
先附上 bq32000 的 datasheet[1]。這裡沒有要細說 bq32000 是如何操作 (如何操作其實看 datasheet 就會懂了,雖然說我有些也看得沒有很懂),我比較想要著重在『如何和 master 合作』這個部分。
由於 bq32000 也是採用 I2C protocol 和其他元件做溝通,我的 NodeMCU ESP8266 是為 master,因此 bq32000 會是這個 master 之下的其中一個 slave,而知道了主從關係後,要關心的重點就在於 write 和 read。
RTC 的應用就是要把 RTC module (slave) 跑的時...