s

مقدمه

در این مطلب قصد داریم تا ماژول ساعتds1307 (این ماژول دارای ارتباط I2C می باشد)را مورد بررسی قرار داده و چگونگی راه اندازی این ماژول را به همراه esp32بصورت کامل اموزش دهیم

کلید واژه ها
esp32,کلاک,DS1307,

وسایل مورد نیاز

#نوعتعدادخرید
1esp321
2سیم جامپر2
3برد بورد1
4ماژول DS13071

پیش نیاز ها

برای برنامه نویسی این پروژه از نرم افزار اردوینو استفاده میکنیم.

  1. ابتدا نرم افزار اردوینو را دانلود و نصب کنید
  2. به منو File بروید و گزینه Preferencesرا بزنید
  3. boardFile -> arduino Preferences
  4. متن زیر را وارد کنید
  5. https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json

    boardpaste link
  6. بعد از افزودن لینک ها برنامه را باز و بسته کرده تا لینک به مخازن برنامه اضافه شوند
  7. به منو tools رفته و از بخش Borads manager ... را بزنید
  8. boardesp32 اضافه شده است
  9. در قسمت search بنویسید Esp32 و برد را نصب کنید
  10. boardesp32 اضافه شده است
  11. بعد اینکه برد نصب شده باید نوع برد Arduino را عوض کنیم
  12. boardesp32 اضافه شده است
  13. افزودن کتابخانه مورد نیاز iotkaran
  14. tools-> manager Library

    boardافزودن کتابخانه iotkaran
  15. تایپiotkaran در بخش جستجو
  16. boardافزودن کتابخانه iotkaran

توضیحات تکمیلی

ماژول ساعت DS1307 ، برای نگهداری تاریخ و ساعت ،در پروژه‌های متفاوت مورد استفاده قرار میگیرد. با این ماژول می‌توان اطلاعات ثانیه، دقیقه، ساعت، روز، روز هفته، ماه و سال را نگهداری کرد.و از اطلاعات این ماژول در هر بخش از پروژه که نیاز به زمان یا تاریخ داریم استفاده کرد.

ِDS1307

این ماژول یک ورودی باطری دارد و زمانی‌که تغذیه اصلی مدار قطع شود، همچنان نگهداری زمان را با دقت انجام می‌دهد.

ِDS1307

همچنین بر روی این ماژول قسمتی برای سنسور دمای DS18B20 نیز تعبیه شده است، که در صورت نیاز در پروژه ها می توان از ان استفاده کرد

pin

ماژول ساعت DS1307دارای ارتباط I2C ،دارای 12پایه میباشد.که به شرح زیر میباشد 5 پایه در یک سمت برای ارتباط با قطعه DS1307 :

  • DS : خروجی سنسور دمای DS18B20
  • SCL: پایه کلاک برای پروتکل I2C
  • SDA:پایه داده برای پروتکل I2C
  • VCC: تغذیه ماژول 5ولت
  • GND :زمین

7 پایه دیگر در سمت دیگر برای ارتباط با قطعه 24C32 EEPROM :

  • :SQموج مربعی خروجی
  • :SCL  پایه کلاک برای پروتکل I2C
  • :SDA پایه داده برای پروتکل I2C
  • :VCC تغذیه ماژول – 5 ولت
  • :GND زمین
  • BAT: باتری پشتیبان

توجه

هر دو جفت پایه I2C و تغذیه و پایه DSدر دو طرف ماژول یکسان بوده و با اتصال یک سمت به برد اردوینو ،میتوان ارتباط را میان ماژول و برد اردوینو برقرار کرد.

اولین قدم افزودن کتابخانه به برنامه است

بعد از افزودن کتابخانه می بایست یک شی از ان کتابخانه بسازیم تا در برنامه بتوانیم از ان استفاده کنیم

() Setup

در اینجا پورت سریال را راه اندازی می کنیم با 9600 بیت در ثانیه تا بتوان اطلاعات ساعت را در سریال ببینیم

با استفاده ازrtc.begin() می توانیم از ارتباط i2c را بسازیم و همچنین از اتصال دو طرفه اردوینو و ماژول ساعت مطلع بشویم

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

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

اگر ماژول ساعت را برای اولین بار راه اندازی کردید می بایست یک زمان اولیه برای ان تعریف کنید تا ماژول بتواند با این زمان شروع به کاکند ماتاریخ 2021/09/04ساعت 14:37:55را تنظیم کردیم

() loop

برنامه‌های آردوینو دو قسمت دارند.همانطور که پیش تر گفته شد،مقدار دهی اولیه در void setup انجام میشود.اما برنامه اصلی که همیشه هم در حال تکرار است در حلقه لوپ یا همان void loopانجام میشود

در اینجا ما میبایست زمان فعلی دستگاه را از او بگیریم چون تابع lpop یک تابعی است که همیشه تکرار می شود

این مرحله نهایی است که ما تاریخ زمان را در سه فرمت می توانیم بر روی سریال نمایش دهیم تاریخ زمان کامل ،تاریخ به تنهایی ،زمان به تنهایی که تمام این زمان ها در یک متغیر خاص به نام DateTime ریخته می شود

و در اخر نیز دستگاه به مدت 5 ثانیه استراحت می کند و دوباره تمام مراحل بالا تکرار می شود

شماتیک

rشماتیک برد

کد کامل

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include "RTClib.h" RTC_DS1307 rtc; void setup () { Serial.begin(9600); #ifndef ESP8266 while (!Serial); // wait for serial port to connect. Needed for native USB #endif if (! rtc.begin()) { Serial.println("Couldn't find RTC"); Serial.flush(); abort(); } if (! rtc.isrunning()) { Serial.println("RTC is NOT running, let's set the time!"); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } rtc.adjust(DateTime(2021, 9, 04, 14, 37, 55)); } void loop() { DateTime time = rtc.now(); //Full Timestamp Serial.println(String("DateTime::TIMESTAMP_FULL:\t") + time.timestamp(DateTime::TIMESTAMP_FULL)); //Date Only Serial.println(String("DateTime::TIMESTAMP_DATE:\t") + time.timestamp(DateTime::TIMESTAMP_DATE)); //Full Timestamp Serial.println(String("DateTime::TIMESTAMP_TIME:\t") + time.timestamp(DateTime::TIMESTAMP_TIME)); Serial.println("\n"); //Delay 5s delay(5000); }

اپلود کد

  1. در برنامه اردوینو یک برگه جدید باز می کنیم
  2. dFile -> arduino Preferences
  3. جهت اپلود کد می بایست پورت سریال دستگاه متصل را انتخاب کنیم (توجه شماره com با پورت کامپیوتر در ارتباط است و بسته به پورت دارای شماره های مختلفی می باشد )
  4. programFile -> arduino Preferences
  5. کد کامل را جایگزاری می کنیم و گزینه اپلود را می زنیم
  6. sFile -> arduino Preferences
  7. و در اخر پنجره سریال را باز کرده
  8. dFile -> arduino Preferences
  9. واطلاعات را در ترمینال به نمایش در می اید
  10. File -> arduino Preferences

دیدگاهتان را بنویسید

کامنت ها