توصيل مؤقت الساعة الحقيقي RTC على الراسبيري باي

متوسط

image_pdf

فى هذا الدرس سنتعلم كيفية توصيل مؤقت الساعة الحقيقي Real Time Clock – RTC على الراسبيري باي عن طريق بروتوكول I2C، حيث سيمكننا ذلك من جعل توقيت الراسبري باي يعمل بإستمرار حتى مع قطع التيار الكهربي عنها.

فمؤقت الساعة الحقيقي RTC هو عنصر فى غاية الأهمية لأي مشروع تحكم خاصة لو كان المشروع يقوم بتخزين معلومات وقياسات معتمدة على الوقت والتاريخ، فهذا الموديول يجعل الوقت والتاريخ يعملان بإستمرار وذلك بسبب البطارية طويلة المدى المدمجة فيه.

Raspberry_Pi_RTC_2

المكونات المطلوبة

Raspberry Pi

راسبيري باي

Raspberry_Pi_RTC

مؤقت ساعة حقيقي Real Time Colck – RTC

Raspberry_Pi_RTC_Wires

أسلاك توصيل Female / Female jumper

 

توصيل الدائرة

نقوم بتوصيل الدائرة كما فى الصورة التالية مع ملاحظة أن هذا الموديول يعتمد على الشريحة DS3231 وهي تعمل على جهد 3.3 فولت، لذلك هي مناسبة لتعمل على الراسبري باي مباشرة بدون أي مكونات أخرى.

Raspberry_Pi_RTC_1

الكود البرمجي

في البداية نقوم بفتح الـ Terminal الخاص بالراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها علي نفس الشبكة كما تم شرحه في الدرس الخامس.

فى البداية نقوم بتحديث نظام تشغيل الراسبيري باي.

sudo apt-get update
sudo apt-get –y upgrade

ثم نقوم بالتعديل في أحد ملفات النظام كالتالي.

sudo nano /etc/modules

قم بإضافة السطر التالي (rtc-ds1307) داخل ملف modules الذى قمنا بفتحه بمحرك النصوص Nano، ثم نقوم بالضغط على Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.

Raspberry_Pi_RTC_4

نقوم بإعادة تشغيل الراسبري باي كالتالي.

sudo reboot

نقوم بتشغيل الراسبري باي وكتابة الأمر التالي، إذا كنت تستخدم راسبيرى باى ذات الإصدار Rev 1، ستحتاج لتغيير الرقم 1 فى آخر الأمر وإستبدالة بـ 0.

sudo i2cdetect -y 1

سوف تشاهد التالي بعد كتابة الأمر.

Raspberry_Pi_RTC_5

فى هذه التجربة يكون 0x68 هو عنوان الـ RTC Module .

ثم نقوم بالتعديل فى أحد ملفات النظام مرة أخرى كالتالي.

sudo nano /etc/rc.local

قم بإضافة السطرين التاليين داخل ملف rc.local الذي قمنا بفتحه بمحرك النصوص Nano.

echo ds1307 ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock –s
Raspberry_Pi_RTC_6

ثم نقوم بالضغط على Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.

لاحظ أنه يجب تغيير العنوان 0x68 للعنوان الذي سيظهر لك من الخطوة السابقة، وكذلك إذا كنت تستخدم راسبيري باي Rev1 نقم بتغيير i2c-1 إلى i2c-0.

نقوم بإعادة تشغيل الراسبيري باي مرة أخرى.

sudo reboot

بعد إعادة التشغيل إذا قمت بكتابة أمر i2cdetect ستلاحظ أن عنوان الموديول قد تغير إلى UU، وهذا دليل على أن الموديول يعمل جيداً.

sudo i2cdetect -y 1
Raspberry_Pi_RTC_7

الآن نقوم بضبط إعدادات الوقت والتاريخ من خلال الأمر التالي.

sudo raspi-config

نقوم بإختيار Internationalisation Options ثم Change Timezone  وتختار بعد المنطقة والدولة التى تقيم بها.

Raspberry_Pi_RTC_8

 

Raspberry_Pi_RTC_9

 

Raspberry_Pi_RTC_10

يمكنك قراءة وقت وتاريخ الراسبيري باي بالأمر التالي.

date

إذا أردىت تغير الوقت والتاريخ لأي سبب فبإمكانك ذلك من خلال الأمر التالي وكتابة الوقت والتاريخ الذي تريده بين علامات التنصيص.

sudo date -s “16 APR 2017 23 : 00 : 00”

وبمجرد تغيره يجب عليك كتابته على الـ RTC Module كالتالي.

sudo hwclock –w

وللتأكد يمكنك قراءة الوقت والتاريخ من الموديول مرة أخرى كالتالي.

sudo hwclock –r

يمكنك قراءة وقت الراسبيري باي وكذلك وقت الـ RTC Module سوياً لتتأكد من أنهم نفس التوقيت كالتالي.

sudo date; sudo hwclock –r
Raspberry_Pi_RTC_11

 

X
تم إضافة المنتج إلى السلة بنجاح