Isi kandungan:
Video: Menetapkan DS3231 RTC (Jam Masa Sebenar) Dengan tepat, pantas dan automatik menggunakan Java (+ -1s): 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Instructable ini akan menunjukkan kepada anda cara mengatur waktu pada Jam Real Time DS3231 menggunakan Arduino dan aplikasi Java kecil yang menggunakan sambungan bersiri dari Arduino.
Logik asas program ini:
1. Arduino menghantar permintaan bersiri.
2. Program Java melihat hari / bulan /… apa yang diminta oleh arduino dan mengirim kembali data yang relevan.
3. Setelah semua maklumat yang diperlukan dikumpulkan, arduino menyimpan data dalam DS3231.
Modul RTC DS3231
Modul RTC DS3231 adalah modul RTC yang agak murah dengan ketepatan yang tinggi. (beberapa minit setahun)
Terdapat pelbagai jenis yang fungsi asasnya sama dengan hanya perbezaan kecil.
Perbandingan terperinci boleh didapati di sini: Perbandingan DS323x | maximintegrated.com
Beli DS3231: DS3231 | ebay.com
Lembar Data: Lembaran Data DS3231 | maximintegrated.com
Lembar Data: Lembaran Data DS1307 | maximintegrated.com
Bahagian Diperlukan
1x Arduino (Nano, Uno, MEGA, dll.)
Wayar Pelompat 4x
1x Modul DS3231 (Modul DS1307)
Langkah 1: Pendawaian
Kawat DS3231 seperti yang ditunjukkan dalam gambar di atas. Sudah tentu anda boleh melakukannya tanpa menggunakan papan roti, tetapi ia akan menjadi lebih kemas. Saya telah menggunakan Arduino Nano untuk demonstrasi tetapi Uno atau MEGA harus berfungsi juga. (Orang lain mungkin juga bekerja tetapi saya malas untuk mengesahkan)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Langkah 2: Kod Arduino
Muat turun fail.ino dari bawah dan muat naik ke Arduino anda (dalam kes saya Nano).
Sketsa memerlukan perpustakaan berikut dipasang untuk berfungsi dengan betul:
github.com/PaulStoffregen/ Masa
github.com/JChristensen/DS3232RTC
Tutorial mengenai cara memuat naik kod ke arduino anda boleh didapati di sini (arduino.cc).
Dalam IDE Arduino mengesahkan bahawa kod telah dihantar dengan betul. (Selesai memuat naik)
Arduino anda kini bersedia untuk menerima maklumat masa
Muat turun kod di sini: DS3231TimeSync.zip (mediafire.com)
Muat turun sumbernya di sini: DS3231TimeSyncSRC.zip (mediafire.com)
Repositori GitHub: Penyegerakan Masa RTC DS3213 (github.com)
Repositori bitbucket: DS3231 RTC Time Sync (bitbucket.com)
Langkah 3: Aplikasi Java
1. Jalankan "DS3231Sync.jar" yang dimuat turun sebelumnya dengan mengklik dua kali
2. Dialog kecil akan dibuka meminta anda untuk port arduino anda
Sekiranya anda tidak pasti mengenai port yang digunakan oleh arduino anda, lihatlah Arduino IDE di sebelah kanan bawah.
(Lihat gambar di atas)
3. Dialog lain akan terbuka dan meminta anda mengimbangi zon waktu
Pengimbangannya bergantung pada waktu tempatan komputer anda. Untuk menetapkan RTC ke waktu tempatan anda, masukkan +00: 00.
Penting untuk memasukkan zon waktu mengimbangi dalam format tertentu!
Format umum ialah + hh: mm atau -hh: mm. Sentiasa sertakan sifar terkemuka!
(Cth: -03: 00; -06: 00; +09: 00; +02: 30)
4. Aplikasi Java akan melancarkan tetingkap kecil dengan output konsol
Awasi mesej pengesahan seperti: "Masa ditetapkan selesai"
Apabila proses penetapan masa selesai, kod akan mencetak masa semasa pada DS3231 setiap 5 saat. Anda boleh mengesahkan bahawa waktunya ditetapkan dengan betul.
Sekiranya anda tidak mendapat output selepas ~ 20-an tekan butang reset pada arduino anda dan tunggu lagi.
Sekiranya masih tidak berfungsi, sahkan lakaran di Arduino dan / atau muat naik lagi. (Penting: Tutup Port di aplikasi Java sebelum memuat naik ke Arduino; Jika tidak, ia akan menyekat port bersiri!) Kemudian tetapkan semula sambungan dalam program Java.
(Program Java menggunakan LocalDateTime untuk mendapatkan tarikh terkini.)
Masanya sudah ditetapkan. Berseronok
Sekiranya anda mempunyai masalah yang tidak dapat diselesaikan dalam menetapkan masa, sila komen di bawah dan kongsi log.txt anda (dalam folder yang sama dengan balang) dengan saya. Terima kasih banyak-banyak!