پروژه الکترونیکپروژه تاریخ و ساعتپروژه های Esp

پروژه نمایش ساعت و تاریخ با برد ESP32 در نمایشگر OLED

در این پروژه ESP32، ما از ماژول DS3231 برای دریافت زمان صحیح و نمایش آن در صفحه نمایش OLED SSD1306 استفاده میکنیم. ESP32 بیشتر از یک میکروکنترلر ساده است. ESP32 دارای تراشه بلوتوث و وایفای داخلی و همچنین دارای 39 پین GPIO است. این میکروکنترلر از تمام پروتکل های ارتباطی مانند SPI، I2C، UART و … پشتیبانی میکند. اگر در زمینه ESP32 تازه کار هستید، آموزش برنامه نویسی ESP32 را مشاهده کنید.

شماتیک مدار پروژه ساعت و تاریخ با ESP32

شماتیک مدار برای اتصال RTC3231 به برد ESP در زیر آورده شده است، RTC DS3231 از پروتکل ارتباطی I2C استفاده می کند و دارای پین های SCL ، SDA ، Vcc و GND است.

مدار پروژه ساعت و تاریخ با ESP32

اتصالات ماژول RTC با برد ESP32 در زیر آمده است :

SCL از RTC -> SCL از ESP32 (پین D22)

SDA از RTC -> SDA از ESP32 (پین D21)

GND RTC -> GND ESP3

Vcc از RTC -> Vcc ESP32

در اینجا ، ما از حالت SPI برای اتصال ماژول نمایشگر  OLED SSD1306 به ESP32 استفاده می کنیم. بنابراین ، از 7 پین استفاده خواهیم کرد. اتصالات با ESP32 به شرح زیر است:

  1. CS Chip select پین از OLED -> پین D5 از ESP32
  2. DC از OLED -> پین D4 از ESP32
  3. RES از OLED -> پین D2 از ESP32
  4. SDA از OLED -> پین D23 MOSI از ESP32
  5. SCK از OLED -> پین D18 SCK از ESP32
  6. Vdd از OLED -> Vcc از ESP32
  7. GND از OLED -> GND از ESP32

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

ماژول DS3231 چیست؟

DS3231 یک ماژول RTC = Real Time Clock است و برای حفظ تاریخ و زمان برای اکثر پروژه های الکترونیک استفاده می شود. این ماژول دارای منبع تغذیه باتری سکه ای خاص خود است که با استفاده از آن تاریخ و زمان را حتی در صورت حذف برق اصلی یا میکروکنترلر، حفظ می کند.

حتما ببینید :  آموزش ساخت اسکنر کد QR با رزبری پای و OpenCV

ماژول DS3231 چیست؟

 

توضیحات ماژول نمایشگر OLED SSD1306 64*128

اصطلاح OLED مخفف Organic Light emitting diode است به معنی دیود تابش نور ارگانیک. این نوع صفحه نمایشگر ها از همان فناوری استفاده شده در بیشتر تلویزیون ها استفاده میکنند اما نسبت به آنها پیکسل های کمتری دارند. استفاده از این نمایشگر ها باعث جذاب تر شدن پروژه های ما میشود. در اینجا ، ما از یک صفحه نمایش OLED تک رنگ 4 پین SSD1306 سایز 0.96 اینچ استفاده می کنیم. این صفحه نمایش فقط می تواند در حالت I2C کار کند.

ماژول نمایشگر OLED SSD1306 64*128

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

پین های نمایشگر OLED

  • VCC = ولتاژ 3.3
  • GND = GND
  • SDA = پین فیزیکی 3 (SDA)
  • SCL = پین فیزیکی 5 (SCL)

ما در این پروژه از کتابخانه گرافیکی Adafruit_SSD1306 استفاده کردیم که میتوانید آن را از این لینک دانلود کنید : دانلود کتابخانه های ماژول نمایشگر OLED SSD1306 64*128 + مشخصات

قطعات مورد نیاز

  1. برد ESP32
  2. ماژول DS3231 RTC
  3. ماژول صفحه نمایش 7 پین 128×64 OLED SSD1306

کد پروژه نمایش ساعت و تاریخ در نمایشگر با ESP32

کد کامل پروژه در انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.

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

در ابتدای کد ما تمامی کتابخانه های مورد نیاز را فراخوانی میکنیم.

#include <SPI.h>   // برای نمایشگر OLED
#include <Wire.h>  // برای ماژول RTC
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>  
#include "RTClib.h"       // برای نمایش زمان

سپس پین های OLED را تعیین میکنیم. شما نیازی به تعیین پین برای ماژول RTC ندارید زیرا این پین ها قبلاً در کتابخانه WIRE تعریف شده اند.

#define OLED_MOSI  23
#define OLED_CLK   18
#define OLED_DC    4
#define OLED_CS    5
#define OLED_RESET 2
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

در تابع void setup ، ما یک تابع rtc.adjust (DateTime (__ DATE__ ، __TIME__)) می آوریم که زمان را مطابق با زمان رایانه ما تنظیم می کند.

void setup() 
{
Serial.begin(9600);

if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}

rtc.adjust(DateTime(__DATE__, __TIME__));

پس از آن ما توابع نمایشگر را برای نمایش اطلاعات در OLED فراخوانی می کنیم.

display.begin(SSD1306_SWITCHCAPVCC);
display.clearDisplay();
display.setTextColor(WHITE);
//display.startscrollright(0x00, 0x0F); // اگر دو اسلش را بردارید متن اسکرول میشود        
display.setTextSize(2);
display.setCursor(0,5);
display.print("  Clock "); //نمایش کلمه برای 3 ثانیه
display.display();
delay(3000);
}

سپس در نهایت در تابع loop ، زمان خود را در متغیر از پیش تعریف شده DateTime ذخیره می کنیم و زمان را با استفاده از توابع نمایشگر مانند setTextSize ، setCursor و … نمایش می دهیم. اینها را مطابق نیاز خود تنظیم کنید و از عملکرد display.println استفاده کنید تا در OLED نمایش داده شود.

void loop()
{
DateTime now = rtc.now();

display.clearDisplay();
display.setTextSize(2);
display.setCursor(75,0);
display.println(now.second(), DEC);

فیلم عملکرد پروژه ساعت و تاریخ با میکروکنترلر ESP32

بنابراین بدین ترتیب است که می توانید با استفاده از ESP32 زمان را در نمایشگر OLED نمایش دهید و همانطور که می دانید ESP به دلیل قابلیت های اینترنت اشیا بسیار شناخته شده است ، بنابراین می توانید از این طریق برای انتشار زمان در اینترنت استفاده کنید. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا