概要
- ESP8266 を使ったアナログ時計の自動時刻補正プロジェクト
- NTPサーバー から時刻を取得し、時計を常に正確に保つ仕組み
- Lavetモーター制御 のためのクォーツ時計改造方法
- 電源断対策として EERAM に針位置を保存
- 初期設定や状態確認のための Webインターフェース 提供
ESP8266 WiFi アナログ時計の概要
- WEMOS D1 Mini ESP8266モジュール とArduinoスケッチによる構成
- NTP(Network Time Protocol)サーバー から自動でローカル時刻を取得
- 15分ごとにサーバーへ再接続し、常に 高精度な時刻表示 を実現
- サマータイム(DST)自動調整 対応
- 安価なアナログクォーツ時計を制御対象
ハードウェア構成と時計改造
- Walmartで購入した クォーツムーブメントアナログ時計 利用例
- アナログ時計のクォーツムーブメントを分解し、内部の Lavetステッピングモーターコイル を切り離し
- コイルのリード線にワイヤーを半田付けし、 ESP8266との接続端子 を作成
- コイルのワイヤーは非常に細く、 取り扱い注意
- 他の事例もWebで検索可能
ソフトウェアと動作概要
- Arduinoスケッチ「 AnalogClock.ino」による制御
- 1秒間に10回、 アナログ時計の時刻とNTP取得時刻を比較
- 時計が遅れていれば、 ESP8266が秒針を進めて補正
- 時計が進みすぎている場合は、 実時刻が追いつくまで待機
- 秒針制御は Lavetモーターコイルにバイポーラパルス を送信
- 時計機構によって PULSETIME定数 (パルス幅)は調整が必要(例:30msが推奨値)
- 針位置のフィードバック機構がないため、 電源断時の針位置ロスト問題
針位置記憶と復旧
- Microchip 47L04 Serial EERAM(4Kbit SRAM+EEPROMバックアップ) 利用
- 時計の針位置(時・分・秒)を毎秒EERAMに保存
- 電源再投入時に 最後の針位置をEERAMから復元
- 初回起動時は Webページで針の初期位置設定 が必要
Webインターフェースと状態表示
- ESP8266は 簡易Webサーバー としても動作
- 時計の状態表示ページを提供
- 状態ページでは
- SVG(Scalable Vector Graphics)による時計盤描画
- HTML Canvasによる時計盤描画
- テキストのみの表示
- などのオプションを選択可能
- セットアップページ や 時計状態のグラフィカル表示 が可能
注意点・補足
- 安価なアナログ時計の改造は 自己責任
- コイルの扱いに細心の注意
- 電源断時の復旧策 としてEERAMの活用が重要
- Webインターフェース によりユーザーの利便性向上