Raspberry Piの時刻を合わせる方法と正確な時刻に合わせる方法
Raspberry Piは、電源を切って翌日電源を入れると
日時が電源を切った時刻になっています。
インターネットにつながると
日時が更新され正確な時刻になります。
Raspberry Piは、
RTC(リアルタイムクロック)と
呼ばれる時計機能がありません
そのため、時刻は止まってしまいます。
インターネット環境がない所で使用するときに
使い勝手が悪くなります。
ここでは、時刻の解決策を紹介します。
Raspberry Pi 時刻問題の解決方法
日時を合わせる方法は
どんな方法があるのか紹介します。
①手動で時刻を合わせる
②コードを使って時刻を入力する
③RTCモジュールを使う
①手動で時刻を合わせる
システム設定画面から
手動で時刻を合わせます。
②コードを使って時刻を合わせる
コードをつかって
日時を合わせる方法です。
Raspberry Piの時刻を変更するには、
datetimeライブラリを使用して、
現在の時刻を入力します。
Raspberry Pi の時刻を変更するコードです。
import datetime
import subprocess
# 新しい日付と時刻を設定する
new_date = datetime.datetime(2023, 3, 24, 12, 30) # 設定したい日付と時刻に変更してください
# dateコマンドでRaspberry Piの日付と時刻を変更する
subprocess.call(["sudo", "date", "-s", new_date.strftime("%Y-%m-%d %H:%M:%S")])
このコードでは、datetimeライブラリを使用して、
新しい日付と時刻を定義しています。
subprocessモジュールを使用して、
新しい日付と時刻を指定します。
strftime()関数を使用して、
新しい日付と時刻をdateコマンドで認識される形式に変換しています。
sudoコマンドでPythonスクリプトを
実行する必要がある場合があります。
③RTCモジュールを使う
Raspberry Piは、
RTC(リアルタイムクロック)と
呼ばれる時計機能がありません
Raspberry Piを再起動すると、
システム日時が狂うという問題は、
RTC(リアルタイムクロック)が
搭載されていないために起こります。
RTCは、電源が切れても時刻を保持できるため、
再起動後でも正しい日時を維持することができます。
RTCモジュールを接続する
RTCモジュールを追加して、
Raspberry PiにRTCを搭載する必要があります。
【RTCモジュール DS3231】
![](https://www.makigadget.com/wp-content/uploads/2023/04/RTC_DS3231600.jpg)
RTCモジュールをRaspberry Piにつなぎます。
配線は次のとおりです。
![](https://www.makigadget.com/wp-content/uploads/2023/03/RTC配線600.jpg)
この配膳図のように接続します。
RTCモジュールをRaspberry Piに接続します。
RTCモジュールは、I2C接続に対応していることが必要です。
充電式電池を使用する
RTCモジュールDS3231を使用する場合
LIR2032 充電式バッテリーを使用します。
LIR2032 充電式バッテリーがなく
リチウム電池CR2302を使用する場合
充電回路を加工する必要があります。
![](https://www.makigadget.com/wp-content/uploads/2023/03/RTCモジュールK.jpg)
ダイオード または 抵抗
どちらかを外して
CR2302を使用します。
詳細な使用方法は、
取り扱い説明書を読んで使用しましょう。
RTCモジュールの設定
RTCモジュールは、
I2Cバスを介してRaspberry Piに接続します。
RTCモジュールをRaspberry Piに接続する方法は、
以下の手順に従って行います。
Raspberry Piの設定ファイルである
「/boot/config.txt」ファイルを編集します。
以下の行を追加します。
dtparam=i2c_arm=on
I2Cインターフェースを有効にします。
以下のコマンドを実行します。
sudo raspi-config
メニューから「5 Interfacing Options」を選択し、
「P5 I2C」を選択して有効化します。
RTCモジュールを認識するために、
I2Cツールをインストールします。
以下のコマンドを実行します。
sudo apt-get install i2c-tools
RTCモジュールが認識されているかどうかを確認します。
以下のコマンドを実行します。
sudo i2cdetect -y 1
RTCモジュールが認識されている場合は、
表示される表の中に「UU」の文字が表示されます。
RTCを使用するためのツールをインストールします。
以下のコマンドを実行します。
sudo apt-get install python-smbus
sudo apt-get install python-serial
sudo apt-get install i2c-tools
sudo apt-get install python-rpi.gpio
sudo apt-get install git
git clone https://github.com/abelectronicsuk/ABElectronics_Python_Libraries.git
cd ABElectronics_Python_Libraries/RTCDS3231
sudo python setup.py install
これらの手順を実行することで、
RTCモジュールをRaspberry Piに接続し、
再起動後にも正しいシステム日時を
維持することができるようになります。