﻿DS3231の使い方｜ラズパイPico 2 Wで時刻合わせ・アラーム・電池バックアップ【回路図付き】
記事: https://py-vbalab.com/rtc001/
PY-VBALAB ニンジン🥕

■ 確認環境
Raspberry Pi Pico 2 W / MicroPython / Thonny
DS3231モジュール（ZS-042タイプ、基板印字 B411）

■ 準備
1. config.py の WIFI_SSID と WIFI_PASSWORD を、お手持ちの環境に書き換えてください（" の中身だけ）。
   Pico 2 WのWi-Fiは2.4GHz帯だけに対応しています。
2. ds3231.py / netutil.py / config.py の3つを、Thonnyの「名前を付けて保存」→「Raspberry Pi Pico」で
   Pico本体に同じ名前で保存してください。
3. ほかのファイルは、Thonnyで開いて実行（F5）します。

■ ファイルと記事の章の対応
ds3231.py             DS3231を読み書きする自作ドライバ（Picoに保存）
netutil.py            Wi-Fi接続と、1秒未満まで取れるNTP問い合わせ（Picoに保存）
config.py             Wi-FiのSSID・パスワードとNTPサーバー（Picoに保存）
step1_scan.py         I2Cスキャン（MicroPythonでDS3231の時刻を読む）
step2_read.py         時刻と温度を1秒ごとに表示／電池バックアップの確認
step3_ntp_set.py      NTPで時刻合わせ（Wi-Fiが必要）
step3b_set_from_pc.py PCの時刻で時刻合わせ（Wi-Fi不要。Thonnyの時計同期の設定が必要）
check_offset.py       DS3231とNTPのズレを5回測る
step4_sqw_led.py      SQWピンの1HzでLEDを点滅（GP15で受けてGP16のLED）
step5_alarm.py        アラーム1で毎分決まった秒にLEDを点滅
step6_drift_log.py    ズレを5分おきにCSVへ記録（シンプル版）
main.py               ズレの長時間記録用（ウォッチドッグ付き。Picoに main.py として保存すると電源投入で自動実行）
step7_eeprom.py       AT24C32（EEPROM）に文字を書いて読み戻す
drift_log2.csv        記事のグラフに使った実測データ（約26時間・307回）

■ 配線（Pico 2 W）
VCC→36番 3V3(OUT) / GND→28番 GND / SDA→6番 GP4 / SCL→7番 GP5 / SQW→20番 GP15
LED: 21番 GP16 → 330Ω → LED → 23番 GND
