شِفر (کود) جستجو

آموزش ESP32 53/55 - ساخت یک ساعت اینترنتی LCD | کیت یادگیری IoT ESP32 سان‌فاندر

آموزش ESP32 53/55 - ساخت یک ساعت اینترنتی LCD | کیت یادگیری IoT ESP32 سان‌فاندر

در این آموزش، ما یک ساعت LCD متصل به اینترنت با استفاده از میکروکنترلر ESP32 از SunFounder خواهیم ساخت. این ساعت به صورت خودکار با زمان فعلی از طریق اینترنت همگام‌سازی می‌شود و زمان را به فرمت 12 ساعته یا 24 ساعته نمایش می‌دهد، همراه با روز هفته، تاریخ و ماه. استفاده از پروتکل زمان شبکه (NTP) اطمینان می‌دهد که ساعت بدون نیاز به تنظیمات دستی دقیق باقی بماند.

esp32-53 ساعت اینترنتی اصلی

این پروژه از قابلیت‌های Wi-Fi داخلی ESP32 برای دریافت زمان جاری از یک سرور NTP استفاده می‌کند. ما از یک نمایشگر کریستال مایع (LCD) برای نمایش زمان استفاده خواهیم کرد که می‌تواند بر اساس ترجیحات کاربر قالب‌بندی شود. برای توضیحات بیشتر در مورد هر کدام از مراحل، لطفاً به ویدیو (در ویدیو در ۰۰:۳۰) مراجعه کنید.

توضیح سخت‌افزار

اجزای اصلی این پروژه شامل میکروکنترلر ESP32، یک نمایشگر LCD 20x4 و یک منبع تغذیه است. ESP32 یک میکروکنترلر قدرتمند با Wi-Fi و بلوتوث داخلی است که آن را برای پروژه‌های اینترنت اشیا مناسب می‌سازد. LCD برای نمایش زمان و تاریخ استفاده می‌شود و می‌توان آن را برای سایزهای مختلف نمایش پیکربندی کرد.

ال‌سی‌دی از طریق پروتکل I2C کار می‌کند که امکان ارتباط روی دو سیم (SDA و SCL) را فراهم می‌آورد. این کار باعث ساده‌تر شدن سیم‌کشی و کاهش تعداد پایه‌های مورد نیاز بر روی ESP32 می‌شود. ارتباط با سرور NTP با استفاده از قابلیت‌های Wi-Fi ESP32 برقرار می‌شود و بروزرسانی‌های آنی را ممکن می‌سازد.

  • ولتاژ منبع تغذیه را درست تأمین کنید (5 ولت).
  • از خازن‌های کلاچ‌زدایی در نزدیکی پایه‌های تغذیه برای پایداری استفاده کنید.
  • با اتصالات I2C احتیاط کنید تا از تضاد بوس جلوگیری شود.
  • آدرس I2C LCD را بررسی کنید (0x27 یا 0x3F).
  • اطلاعات هویت Wi-Fi را برای اتصال دقیق بررسی کنید.
  • تنظیم تغییرات ساعت تابستانی را در شِفر (کود) خود مدیریت کنید.
  • از سرور NTP مناسب برای موقعیت جغرافیایی خود استفاده کنید.
  • همیشه صفحه نمایش LCD را قبل از به‌روزرسانی پاک کنید.

دستورالعمل‌های سیم‌کشی

ESP32-11_LCD-wiring

برای متصل کردن ESP32 به LCD، ابتدا پایه‌های قدرت را وصل کنید. VCC LCD را به پایه 5V روی ESP32 و پایه GND LCD را به پایه GND روی ESP32 متصل کنید. برای ارتباط I2C، پایه SDA LCD را به GPIO 21 روی ESP32 و پایه SCL را به GPIO 22 متصل کنید. اطمینان حاصل کنید که اتصالات محکم هستند تا از مشکلات ارتباطی جلوگیری کنید.

در هنگام راه‌اندازی سیم‌کشی، از سیم‌های پرش مرد به زن برای اتصالات آسان استفاده کنید. اگر LCD شما آدرس I2C یا پیکربندی پایه متفاوتی دارد، شِفر (کود) را به‌طور مناسب تنظیم کنید. برای گزینه‌های دیگر سیم‌کشی در صورت لزوم به ویدیو در (در ویدیو در ۰۵:۳۰) مراجعه کنید.

