本篇文章更新時間:2026/02/10
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
用微控制器重塑傳統指針鐘:讀《ESP8266 WiFi Analog Clock》專案後的三個重點啟發
編輯前言:這篇筆記整理自 GitHub 專案 ESP8266 WiFi Analog Clock。作者把一個 3.88 美元的指針鐘改造成「自動連網校時」的智慧鐘,整個過程從硬體到軟體都相當具啟發性。
核心觀點 (Key Takeaways)
- 利用 ESP8266 連上 NTP 伺服器,讓傳統石英鐘自動對時,而且每 15 分鐘同步一次。
- 透過修改石英鐘內部 Lavet motor 線圈,讓鐘的步進動作完全由 ESP8266 控制。
- 使用 Microchip 47L04 EERAM 儲存指針位置,解決指針鐘「無回饋機制」導致斷電後無法知道指針位置的問題。
深入解析
這個專案最有趣的地方,在於它不是打造一個新時鐘,而是「接管」傳統石英鐘的核心——步進馬達,並讓 ESP8266 以網路時間取代原本的震盪器當作時基。
作者一開始就說明:
十次每秒比對時鐘指針位置與 NTP 實際時間,若指針落後就快速推進;若指針領先則只能等待。
這句話點出了指針鐘最棘手的限制:無法倒轉。因此程式的邏輯並不是以「絕對控制」為前提,而是以「補償誤差」為核心思維。
-
硬體拆解:接管步進線圈
作者使用 Walmart 的一般石英鐘,打開外殼後,將 Lavet motor 與內建震盪電路斷開,再拉出線圈的兩條極細導線。這些導線非常脆弱,操作時要小心。ESP8266 之後會用正負交替的脈衝來推動秒針前進。 -
軟體調整:脈衝控制與時間回報
在程式中,PULSETIME決定脈衝時間長度,不同時鐘的機構反應不同,所以需要自行微調。作者的最佳值是 30ms。更關鍵的是:為了避免斷電後 ESP8266 忘記指針位置,作者採用 47L04 EERAM——一種 SRAM+EEPROM 的組合,能在每秒更新指針位置,並在下一次啟動時讀回。
第一次啟動時,ESP8266 還會提供一個簡單的網頁,讓使用者手動告訴系統指針的初始位置。
-
操作介面:狀態頁與 SVG/Canvas 繪製
完成後,ESP8266 會提供一個狀態網頁,顯示時鐘目前的時間與狀態,並可以選擇用 SVG、Canvas 或純文字來呈現指針鐘畫面。
筆者心得與啟發
讀完這個專案,我最大的感受是:有時候最具創意的設計,不在於打造一個新裝置,而是重新理解舊物件,並找到讓它「更聰明」的方法。
指針鐘沒有位置回饋,也不能倒轉,依照一般邏輯似乎不適合與微控制器結合。但作者以 EERAM 解決記憶問題,以補償誤差的邏輯處理同步,讓傳統機械機構與現代網路時間完美結合。
如果你手邊有便宜的石英鐘,這個專案不只是好玩,更能讓你重新認識步進機構的運作方式。若是想實際應用,我會建議:
- 選擇機構品質好一些的石英鐘,脈衝控制會更穩定。
- 在改裝線圈時用熱溶膠固定細線,避免折損。
- 若想加入更多功能(例如報時、環境感測),ESP8266 的擴展性完全足夠。
把一個廉價時鐘改造成「永遠準時的 IoT 指針鐘」,這種把舊物件重新賦能的專案,永遠都值得花時間研究。
