電波時計が使えないなら電波塔を作ればいいだけだ
2021年04月07日 水曜日
電波時計が自宅で使えない
どうしたら正確な時刻を刻めるのか
そこで考えたのが
- ラズパイを買って壁にディスプレイを取り付けNTPで取得した時間を常時表示する
- NTPに対応した掛け時計を買う
- 「NTPリピーター」と呼ばれる装置からNTPで取得した時間を電波時計で受信できるように送信する
最初は1を考えましたが見た目が気に入らなく常時ディスプレイを表示はあまりにも色々な理由で微妙すぎるのでやめた。
その後2と3で悩みました。
2. NTPに対応した掛け時計を買う
参考製品:https://www.seiko-sol.co.jp/products/ntp_clock/
これが一番シンプルでベストな解決策だと思います。
しかし、この時計はとてもお高いです。
なので諦めました。
3. 「NTPリピーター」と呼ばれる装置からNTPで取得した時間を電波時計で受信できるように送信する
こちらも2万円からとお高いので悩みながら自作できないかと調べました。
調べ始めた時は電波時計の仕組みなんて欠片も知らず、検索中にたまたま目に付いた「JJY」と呼ばれる単語を頼りに調査を進めました。
JJY(ジェイ・ジェイ・ワイ)とは、日本標準時を送信する日本の無線局である。総務省所管の国立研究開発法人情報通信研究機構(NICT)が運用している。
すると「電波時計用JJYシミュレータ」( https://www.starstonesoft.com/JJY_Simulator.htm )や「web-jjy」( https://github.com/shogo82148/web-jjy )を発見した。
このツールはオーディオインターフェースからイヤホンなど繋いで変な音を出すと何故か電波が出るらしい。
早速、ヨドバシカメラにアンテナ用パーツを買いに行って、JJYと呼ばれてる謎の電波が出せるか検証した。
結果はなんと時刻同期に成功
とは言え、メインPCから常時耳障りな音を出力したくないので専用のPCを用意する事にした(昔に買ったマウスコンピューターのスティックPCが数本余っているのでそれを採用した)
そして完成したJJY用アンテナを部屋の高い位置に設置。
これで部屋の時計は正確な時刻を刻む事ができるようになって一安心。
時計が2台あるのは電池の消費と共に時間のズレや停止する事を考慮した冗長化の為です。(寝起きとかでも瞬時に異常に気が付ける)
ちなみに、今後はWindows機からラズパイに変更したいなと思っているのでJJYを調べたらとても仕組みは簡単そうだった。
周波数13333の音を出すことで40kHzを出すことが可能らしい。(なぜ40kHzが出るかは難しそうだから調べる事をやめた)
でも周波数13333で音を刻むだけなので難易度は高くなさそうだ。
どうやら下記の表通り1分間で60回の音を出して時刻同期をしているらしい。
ビット | 重み付け | 意味 | ビット | 重み付け | 意味 | ビット | 重み付け | 意味 |
---|---|---|---|---|---|---|---|---|
00 | M | マーカー | 20 | 0 | 未使用 | 40 | SU2 | 未使用 |
01 | 40 | 分 | 21 | 0 | 41 | 80 | 年 | |
02 | 20 | 22 | 200 | 通算日 | 42 | 40 | ||
03 | 10 | 23 | 100 | 1月1日=1 | 43 | 20 | ||
04 | 0 | 24 | 0 | 平年の12月31日=365 | 44 | 10 | ||
05 | 8 | 25 | 80 | 閏年の12月31日=366 | 45 | 8 | ||
06 | 4 | 26 | 40 | 46 | 4 | |||
07 | 2 | 27 | 20 | 47 | 2 | |||
08 | 1 | 28 | 10 | 48 | 1 | |||
09 | P1 | ポジションマーカー | 29 | P3 | ポジションマーカー | 49 | P5 | ポジションマーカー |
10 | 0 | 未使用 | 30 | 8 | 通算日(続き) | 50 | 4 | 曜日 |
11 | 0 | 31 | 4 | 51 | 2 | 日曜日=0、土曜日=6 | ||
12 | 20 | 時 | 32 | 2 | 52 | 1 | ||
13 | 10 | 33 | 1 | 53 | LS1 | 月末にうるう秒が実施されることを示すビット | ||
14 | 0 | 34 | 0 | 未使用 | 54 | LS2 | うるう秒の種別。挿入=1、削除=0 | |
15 | 8 | 35 | 0 | 55 | 0 | 未使用 | ||
16 | 4 | 36 | PA1 | 時のビット(:12–:18)の偶数パリティ | 56 | 0 | ||
17 | 2 | 37 | PA2 | 分のビット(:01–:08)の偶数パリティ | 57 | 0 | ||
18 | 1 | 38 | SU1 | 未使用 | 58 | 0 | ||
19 | P2 | ポジションマーカー | 39 | P4 | ポジションマーカー | 59 | P0 | ポジションマーカー |
例えば “2021年3月28日(日曜日)02時35分53秒 JST” であれば以下のようになる。
これだけ理解できればラズパイ用にプログラムを書くだけだから簡単そうだ。
ということでやる気が出た時にでもやります。
執筆者Twitter | @ryota_imanishi |
本実験はオーディオ用のイヤホン端子から出力される音声信号に対する三次高調波を使って約40kHzの電波を発生させるものです。イヤホン端子の出力は微弱であり、また、実際に制作された送信機を時計のそばから離すと電波時計が同期できなくなることから、発生している電波の強度は電波法で規定される微弱無線局の上限を下回っているものと考えられます。なお、アンプなどを用いて送信出力を増幅すると微弱無線局の上限を超える電波が発射される恐れがありますのでご注意ください。