2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Instruksi ini akan menunjukkan kepada Anda cara mengatur waktu pada Jam Waktu Nyata DS3231 menggunakan Arduino dan aplikasi Java kecil yang menggunakan koneksi serial Arduino.
Logika dasar dari program ini:
1. Arduino mengirimkan permintaan serial.
2. Program Java melihat hari/bulan/… apa yang diminta arduino dan mengirimkan kembali data yang relevan.
3. Setelah semua informasi yang dibutuhkan dikumpulkan, arduino menyimpan data di DS3231.
Modul RTC DS3231
Modul RTC DS3231 adalah modul RTC yang relatif murah dengan akurasi tinggi. (beberapa menit setahun)
Ada varietas berbeda yang fungsi dasarnya sama dengan hanya perbedaan kecil.
Perbandingan terperinci dapat ditemukan di sini: Perbandingan DS323x | maximintegrated.com
Beli DS3231:DS3231 | ebay.com
Lembar Data: Lembar Data DS3231 | maximintegrated.com
Lembar Data: Lembar Data DS1307 | maximintegrated.com
Bagian yang Dibutuhkan
1x Arduino (Nano, Uno, MEGA, dll.)
4x Kabel Jumper
1x Modul DS3231 (Modul DS1307)
Langkah 1: Pengkabelan
Kawat DS3231 seperti yang ditunjukkan pada gambar di atas. Tentu saja Anda dapat melakukannya tanpa menggunakan papan tempat memotong roti, tetapi akan sedikit lebih berantakan. Saya telah menggunakan Arduino Nano untuk demonstrasi tetapi Uno atau MEGA harus bekerja juga. (Yang lain mungkin juga berfungsi tetapi saya malas mengonfirmasi)
- Arduino -> DS3231
- A4 -> SCL
- A5 ->SDA
- 5V -> VCC
- GND -> GND
Langkah 2: Kode Arduino
Unduh file.ino dari bawah dan unggah ke Arduino Anda (dalam kasus saya Nano).
Sketsa membutuhkan pustaka berikut yang diinstal agar berfungsi dengan benar:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Tutorial tentang cara mengupload kode ke arduino Anda dapat ditemukan di sini (arduino.cc).
Di Arduino IDE, verifikasi bahwa kode telah dikirimkan dengan benar. (Selesai mengunggah)
Arduino Anda sekarang siap menerima informasi waktu
Unduh kodenya di sini: DS3231TimeSync.zip (mediafire.com)
Unduh sumbernya di sini: DS3231TimeSyncSRC.zip (mediafire.com)
Repositori GitHub: DS3213 RTC Time Sync (github.com)
Repositori Bitbucket: DS3231 RTC Time Sync (bitbucket.com)
Langkah 3: Aplikasi Java
1. Jalankan "DS3231Sync.jar" yang telah diunduh sebelumnya dengan mengklik dua kali
2. Dialog kecil akan terbuka menanyakan port arduino Anda
Jika Anda tidak yakin tentang port yang digunakan oleh arduino Anda, lihat Arduino IDE di kanan bawah.
(Lihat gambar di atas)
3. Dialog lain akan terbuka dan menanyakan offset zona waktu
Offset relatif terhadap waktu lokal komputer Anda. Untuk mengatur RTC ke waktu lokal Anda cukup masukkan +00:00.
Sangat penting bagi Anda untuk memasukkan offset zona waktu dalam format tertentu!
Format umumnya adalah +jj:mm atau -jj:mm. Selalu sertakan angka nol di depan!
(Misalnya: -03:00; -06:00; +09:00; +02:30)
4. Aplikasi Java akan meluncurkan jendela kecil dengan output konsol
Perhatikan pesan konfirmasi seperti: "Waktu yang ditetapkan selesai"
Ketika proses pengaturan waktu selesai, kode akan mencetak waktu saat ini pada DS3231 setiap 5 detik. Anda dapat mengonfirmasi bahwa waktu telah diatur dengan benar.
Jika Anda tidak mendapatkan output apa pun setelah ~ 20 detik, tekan tombol reset pada arduino Anda dan tunggu lagi.
Jika masih tidak berfungsi, verifikasi sketsa di Arduino dan/atau unggah lagi. (Penting: Tutup Port di aplikasi Java sebelum mengunggah ke Arduino; Jika tidak, port serial akan diblokir!) Kemudian reset koneksi di program Java.
(Program Java menggunakan LocalDateTime untuk mendapatkan tanggal saat ini.)
Waktunya sekarang telah ditentukan. Selamat bersenang-senang
Jika Anda memiliki masalah pengaturan waktu yang tidak dapat diselesaikan, silakan komentar di bawah dan bagikan log.txt Anda (dalam folder yang sama dengan toples) dengan saya. Terima kasih banyak!