JJY(電波時計の標準電波)をPythonで発信する

アプリ開発

腕時計はノーメンテで使えることが重要だと思い購入した電波ソーラーの腕時計ですが、先日よく見たら24秒も進んでいました。。

何が電波時計じゃーー!と思ったわけですが、よくよく考えたら引っ越す前はこんなことはなかった。

部屋に電波が届かないのではないかと思い、ふと窓を見ると格子状に針金が入っています。

網入りガラスというものです。

網入りガラスは防犯上ありがたいのですが、電波時計の電波は届きません。

僕の腕時計は深夜2時~4時に電波を自動受信するので、毎晩その時間にベランダに置いておけば時間がずれることはないでしょうが、そんなツッコミどころ満載の対応をできるわけがありません。

そこで何か良い方法はないか調べたところ、JJYシミュレータを見つけました。

JJYシミュレータWeb版

Web JJY

このJJYシミュレータでは、プログラムで13.333kHzの矩形波の音をJJYのプロトコルに合わせて再生します。

13.333kHzの矩形波には、3倍音の40kHzの音が含まれます。

イヤホンジャックにつないだケーブルをアンテナとして、この音を流すことで電波を発信するという原理です。

(これを考えた人はとても賢い。3倍音なんて普通思いつきますかね。。)

僕の腕時計を合わせるには、深夜2時~4時に電波を発信できれば良いのですが、上記シミュレータをそのまま使うと常に電波を発信してしまうので微妙です。

そこで自前でPythonスクリプトを作成し、自宅のWindowsサーバのイヤホンジャックにアンテナを繋いで、タスクスケジューラで深夜にスケジュール実行することにしました。

JJYのプロトコルはこちらに公開されています。

標準電波の出し方

作成したPythonスクリプトをGitHubに公開しました。

GitHub - NABUKAT/timesync
Contribute to NABUKAT/timesync development by creating an account on GitHub.

このPythonスクリプトでは、JJYの電波を約15分間発信します。

腕時計の自動受信の時間帯に合わせて、スケジュール実行するように設定しました。

アンテナはAMラジオのループアンテナが家に余っていたので、フォーンプラグを半田付けして自宅サーバに接続しました。

このアンテナの近くに腕時計を一晩置いておけば、見事、翌朝には時刻が修正されるようになりました。

コメント

タイトルとURLをコピーしました