RasPi2にRTC(RX-8564) をつけてみる

f:id:manpukukoji:20160723215217j:plainラズベリーパイ2は、時計を持っていないので、シャットダウンすると再立ち上げの際に時刻をセットしなおさないと最後にシャットダウンした時間からの時刻になってしまう。 もちろん、インターネットに接続されていると、ネットワークからNTPで時刻をセットするので問題ないのだけれども、スタンドアロンで使うときには、毎回時刻をセットしなければ正しい時刻が得られない。
と、言うわけで、電源を落としても時刻を保持できるようにRTCモジュールを接続した。
すでに、RTCの接続については、沢山のサイトで説明されているので、あちこち参考にさせていただいた。
今回、僕が使ったのは、マルツで売っている MRX-8564 といいうモジュールでエプソンのRX-8564LC というICが乗っかっている。 これに、ボタン電池をくっつけて、ラズパイにI2Cで接続。
基盤作成は、コマンド起動用のスイッチとあわせて、こんな感じで作ってみた。
f:id:manpukukoji:20160723212535j:plain

じつをいうと、最初、ラズパイの電源からのラインにダイオードを入れてなかったので、RTCをつなぐと、いきなりラズパイのLEDが点灯したので、ラズパイが起動したのかと思って、びっくりした! さすがにボタン電池では、起動するところまでは行かなかったみたいだけど、LEDくらいは、点くんだね。 まぁ、当たり前っちゃ、あたりまえ何だけど・・・。
あわてて、こちらにもダイオードを追加したしだいです。

ラズベリーパイの設定は、以下のサイトを参考にさせてもらった。
http://tomosoft.jp/design/?p=5812
http://news.mynavi.jp/articles/2014/08/21/raspberry-pi4/002.html
http://wp.developapp.net/?p=3362

これらのサイトに詳しく説明されているので改めて説明するまでも無いけど、
僕の場合、最後の rc.local を編集して、自動起動するところで、ひっかかった。
確かに、設定をしてあるのだけれども、シャットダウンしてしばらくしてから立ち上げると、正しい時刻が設定されていない。 が、マニュアルで設定して、hwclock を表示させると、正しい時刻を表示するので、RTC自体は、ちゃんと動いているみたい。
つまり、立ち上げのときにちゃんと設定されていないみたいなので、もう一度、rc.local を良く見てたら、ちゃんと、以下のように書いてある。
“In order to enable or disable this script just change the execution bits.
By default this script does nothing”
「このスクリプトを有効/無効にするには、実行ビットを書き換えてね。
デフォルトでは、このスクリプトは、なんにもせんからね。」
と、いうことで、
$ sudo chmod +x /etc/rc.local
と、やったら、ちゃんと立ち上がりで時刻がRTCから設定されるようになった。

ラズパイも、ハードもOSもどんどんアップデートされているので、先にやった人のときは、必要なかった事が必要になってたり、逆に、必要だったことが必要なかったり、編集すべき設定ファイルが変わっていたりで、なかなか、簡単にはいかないもんですね…。