محمدرضا شریفی
محمدرضا شریفی
خواندن ۳ دقیقه·۶ ماه پیش

نحوه نصب و استفاده از ماژول real-time ساعت در raspberry pi

raspberry pi دستگاه
raspberry pi دستگاه


اگه دقت کرده باشید روی مادربرد کامپیوتر یه باتری وجود داره و بصورت کلی همه میدونیم که وظیفه این قسمت نگهداری یه سری اطلاعات مثل زمان و تاریخه که با قطع شدن برق مادربرد نباید از بین بره. دستگاه رزبری پای این قطعه رو نداره و زمانی که دستگاه خاموش بشه و بعد از مدتی دوباره دستگاه روشن بشه آخرین زمانی که سیستم عامل داشته رو نشون میده مثلا اگه ساعت 8 شب خاموش بشه و 10 صبح دوباره روشن بشه دستگاه ساعت 8 شب رو نشون میده. اگه برق دستگاه قطع بشه ممکنه کلا تاریخ و ساعت ریست بشه و تاریخ نا مربوطی رو نشون میده .
زمانی که دسترسی به اینترنت وجود داشته باشه با انتخاب منطقه زمانی و فعال کردن automatic update این مشکل برطرف میشه و دستگاه تاریخ و زمان خودش رو آپدیت میکنه.
اخیرا پروژه ای داشتم که باید دستگاه توی ساعات مختلف کار های متفاوتی رو انجام میداد پروژه رو تماما با bash script نوشتم توی محیطی که دستگاه قرار میگرفت دسترسی به اینترنت نداشت و اگه به هر دلیل دستگاه خاموش میشد و یا برق قطع میشد تایم دستگاه بهم میریخت و پروژه شکست میخورد.
با پرس وجو هایی که انجام دادم متوجه شدم ماژولی برای اینکار وجود داره ولی این که این ماژول رو از کجا تهیه کنم و چجوری به رزبری پای متصلش کنم و چجوری برنامه نویسیش کنم کمی پیچیده به نظرم می رسید.
توی مطلب زیر نحوه استفاده از ماژول real-time clock در زربری پای رو آموزش دادم ممکنه یه روزی به دردتون بخوره.


اسم ماژول RTC DS3231 نوع ماژول I2C

ماژول RTC DS3231
ماژول RTC DS3231


نحوه اتصال این ماژول به رزبری پای بصورت زیر هستش از سیم هایی که مخصوص این ماژول ها هست استفاده کنید باید دو طرف مادگی باشه و نیازی به لحیم کاری هم نداره .



فقط پین های زیر رو به دستگاه متصل کنید و دقت کنید که دستگاه خاموش باشه وقتی اینکار رو میکنید.

پین SCL که Serial Clock Input هستش و مطابق شکل به سومین پین وصل میشه

پین SDA که Serial Data Input نام داره و مطابق شکل به دومین پین رزبری پای وصل میشه.

پین VCC که برق ورودی ماژول هست که باید به اولین پین رزبری پای که 3.3 ولت هست وصل بشه

پین GND اتصال به زمین هست که میتونید به یکی از پین های 9 یا 25 یا 39 وصل کنید.

توی اتصال پین ها دقت کنید که اگه اشتباه وارد کنید ماژول داغ میشه و یه سری کریستال هایی داره که روی اون وجود داره ممکنه بسوزه و دردسر درست بشه .

به پین های 32K و SQW هم کاری نداریم و متصلشون نمی کنیم. این ها کاربرد های دیگه ای دارن.

نحوه کانفیگ نرم افزاری ماژول در رزبری پای

ابتدا دستگاه را بروزرسانی می کنیم و پیش نیاز های ماژول را نصب میکنیم.

  • sudo apt-get update
  • sudo apt-get install python-smbus
  • sudo apt-get install i2c-tools

باید در تنظیمات رزبری پای ماژول I2C را فعال کنید؛ دستور زیر را وارد می کنیم و Advanced Options را انتخاب و i2c را enable میکنیم.

· sudo raspi-config

فایل زیر را باز کرده

sudo nano /etc/modules
و مقادیر زیر را در ان قرار می دهیم

i2c-bcm2708

i2c-dev

rtc-ds1307

با دستور زیر Bus را تست میکنیم.

sudo i2cdetect -y 1

خروجی باید بصورت زیر باشد.



سپس در ادامه فایل زیر را باز کرده

sudo nano /etc/rc.local

مقادیر زیر را قبل از عبارت exit 0 قرار می دهیم.

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

hwclock -s

سپس دستگاه را ریبوت می کنیم .

Sudo reboot

بعد از بالا امدن دستگاه ساعت دستگاه را تنظیم کرده و با دستور sudo hwclock -w ساعت سیستم را به ماژول می دهیم.

با دستور sudo hwclock -r میتوانیم ساعت فعلی ماژول را بخوانیم.

امیدوارم این اموزش واستون مفید بوده باشه 😊

تمام

rasbberrypiرزبری پایi2cmodule
شاید از این پست‌ها خوشتان بیاید