世界を動かす技術を、日本語で。

Walmartの$3.88アナログ時計をESP8266ベースのWi-Fi時計に改造する

2026年2月10日原文(github.com)

概要

  • 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インターフェース によりユーザーの利便性向上

Hackerたちの意見

いいプロジェクトだね!個人的に一番面白いのは「EEPROMバックアップ付きSRAM」チップだと思う。これを使うと、時計の針の位置を動かすたびに持続的に保存できるんだ。普通のEEPROMの書き込み耐久性を消耗せずに済むし、単品だと1ドル以下で手に入る。知っておくと便利な製品だね。

これが同じ技術かはわからないけど、どちらにしてもクールだね!https://www.adafruit.com/product/1897

それは本当に面白いね。今日学んだ。これがどう機能するかというと、SRAMとEEPROMが一つのパッケージに入っていて、両者と通信するコントローラーがあって、その近くに小さなコンデンサー(この時計は4.7μFを使ってる)もあるんだ。SRAM部分は普通のSRAMの機能を果たしていて、読み書きしても劣化しないし、電源がある限りデータを保持する。EEPROMは普通のEEPROMの機能を果たしていて、データを永遠に保存する(個人の人間のスケールで言えばね)、でも書き込みサイクルはちょっと制限されてる。コントローラーは、低電圧を検知すると「やばい!」ってなって、すぐにSRAMの内容をEEPROMにダンプする。これでEEPROMの書き込みサイクルを節約できる。電源イベントがなければ、EEPROMは全く書き込まれない。一方、コンデンサーは「やばい!」イベントが起きたときにEEPROM書き込みを行うための電力を供給する。電源が戻ったら、EEPROMのデータがSRAMに戻される。--- 欠点は?この47L04は4キロビットしか保持できない。利点は?ホビー用プロジェクトや限られた生産において、問題を解決するために1ドル使うのはほとんど何でもないよね。 :)

これが好きだけど、あまり手を汚したくないなら、Crazy Clockをチェックしてみて!https://www.tindie.com/products/nsayer/crazy-clock/ 娘のために買ったんだけど、変な音が勉強の邪魔になっちゃったから、今はお休み中。だけど、すごく楽しめたよ。

早めの時計 - 時間が0分から10分早く進む。遅れないように時計を進めるのが好きな人向け。この時計は「補正」しようとするのを防いでくれるから、今がどれくらい早いかわからない。ADHDタイプの人にはかなり賢いアイデアだね。唯一の問題は、現代の家庭にはたくさんの時計が見えるから、それらを設定しないと決めないといけないこと。

こんな感じの安いプロジェクション時計を改造してる人を見てみたいな。https://www.homedepot.com/p/La-Crosse-Technology-5-in-Color-... 赤い投影は夜にちょうどいい明るさなんだけど、Wi-Fi対応じゃないのが残念。NTP同期もできないし、GPS受信機も接続できない。時計のプロジェクター部分はリボンケーブルで接続された別のデバイスなんだ。自分で逆アセンブルしたいけど、時間がないんだよね。理想は、天井にLEDのマトリックスを投影して、時間だけじゃなくてもっと情報が得られること。そういう時計はあるけど、めっちゃ高いんだよね!例: https://buyfrixos.com/

HNの精神を損なうことになるけど、数時間ハッキングしてパーツを買ったら、その価格はそんなに悪くないかもね。

+1 テムからデジタル時計をいくつか持ってるけど、見た目はいいのに正確な時間が保てないんだ。徐々に早くなって、1ヶ月後には約1分進んでる。時計を修正するのが面倒だし、Wi-Fi接続のソースから時間を取れたらいいのに。

明るさが低いものを探してるなら、僕が作ったのがあるよ!https://www.stavros.io/posts/i-made-another-little-bedside-c...

あなたがリンクしたやつは「原子時計」って言ってるけど、普通はWWV/WWVBからのラジオ同期を意味するよね。俺もこういう安い壁時計をいくつか持ってるけど(プロジェクター付きのはないけど)、見た感じいつも正確だし、ずれも感じたことないよ。あの特定のやつを試して、精度がイマイチだったの?原則的には、コンピューターネットワークを使ったNTPよりもこの方法の方がジッターが少ないはずだと思うんだけど。

部屋の暗さによっては、普通の明るいLCDスクリーンとカメラレンズでなんとかなるかも。アマゾンとかでよく見かける240x240pxの1インチ四方のTFTディスプレイから始めるのがいいかもね。

これって、例えばこれとどれくらい違うの?: https://www.amazon.com/ihreesy-Movement-Mechanism-Silent-Rep...

Hacker Newsで議論の続きを見る