(日本語) DS1307リアルタイムクロック(RTC)モジュール Raspberry Piは電源オフ時でも時間を追跡できます。このガイドでは、 DS1307 RTCモジュール Raspberry Piを使って プロトコルの.
あなたが必要とするもの
- ラズベリーパイ (GPIOとI2Cをサポートしているモデル(例:Pi 3、 Pi 4)
- DS1307 RTCモジュール
- CR2032バッテリー (電源オフ時の時間維持のため)
- ブレッドボードとジャンパーワイヤー
- インストールされたPython ラズベリーパイに
ステップ1:ラズベリーパイにDS1307を配線する
(日本語) は 経由で通信Raspberry PiのI2Cピンに接続します。
接続(I2Cモード)
DS1307ピン | ラズベリーピピン |
---|---|
VCC | 3.3Vまたは5V(ピン1または2) |
GND | グラウンド(ピン6) |
SDA | SDA(ピン3、 GPIO2) |
SCL | SCL(ピン5、 GPIO3) |
ステップ2: Raspberry PiでI2Cを有効にする
- Raspberry Pi設定ツールを開きます。
sudo raspi-config
- に移動します。 インターフェイスオプション>I2C それを有効にします。
- Raspberry Piを再起動する:
sudo reboot
- を確認します。 DS1307が検出されました I2Cバスで:
(日本語) アドレスにDS1307が表示されますsudo i2cdetect -y 1
0x68
.
ステップ3:必要なライブラリをインストールする
- Raspberry Piのパッケージリストを更新してください:
sudo apt update && sudo apt upgrade -y
- 必要なI2CツールとPythonライブラリをインストールします。
sudo apt install -y i2c-tools python3-smbus python3-pip pip3 install adafruit-circuitpython-ds1307
ステップ4: DS1307の設定と読み取り時間
日付と時刻を設定するPythonコード
このスクリプトを一度実行してRTCクロックを設定します。
import time
import board
import busio
import adafruit_ds1307
# Initialize I2C bus and DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)
# Set the date and time (Year, Month, Day, Hour, Minute, Second, Weekday, DST)
rtc.datetime = time.struct_time((2025, 1, 1, 12, 0, 0, 0, -1, -1))
print("RTC Date and Time Set!")
DS1307から時間を読み取るPythonコード
時刻を設定した後、このスクリプトを使用して現在の日時を読み取ります。
import time
import board
import busio
import adafruit_ds1307
# Initialize I2C bus and DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)
while True:
current_time = rtc.datetime
print(f"Date: {current_time.tm_year}-{current_time.tm_mon:02d}-{current_time.tm_mday:02d}")
print(f"Time: {current_time.tm_hour:02d}:{current_time.tm_min:02d}:{current_time.tm_sec:02d}")
time.sleep(1)
ステップ5: Raspberry PiシステムクロックとDS1307を同期する
同期するには DS1307 RTC時間 Raspberry Piシステム時間で:
-
DS1307 RTC時間を読む システム時間として設定します。
sudo hwclock -r sudo hwclock -s
-
Raspberry Piシステム時間からDS1307 RTC時間を設定する:
sudo hwclock -w
ステップ6: DS1307 RTCモジュールのアプリケーション
- ヘッドレスRaspberry Piデバイスの時間を保つ -役に立つ データロギング プロジェクト。
- ホームオートメーションシステム -電力損失の後でも正確なスケジュールされたでき事を保障して下さい。
- IoTプロジェクト -DS1307を使用してください タイムスタンプデータ 切断された環境で。
- ウェザーステーション -正確なタイムスタンプを保存する 温度および湿気の記録.
トラブルシューティング
-
DS1307が検出されません(
i2cdetect
表示されない0x68
)- 確認する SDA/SCLピン 正しく配線されています。
- それを確認する I2Cが有効になっています 使用する
sudo raspi-config
.
-
日付/時刻の読み取りが正しくない
- [実行]
sudo hwclock -r
ハードウェア・クロックを点検するため。 - 使用してRTCクロックをリセットする
sudo hwclock -w
.
- [実行]
-
RTC時間は電源オフ後に持続しません
- 確認する CR2032バッテリー 正しくインストールされています。
- バッテリーが低いか死んでいる場合は交換してください。
おわりに
(日本語) DS1307 RTCモジュール 提供する 正確なリアルタイムトラッキング Raspberry Piプロジェクトの場合、電源オフ時でも。このガイドに従うことで、あなたはにRTC機能を統合することができます IoT、自動化、データロギングアプリケーション. 🚀