電波時計に10分前行動させてみる

目の前の電波時計が正しい時間を指していないとき人はそれをどうにかしたいという欲求にかられ、良いものが無いか探し、数々のアイディア実績を見つけて感動し、メーカー品の電波時計は実際にすぐにスマホで同期でき、景品でもらった時計は同期してくれないようなのでおもむろにブレッドボードを出してくるのでした。

ブレッドボードで何となく思い出して検索したら普通に売っててちょっと感動しました。ESP32のブロックないかしら。ピンというか接合部の数や向きの制約が大きいので脳トレにも最適かも?それはさておき

時刻の取得は窓際でGPSかJJY受信、飛び交うWi-Fi使ってNTPなどいろいろ考えられますが、もちろんいつものようにがんばらない、パーツもワイヤリングも最小限で済ませる方針の元、検索した実績を見て必要なものはESP32搭載で技適も通ってる開発ボード、抵抗、イヤホンとジャック、発光ダイオード、これが最小かつモバイルになりそうと考えました。

Wi-Fi経由でNTP時刻取得する時点で ユー、それにI2C LCDつないで時計にしちゃいなよ ってなもんで温湿度センサーを付けて既存の電波時計に似せていくのもありだと思いますが、目の前の電波時計は見えないところにしまわれちゃうことになってしまうので、今回は多数派でもある NTP(Wi-Fi) -> JJYリレー(リード線近接)にしました。モード切替したくなったのでスイッチも追加です。手元にはArduino MEGAとESP8266の開発ボードしかなかったのでESP32を注文しつつ兄弟のESP8266で始めてみました。

結論としてESP8266のソフトウェアPWMの最大値の40kHzでも一晩ほっておけば電波時計は10分前行動するようになっていました。おそらくJJY シミュレータのやり方のようにもっと低い周波数(の矩形波)でやればもう少し早く同期するようにできたのだと思います。しかし良い時代で翌日にはESP32届いたのでがんばりません。ESP32の結論としては先人の実績の通りあっさり実現できました。パルス幅合わせはESP8266の結果やdelay()実装での動作感想などを見ていてタイマー割り込みにしないとダメなんだろなと想像していましたがdelay()で余裕でした。えらいぞESP32の処理能力。

作成したスケッチです。ライセンス不明瞭なものでコンタミしないようにパブリックドメインのNTP以外はスクラッチから書き起こしてます。ボードの選択以外にライブラリの追加などをしたくなかったので時間計算はすべて自前です。
esp32JJY.ino

  • 40kHz 7分 -> 60kHz 5分 -> 次の毎時59分までディープスリープ を繰り返すノーマルモード
  • 40kHz 12分 -> 60kHz 10分 -> 次の毎時59分までディープスリープ を繰り返すロング1モード
  • 60kHz 12分 -> 40kHz 10分 -> 次の毎時59分までディープスリープ を繰り返すロング2モード

の3つのモードを作ってみました。10分前行動させるためのオフセット、各モードの時間、Wi-Fi設定、NTPサーバの指定など先頭にまとめてあります。なお普段から時計を15分進めてセットする人でも電波時計は正しい時間を指していることを期待しているようで、みんなが見る電波時計を正しい時間以外にするとちょっとした騒ぎが起こるようです。

結線も図にするまでもないので字で書いてしまうと、PWM出力できるGPIO -> 発光ダイオード -> 抵抗 -> リード線(イヤホンでOK) -> GND でそのまんま。抵抗はいったん10kΩのポテンショメータ利用で電流を測定して8mAになったときの抵抗値より少し多い7.4kΩを採用。ここはイヤホンにより大分違うと思います。モード切替には 入力に使えるプルアップ抵抗付きGPIO -> タクトスイッチ -> GND でああ簡単。

Arduino IDEでESP8266のNTPClientのスケッチ例から手を入れ始めて進行したのでそのまま最後まで突き進みましたが、今回の規模がこのIDE単体でやっていける限界か、限界を超えているかなという感想です。みなさんは何をお使いでしょう。次に遊ぶときは気が向いたら慣れてるEclipseで開発環境作ろうかと思います。

景品でもらった時計と、JJY受信状況が表示されるメーカー品の時計を普通の巻取りサイズのこぶし大で3巻したイヤホン沿いに置いて実験した結果、10分程度の大きなステップでの同期は景品の方が3分くらい、メーカー品が5分くらいかかり、同期後の再同期は景品が3分くらい、メーカー品が2分くらいでした。メーカー品の実装の方がより現実的に見えます。5cm離せば感度の良い方のメーカー品でも同期しなくなり、ちょうど良さそう。

2,000円台のGPSに引き続き、2,000円程度のマイコンで昔のPCを超えた処理能力を使えるという、楽しい時代です。技適や電界強度にはご注意を。

コメントを残す

メールアドレスが公開されることはありません。