جدول المحتويات:
فيديو: ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية): 3 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
سيوضح لك Instructable كيفية ضبط الوقت على DS3231 Real Time Clock باستخدام Arduino وتطبيق Java صغير يستخدم الاتصال التسلسلي لـ Arduino.
المنطق الأساسي لهذا البرنامج:
1. يقوم Arduino بإرسال طلب تسلسلي.
2. يبحث برنامج Java في أي يوم / شهر / … طلب اردوينو ويرسل البيانات ذات الصلة مرة أخرى.
3. بعد جمع كل المعلومات المطلوبة ، يقوم اردوينو بتخزين البيانات في DS3231.
وحدة DS3231 RTC
وحدة DS3231 RTC هي وحدة RTC رخيصة نسبيًا بدقة عالية. (بضع دقائق في السنة)
هناك أنواع مختلفة وظيفتها الأساسية هي نفسها مع وجود اختلافات طفيفة فقط.
يمكن العثور على مقارنة مفصلة هنا: DS323x Comparison | maximintegrated.com
شراء DS3231: DS3231 | موقع ebay.com
ورقة البيانات: DS3231 ورقة البيانات | maximintegrated.com
ورقة البيانات: DS1307 ورقة البيانات | maximintegrated.com
الأجزاء المطلوبة
1x أردوينو (نانو ، أونو ، ميجا ، إلخ.)
4x أسلاك الطائر
1x DS3231 Module (DS1307 Module)
الخطوة 1: الأسلاك
قم بتوصيل DS3231 كما هو موضح في الصورة أعلاه. بالطبع يمكنك القيام بذلك دون استخدام لوح التجارب ، ولكنه سيكون أكثر فوضوية بعض الشيء. لقد استخدمت Arduino Nano للتوضيح ولكن يجب أن يعمل Uno أو MEGA أيضًا. (قد يعمل الآخرون أيضًا ولكن أنا كسول للتأكيد)
- اردوينو -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5 فولت -> VCC
- GND -> GND
الخطوة 2: كود اردوينو
قم بتنزيل ملف.ino من الأسفل وقم بتحميله على Arduino (في حالتي هو Nano).
يحتاج الرسم التخطيطي إلى تثبيت المكتبات التالية للعمل بشكل صحيح:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
يمكن العثور على برنامج تعليمي حول كيفية تحميل الكود إلى اردوينو الخاص بك هنا (arduino.cc).
في Arduino IDE ، تحقق من تقديم الكود بشكل صحيح. (تم التحميل)
أصبح Arduino جاهزًا الآن لتلقي معلومات الوقت
قم بتنزيل الكود هنا: DS3231TimeSync.zip (mediafire.com)
قم بتنزيل المصدر من هنا: DS3231TimeSyncSRC.zip (mediafire.com)
مستودع جيثب: DS3213 RTC Time Sync (github.com)
مستودع Bitbucket: DS3231 RTC Time Sync (bitbucket.com)
الخطوة 3: تطبيق Java
1. قم بتشغيل "DS3231Sync.jar" الذي تم تنزيله من قبل بالنقر فوقه نقرًا مزدوجًا
2. سيتم فتح مربع حوار صغير يطلب منك منفذ اردوينو الخاص بك
إذا لم تكن متأكدًا من المنفذ الذي يستخدمه اردوينو الخاص بك ، فقم بإلقاء نظرة على Arduino IDE في أسفل اليمين.
(انظر الصور أعلاه)
3. سيفتح مربع حوار آخر ويطلب منك إزاحة المنطقة الزمنية
الإزاحة مرتبطة بالتوقيت المحلي لجهاز الكمبيوتر الخاص بك. لضبط RTC على توقيتك المحلي فقط أدخل +00: 00.
من المهم أن تدخل إزاحة المنطقة الزمنية بتنسيق معين!
التنسيق العام هو + hh: mm أو -hh: mm. قم دائمًا بتضمين الأصفار البادئة!
(على سبيل المثال: -03: 00 ؛ -06: 00 ؛ +09: 00 ؛ +02: 30)
4- سيطلق تطبيق Java نافذة صغيرة مع إخراج وحدة التحكم
راقب رسائل التأكيد مثل: "انتهى الوقت المحدد"
عند انتهاء عملية ضبط الوقت ، سيقوم الرمز بطباعة الوقت الحالي على DS3231 كل 5 ثوانٍ. يمكنك التأكد من ضبط الوقت بشكل صحيح.
إذا لم تحصل على أي إخراج بعد حوالي 20 ثانية ، فاضغط على زر إعادة الضبط على اردوينو وانتظر مرة أخرى.
إذا كان لا يزال لا يعمل ، فتحقق من الرسم على Arduino و / أو قم بتحميله مرة أخرى. (هام: أغلق المنفذ في تطبيق Java قبل التحميل إلى Arduino ؛ وإلا فسيتم حظر المنفذ التسلسلي!) ثم أعد تعيين الاتصال في برنامج Java.
(يستخدم برنامج Java LocalDateTime للحصول على التاريخ الحالي.)
تم تعيين الوقت الآن. استمتع
شود لديك أي مشكلة لا يمكن حلها في تحديد الوقت ، يرجى التعليق أدناه ومشاركة log.txt (في نفس المجلد مثل الجرة) معي. شكرا جزيلا!