Piとは、シングルボードコンピューターです。キーボード、マウス、ディスプレイを繋げば超小型のPCとして使用できます。何を今更、という話ですが、上記のような認識だと罠にハマってしまう可能性があります。Piには無いものがあるのです。ハードウェアクロックとも呼ばれます。いわゆる時計のことです。普通のPCはいちど時計を設定すれば、電源をOFFにしている間も時を刻み続け、次にONにした時も何事もなく正しい日時が設定されます。電源をOFFにすると時計が止まり、次にONにしたときには前回OFFにした時刻から時計が再開します。Piは標準でインターネットに接続されていると自動で時刻合わせが行われるため、RTCが無いことを把握していない方も案外多いような気がします。今回、インターネット接続がないオフラインで使用しても時計が狂わないようにしなければいけなくなったので、いろいろ試してみました。Pi向けの情報だったり設定が複雑だったりしました。この記事は、2019年8月時点での最もシンプルな設定で実現する方法ということで、記録として残します。普通のPCには時計の回路がマザーボードに実装されています。Piに外付けすれば良いわけです。私達はモジュール自作する予定ですが、まずは実現可能性を探るために既製品を使用します。次の2つの製品を試しに購入しました。(DS3231)まずは1の方を試します。status”を実行すると、次のように表示されます。timeのところがn/aと表示されています。時計の機能がないことを示しています。今回、I2Cのインターフェースを使って時計を外付けするので、I2Cを有効にする必要があります。PiのI2Cを使って電圧を測定する(2019年3月版)の記事をご参照ください。1′′と入力し、接続前の状態を見ておきます。なにも検出されません。RTCモジュールを接続これを接続します。並行輸入品このモジュールの良いところは、充電回路があるためバッテリーに二次電池が使えます。Piの電源を入れれば充電されるので、電池の交換が困難な場所に設置する場合に最適です。5個入このモジュールの悪いところは、充電できる電池ではなく普通のボタン電池を使いたい場合は改造が必要なところです。Piで使用するには、モジュールのプルアップ抵抗を外す必要があります。このモジュールの何とも言えないところは、EEPROM(24C32)が乗っているところです。データを保存できるようですが、今回はRTCがあれば良かったので私としては不要でしたし、RTCとEEPROMを同居させるメリットも良く分かりません(Arduinoでの使用を想定していそうなので、Arduino的にはEEPROMがあった方が都合が良いということかも知れません)。外す対象は次の写真で白い丸で示した抵抗です。二次電池じゃない普通のボタン電池を使用する場合は、赤い丸の抵抗かダイオードを外すそうです(未検証)。プルアップ抵抗を外して接続するとこんな感じです。接続して認識されたか確認します。