نمونه کدها و راهنمایی

شِفر (کود) ال‌سی‌دی را راه‌اندازی کرده و اتصال Wi-Fi را برای دریافت داده‌های زمان از سرور NTP تنظیم می‌کند. شناسه‌های کلیدی مانندssidوpasswordبرای اتصال به شبکه Wi-Fi استفاده می‌شوند، در حالی کهntpServer1وntpServer2سرورهای NTP را برای استفاده مشخص کنید.

const char* ssid = "dars";
const char* password = "llllllllllllll";
const char* ntpServer1 = "pool.ntp.org";
const char* ntpServer2 = "time.nist.gov";

این بخش نام کاربری شبکه و آدرس‌های سرور را نشان می‌دهد. اطمینان حاصل کنید که SSID و رمز عبور Wi-Fi خود را به درستی وارد می‌کنید، زیرا هر گونه اشتباه باعث خواهد شد که ESP32 نتواند به اینترنت متصل شود.

In theprintLocalTime()تابع، زمان کنونی برای نمایش فرمت‌بندی می‌شود. ساختارtmبرای ذخیره اطلاعات زمانی استفاده می‌شود، در حالی کهstrftimeبه فرمت زمانی را به یک رشته قابل خواندن تبدیل می‌کند.

void printLocalTime() {
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)) {
    Serial.println("No time available (yet)");
    return;
  }
  char timeHour[5];
  strftime(timeHour, 5, "%H", &timeinfo);

این شِفر (کود) بررسی می‌کند که آیا زمان محلی در دسترس است و ساعت را به دست می‌آورد. سپس ساعت قالب بندی شده برای نمایش زمان جاری بر روی LCD استفاده می‌شود. اگر زمان هنوز در دسترس نباشد، پیامی را در نمایشگر مسلسل چاپ می‌کند.

در نهایت، اینsetup()تابع صفحه نمایش LCD را راه‌اندازی کرده و به Wi-Fi متصل می‌شود. همچنین تنظیمات سرور NTP را پیکربندی کرده و یک تابع بازگشتی برای هماهنگ‌سازی زمان تعیین می‌کند.

void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);

این بخش، نمایشگر مسلسل را برای اشکال‌زدایی راه‌اندازی می‌کند، LCD را تنظیم می‌کند و سعی در اتصال به شبکه Wi-Fi تعیین‌شده دارد. وضعیت اتصال در نمایشگر مسلسل چاپ خواهد شد تا شما بتوانید اتصال را تأیید کنید.

نمایش / چه انتظاری داشته باشید

پس از تنظیم موفقیت‌آمیز، صفحه‌نمایش LCD زمان فعلی، روز هفته و تاریخ را نمایش خواهد داد. می‌توانید انتظار داشته باشید که زمان هر ۵ ثانیه یکبار به‌روز شود، به‌لطفloop()اگر اتصال به سرور NTP ناموفق باشد، پیامی در نمایشگر مسلسل ظاهر می‌شود که نشان می‌دهد زمان هنوز در دسترس نیست (در ویدیو در ساعت ۱۲:۰۰).

دامنه‌های متداول شامل سیم‌کشی نادرست، آدرس‌های نادرست I2C و اعتبارنامه‌های نادرست Wi-Fi است. اطمینان حاصل کنید که همه اتصالات ایمن هستند و سرور NTP قابل دسترسی از شبکه شماست.

زمان‌بندی ویدئو

  • ۰۰:۰۰ شروع
  • مقدمه ۲:۱۰
  • ۵:۱۵ توضیح سیم‌کشی
  • شِفر (کود) آردوینو در ساعت ۷:۳۲ توضیح داده شده است
  • ۱۸:۴۳ انتخاب برد ESP32 و پورت COM در Arduino IDE
  • 20:27 نمایش ساعت اینترنتی

تصاویر

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
esp32-53-internet-clock-main
esp32-53-internet-clock-main
854-ESP32 Tutorial 53/55- Internet Clock
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

فایل مورد نیاز (.h)