ماژول ساعت RTC DS3231SN مناسب رزبری پای و آردوینو
ماژول DS3231 یک ماژول ساعت واقعی (RTC) با دقت بالا است که برای دقیقترین اندازهگیری زمان استفاده میشود. این ماژول از رقمگیری دودویی به همراه رمزگذاری BCD برای نگهداری زمان استفاده میکند و از رزولوشن 1 ثانیه برخوردار است.ماژول DS3231 شامل یک مدار RTC دقیق با دماکنترل داخلی است که قادر به نگهداری زمان، تاریخ و سال میلادی در حافظه داخلی آن است. همچنین دارای پینهای کنترلی مانند SDA (خط داده سریال) و SCL (خط ساعت سریال) است که برای ارتباط با میکروکنترلرها و بردهایی مانند Raspberry Pi استفاده میشود.DS3231 دارای دقت بالایی است و با خطاهای بسیار کمی در اندازهگیری زمان عمل میکند. با مصرف انرژی کم، ماژول DS3231 مناسب برای پروژههایی است که نیازمند ماندگاری طولانی مدت با باتری هستند.ماژول DS3231 قابلیت تنظیم تاریخ، ساعت، دقیقه، ثانیه، روز، ماه و سال را دارد و میتوانید آن را به عنوان ساعت و تقویم دقیق در پروژههای خود استفاده کنید. DS3231 دارای حافظه داخلی است که اطلاعات زمان را در آن ذخیره میکند. حتی در صورت قطع برق، اطلاعات زمانی در حافظه محافظت میشود.
ویژگیهای DS3231
ماژول DS3231 شامل پینهای کنترلی مانند SDA (خط داده سریال) و SCL (خط ساعت سریال) است که از طریق آنها ارتباط با میکروکنترلر برقرار میشود. با استفاده از دستورات مخصوص، میتوانید زمان و تاریخ را در ماژول DS3231 تنظیم کنید. این قابلیت بسیار مفید است زیرا میتوانید ساعت را همگام سازی کنید و برنامهها و سیستمهایی که نیاز به زمان دقیق دارند، را به درستی اجرا کنید. ماژول DS3231 از فرمت BCD (Binary Coded Decimal) برای نگهداری دادههای زمانی استفاده میکند. دریافت دادههای زمانی از ماژول شامل تبدیل دادههای BCD به فرمت دیسمال میشود تا زمان به صورت قابل خواندن برای کاربران تبدیل شود. DS3231 قابلیت تنظیم هشدارهای زمانی را داراست که به شما اجازه میدهد در مواقع مشخصی از روز هشدارهایی را فعال کنید. همچنین، ماژول DS3231 میتواند به صورت خودکار در ساعت مشخصی در روز راهاندازی شود.
به همراه ماژول ساعت DS3231 چه اقلامی باید خریداری شود؟
- رزبری پای
- کابل فلت
- برد بورد
- باتری برای ماژول ساعت
راه اندازی ماژول ساعت ds3231
برای استفاده از ماژول Real-Time Clock (RTC) DS3231 با Raspberry Pi، شما باید مراحل زیر را دنبال کنید:
- پین VCC ماژول DS3231 را به پین 3.3 ولت Raspberry Pi وصل کنید.
- پین GND ماژول DS3231 را به هر پین زمینی در Raspberry Pi وصل کنید.
- پین SDA ماژول DS3231 را به پین SDA (GPIO 2) در Raspberry Pi وصل کنید.
- پین SCL ماژول DS3231 را به پین SCL (GPIO 3) در Raspberry Pi وصل کنید.
فعالسازی I2C در Raspberry Pi:
- در ترمینال Raspberry Pi باز کنید یا از طریق SSH به آن متصل شوید.
- دستور sudo raspi-config را اجرا کنید.
- به "گزینههای Interfacing" بروید و "I2C" را انتخاب کنید.
- "بله" را انتخاب کنید تا رابط I2C فعال شود.
- برای اعمال تغییرات، Raspberry Pi را راهاندازی مجدد کنید.
نصب بستههای لازم:
- با اجرای sudo apt update لیست بستهها را بهروزرسانی کنید.
- با اجرای sudo apt install python3-smbus i2c-tools بستههای مورد نیاز را نصب کنید.
تأیید اتصال:
- دستور sudo i2cdetect -y 1 را اجرا کنید. این دستور برای اسکن دستگاههای متصل شده به رابط I2C استفاده میشود.
- باید جدولی را با آدرس ماژول DS3231 (معمولاً 0x68) مشاهده کنید.
نصب کتابخانه پایتون:
شما میتوانید از کتابخانه smbus2 برای ارتباط با ماژول DS3231 استفاده کنید. آن را با اجرای pip install smbus2 نصب کنید.نوشتن یک اسکریپت پایتون برای خواندن زمان از RTC.یک فایل پایتون جدید، به عنوان مثال `rtc_test .py`، ایجاد کنید و آن را در یک ویرایشگر متن باز کنید.کد زیر را به فایل اضافه کنید:اسکریپت پایتون را ذخیره کنید و اجرا کنید:فایل rtc_test.py را ذخیره کنید.ترمینال را باز کنید و به دایرکتوریای که فایل ذخیره شده است بروید.دستور python3 rtc_test.py را اجرا کنید.باید زمان فعلی را در کنسول چاپ شده ببینید.این اسکریپت زمان را از ماژول DS3231 خوانده و آن را به یک فرمت قابل خواندن برای انسان تبدیل میکند. شما میتوانید آن را بر اساس نیازهای خود برای استفادههای بیشتر تغییر دهید.
import smbus2
import time
# آدرس DS3231
address = 0x68
# باز کردن رابط I2C
bus = smbus2.SMBus(1)
def read_rtc():
# خواندن دادهها از RTC
raw_data = bus.read_i2c_block_data(address, 0x00, 7)
# تبدیل دادهها به مقادیر زمانی
second = bcd_to_decimal(raw_data[0] & 0x7F)
minute = bcd_to_decimal(raw_data[1])
hour = bcd_to_decimal(raw_data[2] & 0x3F)
day = bcd_to_decimal(raw_data[4])
month = bcd_to_decimal(raw_data[5])
year = bcd_to_decimal(raw_data[6]) + 2000
# بازگرداندن زمان به صورت رشته
return f"{year}-{month:02d}-{day:02d} {hour:02d}:{minute:02d}:{second:02d}"
def bcd_to_decimal(bcd):
return ((bcd >> 4) * 10) + (bcd & 0x0F)
# خواندن و چاپ زمان از RTC
print(read_rtc())
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- ساعت
- سطح تجربه مورد نیاز
- پیشرفته
- ابعاد
- 14mm x 13mm x 13mm
- ولتاژ مورد نياز
- 3.3V
- فرکانس
- 1Hz and 32.768kHz
- دقت اندازه گیری
- ± (± 0.432 sec/day)
- پردازنده
- DS3231
- سایر قابلیتها
- پشتیبانی از آردوینو و رزبری پای و سایر بردهای امبدد
بله این امکان وجود دارد. با توجه به اینکه برد رزبری پای دارای پایههای GPIO است. امکان اتصال انواع ماژولهای مختلف را دارد. ماژولهای اترنت به SPI هم یکی از این موارد پر مصرف هستند. میتوانید از شاخه ماژول اترنت و شبکه انواع این بردها را برای اتصال به رزبری پای بررسی کنید.
دوربین IMX219 یک دوربین با رابط MIPI CSI-2 است که اکثرا با بردهای توسعهی مبتنی بر پردازندههای ARM که دارای رابط CSI-2 هستند، سازگاری دارد. برخی از این بردها شامل Raspberry Pi، Jetson Nano، Odroid و Orange Pi is هستند. با این حال، برای استفاده از دوربین IMX219 با هر برد دیگری، باید بررسی کنید که آیا برد شما دارای رابط MIPI CSI-2 است یا خیر. CSI2 یک رابط سریال پایدار برای انتقال داده های تصویری از سنسورهای تصویری به پردازنده ها است. برخی از بردهایی که دارای CSI2 هستند عبارتند از:
1- Raspberry Pi CM4
2- Nvidia Jetson Nano
3- Orange Pi
4- BeagleBone Black
5- Coral Dev Board
6- Qualcomm DragonBoard
7- HiKey 960
و بسیاری بردهای دیگر با پردازنده های مختلف از جمله ARM و x86.
لازم به ذکر است که برخی از این بردها ممکن است نیاز به ماژول تبدیل CSI2 به HDMI یا USB داشته باشند تا بتوانند با دوربین های دیگری که از رابط های HDMI یا USB استفاده می کنند سازگاری پیدا کنند.
نظر دهید