ماژول ساعت با تراشه DS1307 و رابط I2C Tiny RTC Module
ماژول ساعت با تراشه DS1307 و رابط I2C Tiny RTC Module
زمان و تاریخ، دو پارامتر حیاتی و کلیدی در طراحی سیستم های مختلف به شمار می روند. به کمک این دو پارامتر، سیستم ها اجرای فرامین را زمانبندی کرده و در موعد مقرر، به اجرای دستورات می پردازند. ماژول DS1307 یک ماژول ساعت دیجیتالی است که میتواند تاریخ و ساعت را با دقت بسیار زیادی نگهداری کند. این ماژول شامل یک پردازنده کوچک با معماری I2C، یک کریستال دقیق 32.768 کیلوهرتز، است. همچنین قابلیت نصب یک باتری CR2032 را داشته که قابلیت نگهداری ساعت در حافظه داخلی میشود.
ماژول DS1307 میتواند از طریق رابط I2C با میکروکنترلرها و بردهای الکترونیکی مختلف ارتباط برقرار کند. این ماژول دارای ساعت داخلی، تقویم و سیستم تولید سیگنال زنگ است. برای استفاده از DS1307 باید ابتدا آدرس آن در شبکه I2C تعیین شود، سپس با استفاده از دستورهای برنامه نویسی مناسب، میتوانید تاریخ و ساعت را تنظیم کنید و اطلاعات را از EEPROM خوانده و همچنین اطلاعات نوشته شده را بخوانید.
DS1307 به عنوان یکی از محبوب ترین ماژولهای ساعت در پروژههای الکترونیکی مورد استفاده قرار میگیرد و برای کنترل زمان در سیستمهای هوشمند، ساعتهای دیجیتال، سیستمهای تهویه مطبوع، سیستمهای ترموستات و غیره مورد استفاده قرار میگیرد.
مشخصات فنی ماژول ساعت با تراشه DS1307
ولتاژ کاری: 5 ولت
دقت ساعت: 50 پیکوثانیه
دقت تقویم: تا آخرین روز از ماه فوریه، سال 2128
حافظه EEPROM: به میزان 56 بیت
پشتیبانی از رابط I2C با سرعت انتقال داده 100 کیلوبیت بر ثانیه
دارای پایه های VCC، GND، SDA و SCL
پشتیبانی از ساعت و تقویم در حالت 12 و 24 ساعته
قابلیت تنظیم زمان و تاریخ توسط کاربر
دارای پین اعلان قطبی (SQW/OUT) که به عنوان یک سیگنال خروجی میتواند استفاده شود
بررسی پایههای PinOut ماژول ساعت DS1307
1- VCC: ولتاژ تغذیه ۵ ولت
2- GND: زمین
3- SDA: خط دادهی دو سیمی I2C (داده)
4- SCL: خط ساعت دو سیمی I2C (ساعت)
5- SQW/OUT: پین خروجی سیگنال (میتواند به عنوان یک سیگنال خروجی مورد استفاده قرار بگیرد)
6- RST: پین تنظیم مجدد
7- DS: پین کنترل دسترسی به حافظهی کش
8- VBAT: ورودی باتری پشتیبانی کننده از تغذیهی پشتیبانی کننده باتری
در کل، پایههای اصلی این ماژول شامل ولتاژ تغذیه، زمین، خطوط ارتباطی I2C و ورودی باتری پشتیبانی کننده هستند. پایه SQW/OUT نیز به عنوان یک پین خروجی سیگنال در نظر گرفته شده است که میتواند برای مقاصد مختلف مورد استفاده قرار گیرد.
به همراه ماژول ds1307 چه مواردی باید خریداری شود؟
میکروکنترلر یا برد آردوینو: برای اتصال و کنترل ماژول ساعت DS1307، باید از یک میکروکنترلر یا برد آردوینو استفاده کنید.
باتری CR2032: برای پشتیبانی از ساعت در صورت قطعی برق و از دست رفتن تاریخ و زمان، باید از یک باتری CR2032 استفاده کنید.
کریستال ۳۲ کیلوهرتز: کریستال ۳۲ کیلوهرتز برای ارائه سیگنال ساعت و تعیین دقت و اعتبار ساعت استفاده میشود.
مقاومت ۱۰ کیلو اهم و ۴۷۰ اهم: این مقاومتها برای تنظیم جریان در سیستم I2C و ریست کردن ماژول استفاده میشوند.
کانکتورها: برای اتصال ماژول ساعت DS1307 به برد آردوینو یا میکروکنترلر، باید از کانکتورهای مناسب استفاده کنید.
در کل، این اقلام به عنوان لیست حداقلی برای استفاده از ماژول ساعت DS1307 محسوب میشوند و ممکن است بر اساس نیاز و شرایط مختلف، اقلام دیگری نیز نیاز باشد.
راه اندازی ماژول Ds1307 با آردوینو
برای راهاندازی ماژول DS1307 با برد آردوینو، مراحل زیر را دنبال کنید. اتصال سیمها: ابتدا، باید ماژول DS1307 را با برد آردوینو متصل کنید. برای این منظور، به پایههای VCC و GND ماژول، ولتاژ و گراند را به ترتیب متصل کنید. همچنین، پایه SDA ماژول را به پایه A4 برد آردوینو و پایه SCL را به پایه A5 برد آردوینو وصل کنید. نصب کتابخانه RTClib: برای کنترل ماژول DS1307 با برد آردوینو، باید از کتابخانه RTClib استفاده کنید. برای نصب این کتابخانه، به قسمت Library Manager برد آردوینو بروید و RTClib را جستجو کنید. سپس، کتابخانه را انتخاب کرده و نصب کنید. برنامهنویسی: حالا، میتوانید کد زیر را در برنامه آردوینو بنویسید و بر روی برد آردوینو آپلود کنید.
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
void setup () {
Serial.begin(9600);
Wire.begin();
rtc.begin();
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop () {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(1000);
}
این کد، تاریخ و زمان را از ماژول DS1307 خوانده و آنها را در Serial Monitor نمایش میدهد. در این کد، با فراخوانی rtc.adjust(DateTime(F(DATE), F(TIME)))، تاریخ و زمان محلی شما به ماژول DS1307 منتقل میشود.
راه اندازی DS1307 با میکروپایتون
برای راهاندازی ماژول DS1307 با میکروپایتون، مراحل زیر را دنبال کنید. اتصال سیمها: ابتدا، باید ماژول DS1307 را با میکروکنترلر متصل کنید. برای این منظور، به پایههای VCC و GND ماژول، ولتاژ و گراند را به ترتیب متصل کنید. همچنین، پایه SDA ماژول را به پایه GPIO 0 میکروکنترلر و پایه SCL را به پایه GPIO 2 میکروکنترلر وصل کنید.
نصب کتابخانه micropython-adafruit-rtc: برای کنترل ماژول DS1307 با میکروپایتون، باید از کتابخانه micropython-adafruit-rtc استفاده کنید. برای نصب این کتابخانه، به قسمت Micropython package index بروید و micropython-adafruit-rtc را جستجو کنید. سپس، کتابخانه را انتخاب کرده و نصب کنید. برنامهنویسی: حالا، میتوانید کد زیر را در کد micropython بنویسید.
import machine
import utime
import ujson
from adafruit_rtc import RTC
i2c = machine.I2C(scl=machine.Pin(2), sda=machine.Pin(0))
rtc = RTC(i2c)
while True:
datetime = rtc.datetime
date_str = "{}/{}/{}".format(datetime.tm_mday, datetime.tm_mon, datetime.tm_year)
time_str = "{}:{}:{}".format(datetime.tm_hour, datetime.tm_min, datetime.tm_sec)
print(ujson.dumps({"date": date_str, "time": time_str}))
utime.sleep(1)
این کد، تاریخ و زمان را از ماژول DS1307 خوانده و آنها را در فرمت JSON در کنسول میکروپایتون نمایش میدهد.
کاربردهای ماژول ساعت با تراشه DS1307 و رابط I2C Tiny RTC Module
اذان گوهای مساجد
ساعت های خودرو، یخچال، لباس شویی و ....
زمانبند کننده فرایند ها در سیستم های مختلف
ثبت کننده زمان رویدادهای مختلف در دیتالاگرها
فعال کننده رله ها در زمان تعیین شده توسط کاربر
آموزش ساخت ساعت دیجیتال ماژول DS1307 و نمایشگر TM1637
زمان و سنجش زمان از پارامترهای مهم ساخت پروژه های اینترنت اشیا است. در آموزش ساخت ساعت دیجیتال با آردوینو و سگمنت به بررسی کامل کدها و راه اندازی آن پرداختیم. حال با توجه به نیاز و درخواست کاربران آموزش ساخت ساعت دیجیتال با استفاده از ماژول ساعت دقیق DS1307 را در این پست در اختیار شما قرار دادهایم. این آموزش توسط یکی از کاربران فعال ما ارسال شده است.
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- ساعت
- تعداد قطعات
- 15 عدد
- ابعاد فیبر
- 2.7 * 2.7 سانتی متر
- سطح تجربه مورد نیاز
- پیشرفته
- ابعاد
- 28x27mm
- ولتاژ مورد نياز
- 5 ولت
- دمای کاری
- 0 تا 70 درجه
- جریان
- مصرفی با باتری بک آپ کمتر از 500 نانوآمپر
- کشور سازنده
- چین
- نوع کانکتور
- پین هدر
- معماری پردازنده
- CLOCK
- نوع اسیلاتور
- کریستال خارجی
- حافظه داخلی
- 56 بایت غیرفرار
- حافظه EEPROM
- دارد با امکان دسترسی
- نوع مبدل
- پروتکل I2C
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.