جدول المحتويات:

ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية): 3 خطوات
ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية): 3 خطوات

فيديو: ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية): 3 خطوات

فيديو: ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية): 3 خطوات
فيديو: شرح استخدام الساعة مع الأردوينو - RTC 2024, شهر نوفمبر
Anonim
ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية)
ضبط DS3231 RTC (ساعة الوقت الحقيقي) بشكل دقيق وسريع وآلي باستخدام Java (+ -1 ثانية)

سيوضح لك 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 (في نفس المجلد مثل الجرة) معي. شكرا جزيلا!