リアルタイムクロック(RTC)をUECS Piに接続する
Raspberry Piは、 インターネット上のNTPサーバから時刻をもらって自動的に時刻合わせをしてくれます。インターネットに接続している限り時刻のずれは心配ないわけです。しかし、ネットに接続していなくてRaspberry Piの電源が落ちた場合には時刻のずれが起こります。ただ単にセンサーのデータを見るだけであれば問題ないかもしれません。しかし時刻をもとに制御を行うことを想定した場合、深刻な問題になるかもしれません。 Raspberry PiにはRTCが標準装備されていません。UECS Piの制御ノードに使用するUniPiにはRTCが装備されていますが、UniP自体2万円ぐらいするものですから安価にできるなら安価にRTCを使いたいものです。 幸いRaspberry Pi用のRTCモジュールはネットで安価に販売されています。今回はこれを使ってみました。 (左)DS3231モジュール。Amazonで購入4個で2500円ぐらい。某中華ネット1個300円ぐらいで安価。電池は付属だが交換できそうにない。(中央)DS3231モジュール。2×6のピンソケットだが、ピンを全部使用しているわけではない。(右)DS1307モジュール。 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の設定 設定参照 https://www.indoorcorgielec.com/resources/rasp...