第3回“会議コスト教える君”開発日誌

皆さんこんにちは!たいチャレ開発日誌 第3回です。

今回はWebシステム開発8年目のあまり若手じゃない社員Kがお届けします。
普段は主にJavaで開発をしていますが、組み込み開発チームと共同のプロジェクトに参画することもしばしば。
そんな中で、Raspberry Piにも触ってみたくなったので、たいチャレに参加しました!
今回の開発はPythonにて進めていますが、初挑戦なので悪戦苦闘しています・・・

開発状況

先月に引き続き、各自製造を進めています。
私は現在、RTCモジュールを使ったRaspberry Piの時刻同期機能に挑戦中です。

時刻同期?

皆さん当たり前のようにPCやスマートフォンで時間を確認していると思います。
Raspberry Piにも同じように時計はありますが、電源を切ると時計も止まってしまうのです。
そのため、次に電源を入れた時に表示されるのは「前回電源を切った時刻」となり、実際の時刻からずれてしまいます。
※インターネットに接続されている場合は、起動時に自動で現在の時刻を取得できます。

そこで登場するのがこの RTC(リアルタイムクロック)モジュール
このモジュールがRaspberry Piの停止中も時間を数えてくれます。

RTCモジュールの写真
RTCモジュールとボールペン。比較すると、こんな感じの大きさです。

・・・とはいえ、時計は時計。
放っておくと少しずつずれてしまうので、インターネット経由で定期的に時刻合わせ(=時刻同期)をする、という機能の開発が今回のミッションです。

いざ、実践!

開発を始める前に、まずはRTCモジュールの動作確認をしたいと思います。

① RTCモジュールに電池を入れます。

RTCモジュールに電池を装着した写真
RTCモジュールの裏側。ボタン電池が入ります。

② Raspberry Piに取り付けます。

ラズベリーパイにRTCモジュールを取り付けた写真
取り付け前(左)と取り付け後(右)
左端にピンがたくさんあるので、この中の赤枠で囲った位置に取り付けました。

③ Raspberry Piの電源を入れて、各種設定を行います。

(1) I2C通信の有効化
I2C(Inter-Integrated Circuit)は通信方式の1つで、今回はRTCモジュールとの通信に使用します。

RTC有効化の手順1


(2) I2CデバイスにRTCモジュールを登録

RTC有効化の手順2
これでRaspberry PiからRTCモジュールにアクセスできます。


(3) RTCモジュールに現在の時刻を書き込む

RTC有効化の手順3
Raspberry Piの時刻がずれている時は、直してから書き込みましょう!


(4) Raspberry Pi起動時にRTCモジュールの時刻を取得するように設定

RTC有効化の手順4
/etc/default/hwclockと、/etc/rc.localに設定を追加しました。

④ Raspberry Piをインターネットから切断し、再起動します。

ラズベリーパイ再起動後の画面
dateコマンド(Raspberry Piの時刻)とhwclock(RTCモジュールの時刻)が揃いました!
※秒がずれているのはコマンドを実行したタイミングの差です。


これでRTCモジュールの取り付けと動作確認は完了です。
この後は実際に時刻同期のプログラムを作成していきます!


余談ですが、RTCモジュールを取り付けたらRaspberry Piケースの蓋が閉まらなくなりました。
画像のRaspberry Piは開発用なので仕方ないですが、本番ではこうならないように設計が必要なんですね。
一つ学びました・・・

RTCモジュールを取り付けたラズベリーパイをケースに入れた写真
RTCモジュールにピン付いているのですが、これがケースからはみ出しているようです・・・


ということで、今回は少し地味ですがRTCモジュールのお話でした。
次回は8月に更新予定です。お楽しみに!

投稿者プロフィール

WebエンジニアK
WebエンジニアK
主にWebシステムの開発を行っています。言語はJava、PHPなどで、フロントエンドもバックエンドもやってます。好きな業務は仕様検討とSQL作成。業務以外でも新しいことに挑戦すべく、たいチャレ参加中です。