リアルタイムクロック(RTC)をUECS Piに接続する
Raspberry Piは、 インターネット上のNTPサーバから時刻をもらって自動的に時刻合わせをしてくれます。インターネットに接続している限り時刻のずれは心配ないわけです。しかし、ネットに接続していなくてRaspberry Piの電源が落ちた場合には時刻のずれが起こります。ただ単にセンサーのデータを見るだけであれば問題ないかもしれません。しかし時刻をもとに制御を行うことを想定した場合、深刻な問題になるかもしれません。
Raspberry PiにはRTCが標準装備されていません。UECS Piの制御ノードに使用するUniPiにはRTCが装備されていますが、UniP自体2万円ぐらいするものですから安価にできるなら安価にRTCを使いたいものです。
幸いRaspberry Pi用のRTCモジュールはネットで安価に販売されています。今回はこれを使ってみました。
DS1307の場合
写真の3種類のモジュールを試してみました。品切れの可能性もあり、なるべく複数のものに対応しておくのが安全かと思います。まずは一番右のDS1307です。Raspberry Piとの接続
2×5のソケットがついてます。左上の四角で囲ったピンがRaspberry Piの1番ピン3.3Vに接続するようになっていて、そのまま挿せば動きます。通信はI2CでSDAとSCLのピンを使用します。電源は5V、あとGNDのピンを使用します。
DS1307のデータシートを見ると5V、GND、SDA、SCLだけ接続すればいいはずなのですが、3.3Vの電源も接続しないと動きません。モジュールの回路図がないのではっきりしませんが、通信系の回路で3.3Vを使用しているのかもしれません。もともと5Vのマイコンで使用することを想定して作ったチップのようですが、Raspberry Piは3.3Vなので合わせる必要があるのかもしれません。
config.txtの設定
時刻の自動設定
hwclockはハードウエアクロックにアクセスするためのツールですが、その機能を使ってRTCに自動設定する方法です。/etc/udev/rules.dディレクトリに「85-hwclock.rules」という名前のファイルを作成し、以下の内容を書き込みます。
(意味は分かってないのですが、おまじないだと思って設定してみます)
これでNTPの時刻をRTCに自動設定できるはずです。
確認
RTCを接続して起動したら、timedatectlコマンドで確認します。
RTC timeがUniversal timeと同じで、Local timeが現在時刻とあっていればOKです。
RTCの効果を確認するには、ネットワークを外した状態でRaspberry Piの電源を落とし、しばらく電源をオフにしたままにしたあと立ち上げて現在時刻と一致していることで確認できます。
DS3231の場合
冒頭写真の左と中央がDS3231です。DS1307との違いや設定方法は下記を参照ください。
設定方法参照 https://k-kuro.hatenadiary.jp/entry/20200826/1598423659
データシート https://www.alldatasheet.jp/datasheet-pdf/pdf/254832/MAXIM/DS3231.html
比較のサイトにはDS3231はDS1307の改良版であり互換性があるが、コストが高いと書いてますが、ネット販売でのモジュールの価格は大差ないようです。Raspberry Piで使用することを想定した場合、DS3231は電源電圧が3.3Vでも稼働するので使い勝手がよさそうです。
Raspberry Piとの接続
黄色のDS3231のほうが小型で電池付きで値段が安いのですが、電池が貼り付けてあってどうも交換ができそうにありません。電池が切れたらモジュールごと交換になりそうです。(出荷前に電池が取り付けてあってRTCが動いていたとすると、在庫期間が長いものはすでに電池切れにならないかと不安になったりする)
Raspberry Piの設定
しかし、前述のようにDS1307とDS3231は互換性があるようでdtoverlay=i2c-rtc,ds1307の設定のままで稼働しました。
時刻の自動設定の定義(85-hwclock.rules)もDS1307と同じで構いません。つまりモジュールを差し替えればそのまま動くということです。
おわりに
*「UECS Pi」「Arsprout Pi」はアルスプラウト株式会社が提供する汎用DIY環境制御ソフトウェアです。https://www.arsprout.co.jp/products/others/uecs-pi/
*「UECS」は農業用のセンサー機器や制御機器用の通信・動作の共通仕様です。UECS研究会が公開しています。https://www.uecs.jp/outline/outline-index
関連リンク:EzITコンサルティング www.ezitc.dev
コメント
コメントを投稿