2017/07/19(水) [n年前の日記]
#1 [raspberrypi] Raspberry Pi3にRTCモジュールを追加してみた
昨日届いた、DS3231使用のRTCモジュールを、Raspberry Pi3に追加してみた。以下を参考に作業。
_「Raspberry Pi 3 (ラズパイ3)」 RTC 追加 : Snow in Novemberのblog
_Raspberry Pi 3BでRTC(リアルタイムクロック)|Penta creation
_Raspberry PiでDS3231 RTCを正しく動かす - My life is programming
_Raspberry Pi 2 で RTC を使いスタンドアロンで時刻を保持 - 或る阿呆の記
_RedSleeve へのミニ RTC モジュールの導入 | あたがわの日記
一応、行った作業をメモ。
_「Raspberry Pi 3 (ラズパイ3)」 RTC 追加 : Snow in Novemberのblog
_Raspberry Pi 3BでRTC(リアルタイムクロック)|Penta creation
_Raspberry PiでDS3231 RTCを正しく動かす - My life is programming
_Raspberry Pi 2 で RTC を使いスタンドアロンで時刻を保持 - 或る阿呆の記
_RedSleeve へのミニ RTC モジュールの導入 | あたがわの日記
一応、行った作業をメモ。
◎ 本体に接続。 :
GPIOの、1,3,5,7,9版に接続。でいいのかな。
◎ OS側の設定。 :
Raspberry Pi3 と RTCモジュールは、I2Cなる規格(?)で通信するらしい。raspi-config で I2C を有効化する。
I2C関係のツールをインストールする。が、最初から入ってた。
状態を確認。
/boot/config.txt に以下の行を追加。
状態を確認。
sudo raspi-configenable にしたら再起動(sudo reboot)…しただけでは何故か正常起動しなかったので、一旦電源ケーブルを抜いてからまた差し直した。
I2C関係のツールをインストールする。が、最初から入ってた。
sudo apt install i2c-tools
状態を確認。
sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --68と出てきた。たぶん認識されてる。のかな。
/boot/config.txt に以下の行を追加。
dtoverlay=i2c-rtc,ds3231再起動。sudo reboot。
状態を確認。
sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --UUが表示された。有効になってるっぽい。
◎ ntpdateをインストール。 :
ntpdate をインストールして、NTPサーバの時刻を強制取得。
RTCに設定。
sudo apt install ntpdate sudo ntpdate -u ntp.jst.mfeed.ad.jp date
RTCに設定。
sudo hwclock -w
◎ ntpを停止。fake-hwclockをアンインストール。 :
ntpが動いてるとRTCとのソレがアレになるらしい。また、フツーの Raspberry Pi にはRTCがついてないので、fake-hwclock なるソレでそれっぽくしてるらしい。ので、サービスを無効にしたり、アンインストールしたり。
sudo apt install chkconfig sudo chkconfig ntp off sudo apt remove fake-hwclock sudo dpkg --purge fake-hwclock
◎ /etc/rc.localに追加。 :
/etc/rc.local に、RTC からシステムクロックに時刻を設定するソレを記述する事例が多いっぽいので真似したり。
/etc/default/hwclock を修正。
サービスとして追加する方法もあるらしい。そのほうが、起動直後から早く時間が設定されるとか…。そのうち試してみたい。
sudo vi /etc/rc.local以下を追加。
# RTC /sbin/hwclock --hctosys sleep 10 /usr/sbin/ntpdate -b ntp.nict.jp && /sbin/hwclock --systohchwclock -s (hwclock --hctosys) で、RTCからシステムクロックに時刻を設定。また、ntpdate が成功したら、その後に続く処理、hwclock -w (hwclock --systohc)が実行されるらしい。
/etc/default/hwclock を修正。
sudo vi /etc/default/hwclock
HWCLOCKACCESS=no
サービスとして追加する方法もあるらしい。そのほうが、起動直後から早く時間が設定されるとか…。そのうち試してみたい。
◎ cron で一定時間毎に時刻合わせ。 :
sudo crontab -e
# m h dom mon dow command 0 0,12 * * * /usr/sbin/ntpdate ntp.nict.jp && /sbin/hwclock -w00:00、または 12:00 に、ntpdate でシステムクロックを設定後、RTCに設定。ということでいいのかな。
◎ 一応動いてるっぽいような。 :
不良品のRTCモジュールが届いてたらどうしようと不安だったけど、一応動いてるように見える、ような。ホッとした。ただ、通電してない状態で、どの程度時刻を保持できるのかはまだ不明。
◎ 使われている電池について。 :
Amazonのレビューには、CR927 なる電池が使われているという話が。
_ボタン電池 CR927の規格や互換品などの詳細情報
_CR927 ‐ 通信用語の基礎知識
充電池ではないっぽい。すると、既に電池が切れてたり、そのうち切れちゃう可能性が。電池交換は…無理だな…。電池に直接端子を溶接してあるし…。個人が半田ごてで何かくっつけようとしたら、熱で電池が爆発しそうだし。
コイン型電池を交換できるタイプのソレを買ったほうが良かったのだろうか…。
_ボタン電池 CR927の規格や互換品などの詳細情報
_CR927 ‐ 通信用語の基礎知識
充電池ではないっぽい。すると、既に電池が切れてたり、そのうち切れちゃう可能性が。電池交換は…無理だな…。電池に直接端子を溶接してあるし…。個人が半田ごてで何かくっつけようとしたら、熱で電池が爆発しそうだし。
コイン型電池を交換できるタイプのソレを買ったほうが良かったのだろうか…。
[ ツッコむ ]
以上です。